diff --git a/dist/actions/actions_python.10530df8.js b/dist/actions/actions_python.10530df8.js new file mode 100644 index 00000000..7bdf9941 --- /dev/null +++ b/dist/actions/actions_python.10530df8.js @@ -0,0 +1,3 @@ +function $parcel$export(e,t,r,i){Object.defineProperty(e,t,{get:r,set:i,enumerable:!0,configurable:!0});}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e;}var $e2xck$path=require("path"),$e2xck$os=require("os"),$e2xck$fs=require("fs"),$e2xck$stream=require("stream"),$e2xck$util=require("util"),$e2xck$assert=require("assert"),$e2xck$child_process=require("child_process"),$e2xck$http=require("http"),$e2xck$https=require("https"),$e2xck$crypto=require("crypto"),$parcel$global=globalThis,parcelRequire=$parcel$global.parcelRequire810d,parcelRegister=parcelRequire.register;parcelRegister("i1n7v",function(e,t){var r,i,s,n,o,a,h,l,c;function u(e){return e.startsWith("pypy");}async function p(e,t,o){h.IS_MAC&&(process.env.AGENT_TOOLSDIRECTORY="/Users/runner/hostedtoolcache");let l=process.env.AGENT_TOOLSDIRECTORY?.trim();if("string"==typeof l&&""!==l&&(process.env.RUNNER_TOOL_CACHE=process.env.AGENT_TOOLSDIRECTORY),(0,n.debug)("Python is expected to be installed into "+process.env.RUNNER_TOOL_CACHE),e){let t;if(u(e)){let r=await(0,i.findPyPyVersion)(e,o,!0,d,!1);t=`${r.resolvedPyPyVersion}-${r.resolvedPythonVersion}`,(0,s.info)(`Successfully set up PyPy ${r.resolvedPyPyVersion} with Python (${r.resolvedPythonVersion})`);}else{let i=await(0,r.useCpythonVersion)(e,o,!0,d,!1);t=i.version,(0,s.info)(`Successfully set up ${i.impl} (${t})`);}}a.GITHUB_ACTIONS&&(await f());}async function f(){let e=(0,o.join)(c,"python_matcher.json");if(!(await(0,l.pathExists)(e)))return(0,s.warning)("the python_matcher.json file does not exist in the same folder as setup-cpp.js");(0,s.info)("::add-matcher::"+e);}$parcel$export(e.exports,"setupActionsPython",()=>p),r=parcelRequire("hdVmr"),i=parcelRequire("j3bdl"),s=parcelRequire("g0Mwp"),n=parcelRequire("lUL8q"),o=parcelRequire("e19ul"),a=parcelRequire("l5aZl"),h=parcelRequire("c6Y2q"),l=parcelRequire("6afW1"),c=$e2xck$path.resolve(__dirname,"../../src/python");let d=!1;}),parcelRegister("hdVmr",function(e,t){var r,i,s,n,o;function a(e){return r.IS_WINDOWS?$e2xck$path.join(e,"Scripts"):$e2xck$path.join(e,"bin");}async function h(e,t,h,p,f){let d=null,m=u(l(e),f);if(n.debug(`Semantic version spec of ${e} is ${m}`),p){d=await s.getManifest();let e=(await s.findReleaseFromManifest(m,t,d))?.version;e?(m=e,n.info(`Resolved as '${m}'`)):n.info(`Failed to resolve version ${m} from manifest`);}let y=o.find("Python",m,t);if(!y){n.info(`Version ${m} was not found in the local cache`);let e=await s.findReleaseFromManifest(m,t,d);e&&e.files&&e.files.length>0&&(n.info(`Version ${m} is available for downloading`),await s.installCpythonFromRelease(e),y=o.find("Python",m,t));}if(!y){let i=await(0,r.getOSInfo)();throw Error([`The version '${e}' with architecture '${t}' was not found for ${i?`${i.osName} ${i.osVersion}`:"this operating system"}.`,"The list of all available versions can be found here: "+s.MANIFEST_URL].join($e2xck$os.EOL));}let g=a(y),E=r.IS_WINDOWS?".exe":"",w=$e2xck$path.join(r.IS_WINDOWS?y:g,"python"+E);if(h){if(n.exportVariable("pythonLocation",y),n.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),n.exportVariable("pythonLocation",y),n.exportVariable("Python_ROOT_DIR",y),n.exportVariable("Python2_ROOT_DIR",y),n.exportVariable("Python3_ROOT_DIR",y),n.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),r.IS_LINUX){let e=process.env.LD_LIBRARY_PATH?":"+process.env.LD_LIBRARY_PATH:"",t=$e2xck$path.join(y,"lib");e.split(":").includes(t)||n.exportVariable("LD_LIBRARY_PATH",t+e);}if(n.addPath(y),n.addPath(g),r.IS_WINDOWS){let e=$e2xck$path.basename($e2xck$path.dirname(y)),t=i.major(e),r=i.minor(e),s=$e2xck$path.join(process.env.APPDATA||"","Python",`Python${t}${r}`,"Scripts");n.addPath(s);}}let x=c(y);return n.setOutput("python-version",x),n.setOutput("python-path",w),{impl:"CPython",version:x};}function l(e){let t=/^(\d+)\.(\d+)-dev$/;return e.replace(t,"~$1.$2.0-0");}function c(e){let t=e.split($e2xck$path.sep),r=t.findIndex(e=>"PyPy"===e||"Python"===e);return t[r+1]||"";}function u(e,t){let r=/(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g,i=/^(\d+)\.(\d+)$/,s=e.replace(r,"$1-$2");return t&&(s=s.replace(i,"~$1.$2.0-0")),s;}$parcel$export(e.exports,"useCpythonVersion",()=>h),r=parcelRequire("c6Y2q"),i=parcelRequire("24j9d"),s=parcelRequire("4rCDr"),n=parcelRequire("lUL8q"),o=parcelRequire("wMbNK");}),parcelRegister("c6Y2q",function(e,t){var r,i,s;function n(e,t,r,i=!1){let s=$e2xck$path.join(e,t),n=$e2xck$path.join(e,r);$parcel$interopDefault($e2xck$fs).existsSync(n)||($parcel$interopDefault($e2xck$fs).symlinkSync(s,n),!y&&i&&$parcel$interopDefault($e2xck$fs).chmodSync(n,"755"));}function o(e){return a(e)||!!i.validRange(e);}function a(e){return"nightly"===e;}function h(e){return $e2xck$path.basename($e2xck$path.dirname(e));}function l(e){let t="",r=$e2xck$path.join(e,v);return $parcel$interopDefault($e2xck$fs).existsSync(r)&&(t=$parcel$interopDefault($e2xck$fs).readFileSync(r).toString().trim()),t;}function c(e,t){let r=$e2xck$path.join(e,v);$parcel$interopDefault($e2xck$fs).writeFileSync(r,t);}function u(e){return /^\d+\.\d+$/.test(e);}async function p(){let{stdout:e}=await s.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{osName:"Windows",osVersion:e.trim().split(" ")[3]};}async function f(){let{stdout:e}=await s.getExecOutput("sw_vers",["-productVersion"],{silent:!0});return{osName:"macOS",osVersion:e.trim()};}async function d(){let{stdout:e}=await s.getExecOutput("lsb_release",["-i","-r","-s"],{silent:!0}),[t,i]=e.trim().split("\n");return r.debug(`OS Name: ${t}, Version: ${i}`),{osName:t,osVersion:i};}async function m(){let e;try{y?e=await p():g?e=await d():E&&(e=await f());}catch(t){let e=t;r.debug(e.message);}finally{return e;}}$parcel$export(e.exports,"IS_WINDOWS",()=>y),$parcel$export(e.exports,"IS_LINUX",()=>g),$parcel$export(e.exports,"IS_MAC",()=>E),$parcel$export(e.exports,"WINDOWS_ARCHS",()=>w),$parcel$export(e.exports,"WINDOWS_PLATFORMS",()=>x),$parcel$export(e.exports,"createSymlinkInFolder",()=>n),$parcel$export(e.exports,"validateVersion",()=>o),$parcel$export(e.exports,"isNightlyKeyword",()=>a),$parcel$export(e.exports,"getPyPyVersionFromPath",()=>h),$parcel$export(e.exports,"readExactPyPyVersionFile",()=>l),$parcel$export(e.exports,"writeExactPyPyVersionFile",()=>c),$parcel$export(e.exports,"validatePythonVersionFormatForPyPy",()=>u),$parcel$export(e.exports,"getOSInfo",()=>m),r=parcelRequire("lUL8q"),i=parcelRequire("24j9d"),parcelRequire("kXu60"),s=parcelRequire("ioM8U");let y="win32"===process.platform,g="linux"===process.platform,E="darwin"===process.platform,w=["x86","x64"],x=["win32","win64"],v="PYPY_VERSION";}),parcelRegister("kXu60",function(e,t){var r;$parcel$export(e.exports,"parse",()=>r,e=>r=e),r=parcelRequire("ziyWn"),parcelRequire("ZjZv7");}),parcelRegister("ziyWn",function(e,t){e.exports=parcelRequire("gJ6p0"),e.exports.async=parcelRequire("i9dxX"),e.exports.stream=parcelRequire("iDBjn"),e.exports.prettyError=parcelRequire("Prvkg");}),parcelRegister("gJ6p0",function(e,t){var r,i;function s(e){$parcel$global.Buffer&&$parcel$global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r();try{return t.parse(e),t.finish();}catch(t){throw i(t,e);}}e.exports=s,r=parcelRequire("5DS0I"),i=parcelRequire("Prvkg");}),parcelRegister("5DS0I",function(module,exports){var $8CCFi,$5kLdF,$7EgKF,$9WIdb;let _custom;function isDigit(e){return e>=CHAR_0&&e<=CHAR_9;}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9;}function isBit(e){return e===CHAR_1||e===CHAR_0;}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7;}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1);}function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}});}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE;}function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}});}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE;}function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}});}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST;}function List(){return Object.defineProperties([],{[_type]:{value:LIST}});}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST;}function Integer(e){let t=+e;return(Object.is(t,-0)&&(t=0),$parcel$global.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this);}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}});}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER;}function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}});}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT;}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer";}}return t;}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table();}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine();}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M;}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`));}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"));}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement);}recordAssignStatement(e){let t=this.ctx,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseWhitespaceToEOL);}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword);}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot);}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0;}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword);}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'));}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue);}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e});}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar());}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList);}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext);}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore);}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext);}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore);}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t;}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"));}recordValue(e){return this.returnNow(e);}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey);}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"));}while(this.nextChar());}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString);}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow();}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent);}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent));}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent));}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString);}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString);}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow();}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent);}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}errorControlCharInString(){let e="\\u00";return this.char<16&&(e+="0"),e+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${e} instead`));}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent);}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent));}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent));}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape);}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"));}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow();}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char));}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t));}catch(e){throw this.error(TomlError.wrap(e));}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan);}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart);}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger);}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf));}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf));}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"));}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf));}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly);}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf));}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"));}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"));}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf));}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth);}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour);}if(this.atEndOfWord())return this.returnNow($7EgKF(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow($7EgKF(this.state.result)):this.goto(this.parseTimeHour);}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"));}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction);}else throw this.error(new TomlError("Incomplete datetime"));}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin);}throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe);}else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return($9WIdb(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction);}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow($9WIdb(this.state.result+"."+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($8CCFi(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($5kLdF(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($8CCFi(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($5kLdF(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep);}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"));}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return($8CCFi(this.state.result+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0;}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue);}recordInlineListValue(e){if(this.state.resultArr){let t=this.state.resultArr[_contentType],r=tomlType(e);if(t!==r)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${t} and ${r}`));}else this.state.resultArr=InlineList(tomlType(e));return isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext);}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue));}recordInlineTableValue(e){let t=this.state.resultTable,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseInlineTableNext);}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}}return t;}module.exports=makeParserClass(parcelRequire("aocLw")),module.exports.makeParserClass=makeParserClass;class TomlError extends Error{constructor(e){super(e),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,TomlError),this.fromTOML=!0,this.wrapped=null;}}TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t;},module.exports.TomlError=TomlError,$8CCFi=parcelRequire("8CCFi"),$5kLdF=parcelRequire("5kLdF"),$7EgKF=parcelRequire("7EgKF"),$9WIdb=parcelRequire("9WIdb");let CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"},_type=Symbol(),_declared=Symbol(),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0},INLINE_TABLE=Symbol(),TABLE=Symbol(),_contentType=Symbol(),INLINE_LIST=Symbol(),LIST=Symbol();try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom;}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=$parcel$global.BigInt.asIntN(64,e);}catch(e){this.value=null;}Object.defineProperty(this,_type,{value:INTEGER});}isNaN(){return null===this.value;}toString(){return this.value+"";}[_inspect](){return`[BigInt: ${this.toString()}]}`;}valueOf(){return this.value;}}let INTEGER=Symbol(),FLOAT=Symbol();}),parcelRegister("aocLw",function(e,t){let r=1114112;class i extends Error{constructor(e,t,r){super("[ParserError] "+e,t,r),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,i);}}class s{constructor(e){this.parser=e,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null;}}class n{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new s(this.parseStart);}parse(e){let t;if(0!==e.length&&null!=e.length){for(this._buf=e+"",this.ii=-1,this.char=-1;!1===t||this.nextChar();)t=this.runOne();this._buf=null;}}nextChar(){return 10===this.char&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer();}haveBuffer(){return this.ii{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("5kLdF",function(e,t){var r=parcelRequire("d3FGN");class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0;}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("d3FGN",function(e,t){e.exports=(e,t)=>{for(t+="";t.length{let t=new s(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("9WIdb",function(e,t){var r=parcelRequire("d3FGN");class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0;}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("Prvkg",function(e,t){function r(e,t){if(null==e.pos||null==e.line)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: +`,t&&t.split){let i=t.split(/\n/),s=(Math.min(i.length,e.line+3)+"").length,n=" ";for(;n.length "+i[t]+"\n"+n+" ";for(let t=0;t=e.length)try{return n(a.finish());}catch(t){return o(i(t,e));}try{a.parse(e.slice(t,t+r)),setImmediate(s,t+r,r,n,o);}catch(t){o(i(t,e));}}t||(t={});let n=0,o=t.blocksize||40960,a=new r();return new Promise((e,t)=>{setImmediate(s,n,o,e,t);});}e.exports=s,r=parcelRequire("5DS0I"),i=parcelRequire("Prvkg");}),parcelRegister("iDBjn",function(e,t){var r;function i(e){return e?s(e):n(e);}function s(e){let t=new r();return e.setEncoding("utf8"),new Promise((r,i)=>{let s;function n(){if(h=!0,!s)try{r(t.finish());}catch(e){i(e);}}function o(e){l=!0,i(e);}function a(){let r;for(s=!0;null!==(r=e.read());)try{t.parse(r);}catch(e){return o(e);}if(s=!1,h)return n();l||e.once("readable",a);}let h=!1,l=!1;e.once("end",n),e.once("error",o),a();});}function n(){let e=new r();return new $e2xck$stream.Transform({objectMode:!0,transform(t,r,i){try{e.parse(t.toString(r));}catch(e){this.emit("error",e);}i();},flush(t){try{this.push(e.finish());}catch(e){this.emit("error",e);}t();}});}e.exports=i,r=parcelRequire("5DS0I");}),parcelRegister("ZjZv7",function(e,t){function r(e){if(null===e)throw i("null");if(void 0===e)throw i("undefined");if("object"!=typeof e)throw i(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=c(e);if("table"!==t)throw i(t);return h("","",e);}function i(e){return Error("Can only stringify objects, not "+e);}function s(){return Error("Array values can't have mixed types");}function n(e){return Object.keys(e).filter(t=>l(e[t]));}function o(e){return Object.keys(e).filter(t=>!l(e[t]));}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))!e[r]||"function"!=typeof e[r].toJSON||"toISOString"in e[r]?t[r]=e[r]:t[r]=e[r].toJSON();return t;}function h(e,t,r){i=n(r=a(r)),s=o(r);var i,s,h=[],l=t||"";i.forEach(e=>{var t=c(r[e]);"undefined"!==t&&"null"!==t&&h.push(l+u(e)+" = "+g(r[e],!0));}),h.length>0&&h.push("");var p=e&&i.length>0?t+" ":"";return s.forEach(t=>{h.push(T(e,p,t,r[t]));}),h.join("\n");}function l(e){switch(c(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==c(e[0]);case"table":return 0===Object.keys(e).length;default:return!1;}}function c(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table";}function u(e){var t=e+"";return /^[-A-Za-z0-9_]+$/.test(t)?t:p(t);}function p(e){return'"'+m(e).replace(/"/g,'\\"')+'"';}function f(e){return"'"+e+"'";}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)));}function y(e){let t=e.split(/\n/).map(e=>m(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""';}function g(e,t){let r=c(e);return"string"===r&&(t&&/\n/.test(e)?r="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(r="string-literal")),E(e,r);}function E(e,t){switch(t||(t=c(e)),t){case"string-multiline":return y(e);case"string":return p(e);case"string-literal":return f(e);case"integer":return w(e);case"float":return x(e);case"boolean":return v(e);case"datetime":return O(e);case"array":return R(e.filter(e=>"null"!==c(e)&&"undefined"!==c(e)&&"nan"!==c(e)));case"table":return S(e);default:throw i(t);}}function w(e){return(e+"").replace(/\B(?=(\d{3})+(?!\d))/g,"_");}function x(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";var t=(e+"").split("."),r=t[0],i=t[1]||0;return w(r)+"."+i;}function v(e){return e+"";}function O(e){return e.toISOString();}function b(e){return"float"===e||"integer"===e;}function I(e){var t=c(e[0]);return e.every(e=>c(e)===t)?t:e.every(e=>b(c(e)))?"float":"mixed";}function N(e){let t=I(e);if("mixed"===t)throw s();return t;}function R(e){let t=N(e=a(e));var r="[",i=e.map(e=>E(e,t));return i.join(", ").length>60||/\n/.test(i)?r+="\n "+i.join(",\n ")+"\n":r+=" "+i.join(", ")+(i.length>0?" ":""),r+"]";}function S(e){e=a(e);var t=[];return Object.keys(e).forEach(r=>{t.push(u(r)+" = "+g(e[r],!1));}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}";}function T(e,t,r,s){var n=c(s);if("array"===n)return P(e,t,r,s);if("table"===n)return A(e,t,r,s);throw i(n);}function P(e,t,r,s){N(s=a(s));var n=c(s[0]);if("table"!==n)throw i(n);var o=e+u(r),l="";return s.forEach(e=>{l.length>0&&(l+="\n"),l+=t+"[["+o+"]]\n"+h(o+".",t,e);}),l;}function A(e,t,r,i){var s=e+u(r),o="";return n(i).length>0&&(o+=t+"["+s+"]\n"),o+h(s+".",t,i);}e.exports=r,e.exports.value=E;}),parcelRegister("4rCDr",function(e,t){var r,i,s,n;async function o(e,t,r){return r||(r=await a()),await i.findFromManifest(e,!1,r,t);}function a(){return r.debug(`Getting manifest from ${p}/${f}@${d}`),i.getManifestFromRepo(p,f,u,d);}async function h(e){let t={cwd:e,env:{...process.env,...(n.IS_LINUX&&{LD_LIBRARY_PATH:$e2xck$path.join(e,"lib")})},silent:!0,listeners:{stdout(e){r.info(e.toString().trim());},stderr(e){r.error(e.toString().trim());}}};n.IS_WINDOWS?await s.exec("powershell",["./setup.ps1"],t):await s.exec("bash",["./setup.sh"],t);}async function l(e){let t=e.files[0].download_url;r.info(`Download from "${t}"`);let s="";try{let e;s=await i.downloadTool(t,void 0,u),r.info("Extract downloaded archive"),e=n.IS_WINDOWS?await i.extractZip(s):await i.extractTar(s),r.info("Execute installation script"),await h(e);}catch(e){throw e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),e.stack&&r.debug(e.stack)),e;}}$parcel$export(e.exports,"MANIFEST_URL",()=>m),$parcel$export(e.exports,"findReleaseFromManifest",()=>o),$parcel$export(e.exports,"getManifest",()=>a),$parcel$export(e.exports,"installCpythonFromRelease",()=>l),r=parcelRequire("lUL8q"),i=parcelRequire("wMbNK"),s=parcelRequire("ioM8U"),n=parcelRequire("c6Y2q");let c=r.getInput("token"),u=c?"token "+c:void 0,p="actions",f="python-versions",d="main",m=`https://raw.githubusercontent.com/${p}/${f}/${d}/versions-manifest.json`;}),parcelRegister("wMbNK",function(e,t){function r(e,t,r,s){return T(this,void 0,void 0,function*(){t=t||j.join(O(),q.default()),yield D.mkdirP(j.dirname(t)),C.debug("Downloading "+e),C.debug("Destination "+t);let n=3,o=b("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),a=b("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),h=new L.RetryHelper(n,o,a);return yield h.execute(()=>T(this,void 0,void 0,function*(){return yield i(e,t||"",r,s);}),e=>!(e instanceof G)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});}function i(e,t,r,i){return T(this,void 0,void 0,function*(){if(M.existsSync(t))throw Error(`Destination file path ${t} already exists`);let s=new F.HttpClient(X,[],{allowRetries:!1});r&&(C.debug("set auth"),void 0===i&&(i={}),i.authorization=r);let n=yield s.get(e,i);if(200!==n.message.statusCode){let t=new G(n.message.statusCode);throw C.debug(`Failed to download from "${e}". Code(${n.message.statusCode}) Message(${n.message.statusMessage})`),t;}let o=H.promisify(k.pipeline),a=b("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>n.message)(),h=!1;try{return yield o(a,M.createWriteStream(t)),C.debug("download complete"),h=!0,t;}finally{if(!h){C.debug("download failed");try{yield D.rmRF(t);}catch(e){C.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}function s(e,t,r){return T(this,void 0,void 0,function*(){$e2xck$assert.ok(B,"extract7z() not supported on current OS"),$e2xck$assert.ok(e,'parameter "file" is required'),t=yield y(t);let i=process.cwd();if(process.chdir(t),r)try{let t=C.isDebug()?"-bb1":"-bb0",i=["x",t,"-bd","-sccUTF-8",e],s={silent:!0};yield A.exec(`"${r}"`,i,s);}finally{process.chdir(i);}else{let r=j.join(_,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),s=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${r}' -Source '${s}' -Target '${n}'`],a={silent:!0};try{let e=yield D.which("powershell",!0);yield A.exec(`"${e}"`,o,a);}finally{process.chdir(i);}}return t;});}function n(e,t,r="xz"){return T(this,void 0,void 0,function*(){let i;if(!e)throw Error("parameter 'file' is required");t=yield y(t),C.debug("Checking tar --version");let s="";yield A.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>s+=e.toString(),stderr:e=>s+=e.toString()}}),C.debug(s.trim());let n=s.toUpperCase().includes("GNU TAR");i=r instanceof Array?r:[r],C.isDebug()&&!r.includes("v")&&i.push("-v");let o=t,a=e;return B&&n&&(i.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),n&&(i.push("--warning=no-unknown-keyword"),i.push("--overwrite")),i.push("-C",o,"-f",a),yield A.exec("tar",i),t;});}function o(e,t,r=[]){return T(this,void 0,void 0,function*(){let i;$e2xck$assert.ok(W,"extractXar() not supported on current OS"),$e2xck$assert.ok(e,'parameter "file" is required'),t=yield y(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),C.isDebug()&&i.push("-v");let s=yield D.which("xar",!0);return yield A.exec(`"${s}"`,I(i)),t;});}function a(e,t){return T(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield y(t),B?yield h(e,t):yield l(e,t),t;});}function h(e,t){return T(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),s=yield D.which("pwsh",!1);if(s){let e=["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else { throw $_ } } ;`];C.debug("Using pwsh at path: "+s),yield A.exec(`"${s}"`,e);}else{let e=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) }`],t=yield D.which("powershell",!0);C.debug("Using powershell at path: "+t),yield A.exec(`"${t}"`,e);}});}function l(e,t){return T(this,void 0,void 0,function*(){let r=yield D.which("unzip",!0),i=[e];C.isDebug()||i.unshift("-q"),i.unshift("-o"),yield A.exec(`"${r}"`,i,{cwd:t});});}function c(e,t,r,i){return T(this,void 0,void 0,function*(){if(r=V.clean(r)||r,i=i||U.arch(),C.debug(`Caching tool ${t} ${r} ${i}`),C.debug("source dir: "+e),!M.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let s=yield g(t,r,i);for(let t of M.readdirSync(e)){let r=j.join(e,t);yield D.cp(r,s,{recursive:!0});}return E(t,r,i),s;});}function u(e,t,r,i,s){return T(this,void 0,void 0,function*(){if(i=V.clean(i)||i,s=s||U.arch(),C.debug(`Caching tool ${r} ${i} ${s}`),C.debug("source file: "+e),!M.statSync(e).isFile())throw Error("sourceFile is not a file");let n=yield g(r,i,s),o=j.join(n,t);return C.debug("destination file "+o),yield D.cp(e,o),E(r,i,s),n;});}function p(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||U.arch(),w(t)||(t=x(f(e,r),t));let i="";if(t){t=V.clean(t)||"";let s=j.join(v(),e,t,r);C.debug("checking cache: "+s),M.existsSync(s)&&M.existsSync(`${s}.complete`)?(C.debug(`Found tool in cache ${e} ${t} ${r}`),i=s):C.debug("not found");}return i;}function f(e,t){let r=[];t=t||U.arch();let i=j.join(v(),e);if(M.existsSync(i)){for(let e of M.readdirSync(i))if(w(e)){let s=j.join(i,e,t||"");M.existsSync(s)&&M.existsSync(`${s}.complete`)&&r.push(e);}}return r;}function d(e,t,r,i="master"){return T(this,void 0,void 0,function*(){let s=[],n=`https://api.github.com/repos/${e}/${t}/git/trees/${i}`,o=new F.HttpClient("tool-cache"),a={};r&&(C.debug("set auth"),a.authorization=r);let h=yield o.getJson(n,a);if(!h.result)return s;let l="";for(let e of h.result.tree)if("versions-manifest.json"===e.path){l=e.url;break;}a.accept="application/vnd.github.VERSION.raw";let c=yield(yield o.get(l,a)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{s=JSON.parse(c);}catch(e){C.debug("Invalid json");}}return s;});}function m(e,t,r,i=U.arch()){return T(this,void 0,void 0,function*(){return yield $._findMatch(e,t,r,i);});}function y(e){return T(this,void 0,void 0,function*(){return e||(e=j.join(O(),q.default())),yield D.mkdirP(e),e;});}function g(e,t,r){return T(this,void 0,void 0,function*(){let i=j.join(v(),e,V.clean(t)||t,r||"");C.debug("destination "+i);let s=`${i}.complete`;return yield D.rmRF(i),yield D.rmRF(s),yield D.mkdirP(i),i;});}function E(e,t,r){let i=j.join(v(),e,V.clean(t)||t,r||""),s=`${i}.complete`;M.writeFileSync(s,""),C.debug("finished caching tool");}function w(e){let t=V.clean(e)||"";C.debug("isExplicit: "+t);let r=null!=V.valid(t);return C.debug("explicit? "+r),r;}function x(e,t){let r="";C.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>V.gt(e,t)?1:-1);for(let i=e.length-1;i>=0;i--){let s=e[i];if(V.satisfies(s,t)){r=s;break;}}return r?C.debug("matched: "+r):C.debug("match not found"),r;}function v(){let e=process.env.RUNNER_TOOL_CACHE||"";return $e2xck$assert.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function O(){let e=process.env.RUNNER_TEMP||"";return $e2xck$assert.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function b(e,t){let r=$parcel$global[e];return void 0!==r?r:t;}function I(e){return Array.from(new Set(e));}var N,R,S,T,P,A,L,_=$e2xck$path.resolve(__dirname,"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib");N=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),R=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),S=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&N(t,e,r);return R(t,e),t;},T=e.exports&&e.exports.__awaiter||function(e,t,r,i){function s(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,n){function o(e){try{h(i.next(e));}catch(e){n(e);}}function a(e){try{h(i.throw(e));}catch(e){n(e);}}function h(e){e.done?r(e.value):s(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},P=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.evaluateVersions=e.exports.isExplicitVersion=e.exports.findFromManifest=e.exports.getManifestFromRepo=e.exports.findAllVersions=e.exports.find=e.exports.cacheFile=e.exports.cacheDir=e.exports.extractZip=e.exports.extractXar=e.exports.extractTar=e.exports.extract7z=e.exports.downloadTool=e.exports.HTTPError=void 0;let C=S(parcelRequire("lUL8q")),D=S(parcelRequire("jGHPG")),M=S($e2xck$fs),$=S(parcelRequire("8YqHc")),U=S($e2xck$os),j=S($e2xck$path),F=S(parcelRequire("i2yVI")),V=S(parcelRequire("bD1rN")),k=S($e2xck$stream),H=S($e2xck$util),q=P(parcelRequire("lctVY"));A=parcelRequire("ioM8U"),L=parcelRequire("elhkM");class G extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}e.exports.HTTPError=G;let B="win32"===process.platform,W="darwin"===process.platform,X="actions/tool-cache";e.exports.downloadTool=r,e.exports.extract7z=s,e.exports.extractTar=n,e.exports.extractXar=o,e.exports.extractZip=a,e.exports.cacheDir=c,e.exports.cacheFile=u,e.exports.find=p,e.exports.findAllVersions=f,e.exports.getManifestFromRepo=d,e.exports.findFromManifest=m,e.exports.isExplicitVersion=w,e.exports.evaluateVersions=x;}),parcelRegister("8YqHc",function(e,t){var r,i,s,n,o;function a(t,r,i,s){return n(this,void 0,void 0,function*(){let n,a,h;let l=$e2xck$os.platform();for(let n of i){let i=n.version;if(o.debug(`check ${i} satisfies ${t}`),c.satisfies(i,t)&&(!r||n.stable===r)&&(h=n.files.find(t=>{o.debug(`${t.arch}===${s} && ${t.platform}===${l}`);let r=t.arch===s&&t.platform===l;if(r&&t.platform_version){let i=e.exports._getOsVersion();r=i===t.platform_version||c.satisfies(i,t.platform_version);}return r;}))){o.debug("matched "+n.version),a=n;break;}}return a&&h&&((n=Object.assign({},a)).files=[h]),n;});}function h(){let t=$e2xck$os.platform(),r="";if("darwin"===t)r=$e2xck$child_process.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;}function l(){let e="/etc/lsb-release",t="/etc/os-release",r="";return $e2xck$fs.existsSync(e)?r=$e2xck$fs.readFileSync(e).toString():$e2xck$fs.existsSync(t)&&(r=$e2xck$fs.readFileSync(t).toString()),r;}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),i=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.hasOwnProperty.call(e,s)&&r(t,e,s);return i(t,e),t;},n=e.exports&&e.exports.__awaiter||function(e,t,r,i){function s(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,n){function o(e){try{h(i.next(e));}catch(e){n(e);}}function a(e){try{h(i.throw(e));}catch(e){n(e);}}function h(e){e.done?r(e.value):s(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let c=s(parcelRequire("bD1rN"));o=parcelRequire("lUL8q"),e.exports._findMatch=a,e.exports._getOsVersion=h,e.exports._readLinuxVersionFile=l;}),parcelRegister("bD1rN",function(e,t){function r(e){eh[e]=el++;}function i(e){for(var t=0;tet||!(t.loose?eo[eh.LOOSE]:eo[eh.FULL]).test(e))return null;try{return new a(e,t);}catch(e){return null;}}function n(e,t){var r=s(e,t);return r?r.version:null;}function o(e,t){var r=s(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null;}function a(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof a){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>et)throw TypeError("version is longer than "+et+" characters");if(!(this instanceof a))return new a(e,t);ee("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?eo[eh.LOOSE]:eo[eh.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>er||this.major<0)throw TypeError("Invalid major version");if(this.minor>er||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>er||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function u(e,t){return c(t,e);}function p(e,t){return new a(e,t).major;}function f(e,t){return new a(e,t).minor;}function d(e,t){return new a(e,t).patch;}function m(e,t,r){return new a(e,r).compare(new a(t,r));}function y(e,t){return m(e,t,!0);}function g(e,t,r){var i=new a(e,r),s=new a(t,r);return i.compare(s)||i.compareBuild(s);}function E(e,t,r){return m(t,e,r);}function w(e,r){return e.sort(function(e,i){return t.compareBuild(e,i,r);});}function x(e,r){return e.sort(function(e,i){return t.compareBuild(i,e,r);});}function v(e,t,r){return m(e,t,r)>0;}function O(e,t,r){return 0>m(e,t,r);}function b(e,t,r){return 0===m(e,t,r);}function I(e,t,r){return 0!==m(e,t,r);}function N(e,t,r){return m(e,t,r)>=0;}function R(e,t,r){return 0>=m(e,t,r);}function S(e,t,r,i){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return b(e,r,i);case"!=":return I(e,r,i);case">":return v(e,r,i);case">=":return N(e,r,i);case"<":return O(e,r,i);case"<=":return R(e,r,i);default:throw TypeError("Invalid operator: "+t);}}function T(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof T){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof T))return new T(e,t);e=e.trim().split(/\s+/).join(" "),ee("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ey?this.value="":this.value=this.operator+this.semver.version,ee("comp",this);}function P(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof P)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new P(e.raw,t);if(e instanceof T)return new P(e.value,t);if(!(this instanceof P))return new P(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function A(e,t){for(var r=!0,i=e.slice(),s=i.pop();r&&i.length;)r=i.every(function(e){return s.intersects(e,t);}),s=i.pop();return r;}function L(e,t){return new P(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});}function _(e,t){return ee("comp",e,t),e=$(e,t),ee("caret",e),e=D(e,t),ee("tildes",e),e=j(e,t),ee("xrange",e),e=V(e,t),ee("stars",e),e;}function C(e){return!e||"x"===e.toLowerCase()||"*"===e;}function D(e,t){return e.trim().split(/\s+/).map(function(e){return M(e,t);}).join(" ");}function M(e,t){var r=t.loose?eo[eh.TILDELOOSE]:eo[eh.TILDE];return e.replace(r,function(t,r,i,s,n){var o;return ee("tilde",e,t,r,i,s,n),C(r)?o="":C(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":C(s)?o=">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":n?(ee("replaceTilde pr",n),o=">="+r+"."+i+"."+s+"-"+n+" <"+r+"."+(+i+1)+".0"):o=">="+r+"."+i+"."+s+" <"+r+"."+(+i+1)+".0",ee("tilde return",o),o;});}function $(e,t){return e.trim().split(/\s+/).map(function(e){return U(e,t);}).join(" ");}function U(e,t){ee("caret",e,t);var r=t.loose?eo[eh.CARETLOOSE]:eo[eh.CARET];return e.replace(r,function(t,r,i,s,n){var o;return ee("caret",e,t,r,i,s,n),C(r)?o="":C(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":C(s)?o="0"===r?">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":">="+r+"."+i+".0 <"+(+r+1)+".0.0":n?(ee("replaceCaret pr",n),o="0"===r?"0"===i?">="+r+"."+i+"."+s+"-"+n+" <"+r+"."+i+"."+(+s+1):">="+r+"."+i+"."+s+"-"+n+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+s+"-"+n+" <"+(+r+1)+".0.0"):(ee("no pr"),o="0"===r?"0"===i?">="+r+"."+i+"."+s+" <"+r+"."+i+"."+(+s+1):">="+r+"."+i+"."+s+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+s+" <"+(+r+1)+".0.0"),ee("caret return",o),o;});}function j(e,t){return ee("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return F(e,t);}).join(" ");}function F(e,t){e=e.trim();var r=t.loose?eo[eh.XRANGELOOSE]:eo[eh.XRANGE];return e.replace(r,function(r,i,s,n,o,a){ee("xRange",e,r,i,s,n,o,a);var h=C(s),l=h||C(n),c=l||C(o),u=c;return"="===i&&u&&(i=""),a=t.includePrerelease?"-0":"",h?r=">"===i||"<"===i?"<0.0.0-0":"*":i&&u?(l&&(n=0),o=0,">"===i?(i=">=",l?(s=+s+1,n=0):n=+n+1,o=0):"<="===i&&(i="<",l?s=+s+1:n=+n+1),r=i+s+"."+n+"."+o+a):l?r=">="+s+".0.0"+a+" <"+(+s+1)+".0.0"+a:c&&(r=">="+s+"."+n+".0"+a+" <"+s+"."+(+n+1)+".0"+a),ee("xRange return",r),r;});}function V(e,t){return ee("replaceStars",e,t),e.trim().replace(eo[eh.STAR],"");}function k(e,t,r,i,s,n,o,a,h,l,c,u,p){return((t=C(r)?"":C(i)?">="+r+".0.0":C(s)?">="+r+"."+i+".0":">="+t)+" "+(a=C(h)?"":C(l)?"<"+(+h+1)+".0.0":C(c)?"<"+h+"."+(+l+1)+".0":u?"<="+h+"."+l+"."+c+"-"+u:"<="+a)).trim();}function H(e,t,r){for(var i=0;i0){var s=e[i].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0;}return!1;}return!0;}function q(e,t,r){try{t=new P(t,r);}catch(e){return!1;}return t.test(e);}function G(e,t,r){var i=null,s=null;try{var n=new P(t,r);}catch(e){return null;}return e.forEach(function(e){n.test(e)&&(!i||-1===s.compare(e))&&(s=new a(i=e,r));}),i;}function B(e,t,r){var i=null,s=null;try{var n=new P(t,r);}catch(e){return null;}return e.forEach(function(e){n.test(e)&&(!i||1===s.compare(e))&&(s=new a(i=e,r));}),i;}function W(e,t){e=new P(e,t);var r=new a("0.0.0");if(e.test(r)||(r=new a("0.0.0-0"),e.test(r)))return r;r=null;for(var i=0;i":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||v(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;}function X(e,t){try{return new P(e,t).range||"*";}catch(e){return null;}}function Y(e,t,r){return z(e,t,"<",r);}function K(e,t,r){return z(e,t,">",r);}function z(e,t,r,i){switch(e=new a(e,i),t=new P(t,i),r){case">":s=v,n=R,o=O,h=">",l=">=";break;case"<":s=O,n=N,o=v,h="<",l="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(q(e,t,i))return!1;for(var s,n,o,h,l,c=0;c=0.0.0")),p=p||e,f=f||e,s(e.semver,p.semver,i)?p=e:o(e.semver,f.semver,i)&&(f=e);}),p.operator===h||p.operator===l||(!f.operator||f.operator===h)&&n(e,f.semver)||f.operator===l&&o(e,f.semver))return!1;}return!0;}function Z(e,t){var r=s(e,t);return r&&r.prerelease.length?r.prerelease:null;}function J(e,t,r){return e=new P(e,r),t=new P(t,r),e.intersects(t);}function Q(e,t){if(e instanceof a)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,i=null;if((t=t||{}).rtl){for(;(r=eo[eh.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),eo[eh.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;eo[eh.COERCERTL].lastIndex=-1;}else i=e.match(eo[eh.COERCE]);return null===i?null:s(i[2]+"."+(i[3]||"0")+"."+(i[4]||"0"),t);}t=e.exports=a,"object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?ee=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:ee=function(){},t.SEMVER_SPEC_VERSION="2.0.0",et=256,er=Number.MAX_SAFE_INTEGER||9007199254740991,ei=16,es=et-6,en=t.re=[],eo=t.safeRe=[],ea=t.src=[],eh=t.tokens={},el=0,eu=[["\\s",1],["\\d",et],[ec="[a-zA-Z0-9-]",es]],r("NUMERICIDENTIFIER"),ea[eh.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),ea[eh.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),ea[eh.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+ec+"*",r("MAINVERSION"),ea[eh.MAINVERSION]="("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),ea[eh.MAINVERSIONLOOSE]="("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),ea[eh.PRERELEASEIDENTIFIER]="(?:"+ea[eh.NUMERICIDENTIFIER]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),ea[eh.PRERELEASEIDENTIFIERLOOSE]="(?:"+ea[eh.NUMERICIDENTIFIERLOOSE]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),ea[eh.PRERELEASE]="(?:-("+ea[eh.PRERELEASEIDENTIFIER]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),ea[eh.PRERELEASELOOSE]="(?:-?("+ea[eh.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),ea[eh.BUILDIDENTIFIER]=ec+"+",r("BUILD"),ea[eh.BUILD]="(?:\\+("+ea[eh.BUILDIDENTIFIER]+"(?:\\."+ea[eh.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),ea[eh.FULLPLAIN]="v?"+ea[eh.MAINVERSION]+ea[eh.PRERELEASE]+"?"+ea[eh.BUILD]+"?",ea[eh.FULL]="^"+ea[eh.FULLPLAIN]+"$",r("LOOSEPLAIN"),ea[eh.LOOSEPLAIN]="[v=\\s]*"+ea[eh.MAINVERSIONLOOSE]+ea[eh.PRERELEASELOOSE]+"?"+ea[eh.BUILD]+"?",r("LOOSE"),ea[eh.LOOSE]="^"+ea[eh.LOOSEPLAIN]+"$",r("GTLT"),ea[eh.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),ea[eh.XRANGEIDENTIFIERLOOSE]=ea[eh.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),ea[eh.XRANGEIDENTIFIER]=ea[eh.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),ea[eh.XRANGEPLAIN]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:"+ea[eh.PRERELEASE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),ea[eh.XRANGEPLAINLOOSE]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:"+ea[eh.PRERELEASELOOSE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGE"),ea[eh.XRANGE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAIN]+"$",r("XRANGELOOSE"),ea[eh.XRANGELOOSE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAINLOOSE]+"$",r("COERCE"),ea[eh.COERCE]="(^|[^\\d])(\\d{1,"+ei+"})(?:\\.(\\d{1,"+ei+"}))?(?:\\.(\\d{1,"+ei+"}))?(?:$|[^\\d])",r("COERCERTL"),en[eh.COERCERTL]=RegExp(ea[eh.COERCE],"g"),eo[eh.COERCERTL]=RegExp(i(ea[eh.COERCE]),"g"),r("LONETILDE"),ea[eh.LONETILDE]="(?:~>?)",r("TILDETRIM"),ea[eh.TILDETRIM]="(\\s*)"+ea[eh.LONETILDE]+"\\s+",en[eh.TILDETRIM]=RegExp(ea[eh.TILDETRIM],"g"),eo[eh.TILDETRIM]=RegExp(i(ea[eh.TILDETRIM]),"g"),ep="$1~",r("TILDE"),ea[eh.TILDE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAIN]+"$",r("TILDELOOSE"),ea[eh.TILDELOOSE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAINLOOSE]+"$",r("LONECARET"),ea[eh.LONECARET]="(?:\\^)",r("CARETTRIM"),ea[eh.CARETTRIM]="(\\s*)"+ea[eh.LONECARET]+"\\s+",en[eh.CARETTRIM]=RegExp(ea[eh.CARETTRIM],"g"),eo[eh.CARETTRIM]=RegExp(i(ea[eh.CARETTRIM]),"g"),ef="$1^",r("CARET"),ea[eh.CARET]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAIN]+"$",r("CARETLOOSE"),ea[eh.CARETLOOSE]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),ea[eh.COMPARATORLOOSE]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),ea[eh.COMPARATOR]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),ea[eh.COMPARATORTRIM]="(\\s*)"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+"|"+ea[eh.XRANGEPLAIN]+")",en[eh.COMPARATORTRIM]=RegExp(ea[eh.COMPARATORTRIM],"g"),eo[eh.COMPARATORTRIM]=RegExp(i(ea[eh.COMPARATORTRIM]),"g"),ed="$1$2$3",r("HYPHENRANGE"),ea[eh.HYPHENRANGE]="^\\s*("+ea[eh.XRANGEPLAIN]+")\\s+-\\s+("+ea[eh.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),ea[eh.HYPHENRANGELOOSE]="^\\s*("+ea[eh.XRANGEPLAINLOOSE]+")\\s+-\\s+("+ea[eh.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),ea[eh.STAR]="(<|>)?=?\\s*\\*";for(var ee,et,er,ei,es,en,eo,ea,eh,el,ec,eu,ep,ef,ed,em,ey,eg=0;eg=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=h,t.diff=l,t.compareIdentifiers=c,em=/^[0-9]+$/,t.rcompareIdentifiers=u,t.major=p,t.minor=f,t.patch=d,t.compare=m,t.compareLoose=y,t.compareBuild=g,t.rcompare=E,t.sort=w,t.rsort=x,t.gt=v,t.lt=O,t.eq=b,t.neq=I,t.gte=N,t.lte=R,t.cmp=S,t.Comparator=T,ey={},T.prototype.parse=function(e){var t=this.options.loose?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new a(r[2],this.options.loose):this.semver=ey;},T.prototype.toString=function(){return this.value;},T.prototype.test=function(e){if(ee("Comparator.test",e,this.options.loose),this.semver===ey||e===ey)return!0;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}return S(e,this.operator,this.semver,this.options);},T.prototype.intersects=function(e,t){if(!(e instanceof T))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new P(e.value,t),q(this.value,r,t));if(""===e.operator)return""===e.value||(r=new P(this.value,t),q(e.semver,r,t));var r,i=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),s=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),n=this.semver.version===e.semver.version,o=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),a=S(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),h=S(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||s||n&&o||a||h;},t.Range=P,P.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},P.prototype.toString=function(){return this.range;},P.prototype.parseRange=function(e){var t=this.options.loose,r=t?eo[eh.HYPHENRANGELOOSE]:eo[eh.HYPHENRANGE];e=e.replace(r,k),ee("hyphen replace",e),e=e.replace(eo[eh.COMPARATORTRIM],ed),ee("comparator trim",e,eo[eh.COMPARATORTRIM]),e=(e=(e=e.replace(eo[eh.TILDETRIM],ep)).replace(eo[eh.CARETTRIM],ef)).split(/\s+/).join(" ");var i=t?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],s=e.split(" ").map(function(e){return _(e,this.options);},this).join(" ").split(/\s+/);return this.options.loose&&(s=s.filter(function(e){return!!e.match(i);})),s=s.map(function(e){return new T(e,this.options);},this);},P.prototype.intersects=function(e,t){if(!(e instanceof P))throw TypeError("a Range is required");return this.set.some(function(r){return A(r,t)&&e.set.some(function(e){return A(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=L,P.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}for(var t=0;t{let r=Buffer.alloc(0);this.message.on("data",e=>{r=Buffer.concat([r,e]);}),this.message.on("end",()=>{e(r.toString());});});}}e.exports.HttpClientResponse=m,e.exports.isHttps=h;class y{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return this.request("OPTIONS",e,null,t||{});}get(e,t){return this.request("GET",e,null,t||{});}del(e,t){return this.request("DELETE",e,null,t||{});}post(e,t,r){return this.request("POST",e,t,r||{});}patch(e,t,r){return this.request("PATCH",e,t,r||{});}put(e,t,r){return this.request("PUT",e,t,r||{});}head(e,t){return this.request("HEAD",e,null,t||{});}sendStream(e,t,r,i){return this.request(e,t,r,i);}async getJson(e,t={}){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,n.ApplicationJson);let r=await this.get(e,t);return this._processResponse(r,this.requestOptions);}async postJson(e,t,r={}){let i=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,n.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,n.ApplicationJson);let o=await this.post(e,i,r);return this._processResponse(o,this.requestOptions);}async putJson(e,t,r={}){let i=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,n.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,n.ApplicationJson);let o=await this.put(e,i,r);return this._processResponse(o,this.requestOptions);}async patchJson(e,t,r={}){let i=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,n.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,n.ApplicationJson);let o=await this.patch(e,i,r);return this._processResponse(o,this.requestOptions);}async request(e,t,r,s){let n;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),a=this._prepareRequest(e,o,s),h=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,p=0;for(;p0;){let i=n.message.headers.location;if(!i)break;let h=new URL(i);if("https:"==o.protocol&&o.protocol!=h.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(await n.readBody(),h.hostname!==o.hostname)for(let e in s)"authorization"===e.toLowerCase()&&delete s[e];a=this._prepareRequest(e,h,s),n=await this.requestRaw(a,r),t--;}if(-1==c.indexOf(n.message.statusCode))break;(p+=1){let s=function(e,t){e&&i(e),r(t);};this.requestRawWithCallback(e,t,s);});}requestRawWithCallback(e,t,r){let i;"string"==typeof t&&(e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let s=!1,n=(e,t)=>{s||(s=!0,r(e,t));},o=e.httpModule.request(e.options,e=>{n(null,new m(e));});o.on("socket",e=>{i=e;}),o.setTimeout(this._socketTimeout||18e4,()=>{i&&i.end(),n(Error("Request timeout: "+e.options.path),null);}),o.on("error",function(e){n(e,null);}),t&&"string"==typeof t&&o.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){o.end();}),t.pipe(o)):o.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let i={};i.parsedUrl=t;let s="https:"===i.parsedUrl.protocol;i.httpModule=s?$e2xck$https:$e2xck$http;let n=s?443:80;return i.options={},i.options.host=i.parsedUrl.hostname,i.options.port=i.parsedUrl.port?parseInt(i.parsedUrl.port):n,i.options.path=(i.parsedUrl.pathname||"")+(i.parsedUrl.search||""),i.options.method=e,i.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(i.options.headers["user-agent"]=this.userAgent),i.options.agent=this._getAgent(i.parsedUrl),this.handlers&&this.handlers.forEach(e=>{e.prepareRequest(i.options);}),i;}_mergeHeaders(e){let t=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(e)):t(e||{});}_getExistingOrDefaultHeader(e,t,r){let i;let s=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers&&(i=s(this.requestOptions.headers)[t]),e[t]||i||r;}_getAgent(e){let t;let i=r.getProxyUrl(e),s=i&&i.hostname;if(this._keepAlive&&s&&(t=this._proxyAgent),this._keepAlive&&!s&&(t=this._agent),t)return t;let n="https:"===e.protocol,a=100;if(this.requestOptions&&(a=this.requestOptions.maxSockets||$e2xck$http.globalAgent.maxSockets),s){let e;o||(o=parcelRequire("3zxaw"));let r={maxSockets:a,keepAlive:this._keepAlive,proxy:{...((i.username||i.password)&&{proxyAuth:`${i.username}:${i.password}`}),host:i.hostname,port:i.port}},s="https:"===i.protocol;t=(e=n?s?o.httpsOverHttps:o.httpsOverHttp:s?o.httpOverHttps:o.httpOverHttp)(r),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:a};t=n?new $e2xck$https.Agent(e):new $e2xck$http.Agent(e),this._agent=t;}return t||(t=n?$e2xck$https.globalAgent:$e2xck$http.globalAgent),n&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){let t=f*Math.pow(2,e=Math.min(p,e));return new Promise(e=>setTimeout(()=>e(),t));}static dateTimeDeserializer(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}async _processResponse(e,t){return new Promise(async(r,s)=>{let n,o;let a=e.message.statusCode,h={statusCode:a,result:null,headers:{}};a==i.NotFound&&r(h);try{(o=await e.readBody())&&o.length>0&&(n=t&&t.deserializeDates?JSON.parse(o,y.dateTimeDeserializer):JSON.parse(o),h.result=n),h.headers=e.message.headers;}catch(e){}if(a>299){let e;let t=new d(e=n&&n.message?n.message:o&&o.length>0?o:"Failed request: ("+a+")",a);t.result=h.result,s(t);}else r(h);});}}e.exports.HttpClient=y;}),parcelRegister("3H0GM",function(e,t){function r(e){let t,r,s="https:"===e.protocol;return i(e)||(r=s?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY)&&(t=new URL(r)),t;}function i(e){let t;if(!e.hostname)return!1;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let i=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&i.push(`${i[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if(i.some(t=>t===e))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getProxyUrl=r,e.exports.checkBypass=i;}),parcelRegister("lctVY",function(e,t){function r(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||i)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var a=0;a<16;++a)t[n+a]=o[a];return t||s(o);}var i=parcelRequire("jzaSY"),s=parcelRequire("jGQv3");e.exports=r;}),parcelRegister("jzaSY",function(e,t){e.exports=function(){return $e2xck$crypto.randomBytes(16);};}),parcelRegister("jGQv3",function(e,t){function r(e,t){var r=t||0,s=i;return[s[e[r++]],s[e[r++]],s[e[r++]],s[e[r++]],"-",s[e[r++]],s[e[r++]],"-",s[e[r++]],s[e[r++]],"-",s[e[r++]],s[e[r++]],"-",s[e[r++]],s[e[r++]],s[e[r++]],s[e[r++]],s[e[r++]],s[e[r++]]].join("");}for(var i=[],s=0;s<256;++s)i[s]=(s+256).toString(16).substr(1);e.exports=r;}),parcelRegister("elhkM",function(e,t){var r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),i=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.hasOwnProperty.call(e,s)&&r(t,e,s);return i(t,e),t;},n=e.exports&&e.exports.__awaiter||function(e,t,r,i){function s(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,n){function o(e){try{h(i.next(e));}catch(e){n(e);}}function a(e){try{h(i.throw(e));}catch(e){n(e);}}function h(e){e.done?r(e.value):s(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.RetryHelper=void 0;let o=s(parcelRequire("lUL8q"));class a{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return n(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}}e.exports.RetryHelper=a;}),parcelRegister("j3bdl",function(e,t){var r,i,s,n,o;async function a(e,t,s,o,a){let c,u,p="",f="",d=l(e);if(o&&(u=await r.getAvailablePyPyVersions())&&u.length>0){let e=r.findRelease(u,d.pythonVersion,d.pypyVersion,t,!1);e?(n.info(`Resolved as PyPy ${e.resolvedPyPyVersion} with Python (${e.resolvedPythonVersion})`),d.pythonVersion=e.resolvedPythonVersion,d.pypyVersion=e.resolvedPyPyVersion):n.info(`Failed to resolve PyPy ${d.pypyVersion} with Python (${d.pythonVersion}) from manifest`);}({installDir:c,resolvedPythonVersion:f,resolvedPyPyVersion:p}=h(d.pythonVersion,d.pypyVersion,t)),c||({installDir:c,resolvedPythonVersion:f,resolvedPyPyVersion:p}=await r.installPyPy(d.pypyVersion,d.pythonVersion,t,a,u));let m=i.IS_WINDOWS?"Scripts":"bin",y=$e2xck$path.join(c,m),g=i.IS_WINDOWS?".exe":"",E=$e2xck$path.join(i.IS_WINDOWS?c:y,"python"+g),w=r.getPyPyBinaryPath(c);return s&&(n.exportVariable("pythonLocation",c),n.exportVariable("Python_ROOT_DIR",c),n.exportVariable("Python2_ROOT_DIR",c),n.exportVariable("Python3_ROOT_DIR",c),n.exportVariable("PKG_CONFIG_PATH",w+"/lib/pkgconfig"),n.addPath(w),n.addPath(y)),n.setOutput("python-version","pypy"+p),n.setOutput("python-path",E),{resolvedPyPyVersion:p,resolvedPythonVersion:f};}function h(e,t,r){let a="",h="",l=i.IS_WINDOWS?c(e):o.find("PyPy",e,r);return l&&(h=(0,i.getPyPyVersionFromPath)(l),a=(0,i.readExactPyPyVersionFile)(l),s.satisfies(a,t)||(l=null,a="",h="")),l||n.info(`PyPy version ${e} (${t}) was not found in the local cache`),{installDir:l,resolvedPythonVersion:h,resolvedPyPyVersion:a};}function l(e){let t;let s=e.split("-").filter(e=>!!e);if(/^(pypy)(.+)/.test(s[0])){let e=s[0].replace("pypy","");s.splice(0,1,"pypy",e);}if(s.length<2||"pypy"!=s[0])throw Error("Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.");let n=s[1];if(t=s.length>2?r.pypyVersionToSemantic(s[2]):"x",!(0,i.validateVersion)(n)||!(0,i.validateVersion)(t))throw Error("Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.");if(!(0,i.validatePythonVersionFormatForPyPy)(n))throw Error("Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.");return{pypyVersion:t,pythonVersion:n};}function c(e){let t="";return(0,i.WINDOWS_ARCHS).forEach(r=>t=t||o.find("PyPy",e,r)),t;}$parcel$export(e.exports,"findPyPyVersion",()=>a),r=parcelRequire("fujKW"),i=parcelRequire("c6Y2q"),s=parcelRequire("24j9d"),n=parcelRequire("lUL8q"),o=parcelRequire("wMbNK");}),parcelRegister("fujKW",function(e,t){var r,i,s,n,o,a;async function h(e,t,s,n,o){let h;if(!(o=o??(await l()))||0===o.length)throw Error("No release was found in PyPy version.json");let d=p(o,t,e,s,!1);if(!n||d&&d.foundAsset||(r.info([`Stable PyPy version ${t} (${e}) with arch ${s} not found`,"Trying pre-release versions"].join($e2xck$os.EOL)),d=p(o,t,e,s,!0)),!d||!d.foundAsset)throw Error(`PyPy version ${t} (${e}) with arch ${s} not found`);let{foundAsset:m,resolvedPythonVersion:y,resolvedPyPyVersion:g}=d,E=""+m.download_url;r.info(`Downloading PyPy from "${E}" ...`);try{let e=await i.downloadTool(E);r.info("Extracting downloaded archive..."),h=a.IS_WINDOWS?await i.extractZip(e):await i.extractTar(e,void 0,"x");let t=$parcel$interopDefault($e2xck$fs).readdirSync(h)[0],n=$e2xck$path.join(h,t),o=n;(0,a.isNightlyKeyword)(g)||(o=await i.cacheDir(n,"PyPy",y,s)),(0,a.writeExactPyPyVersionFile)(o,g);let l=f(o);return await c(l,y),await u(l),{installDir:o,resolvedPythonVersion:y,resolvedPyPyVersion:g};}catch(e){throw e instanceof Error&&(e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode)?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),void 0!==e.stack&&r.debug(e.stack)),e;}}async function l(){let e="https://downloads.python.org/pypy/versions.json",t=new n.HttpClient("tool-cache"),r=await t.getJson(e);if(!r.result)throw Error(`Unable to retrieve the list of available PyPy versions from '${e}'`);return r.result;}async function c(e,t){let i=s.coerce(t),n=s.major(i),o=s.minor(i),h=2===n?"":"3",l=`${n}.${o}`,c=a.IS_WINDOWS?".exe":"";r.info("Creating symlinks..."),(0,a.createSymlinkInFolder)(e,`pypy${h}${c}`,`python${n}${c}`,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${c}`,"python"+c,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${c}`,`pypy${l}${c}`,!0);}async function u(e){r.info("Installing and updating pip");let t=$e2xck$path.join(e,"python");await o.exec(`${t} -m ensurepip`),await o.exec(`${e}/python -m pip install --ignore-installed pip`);}function p(e,t,r,i,n){let o={includePrerelease:n},h=e.filter(e=>{let n=s.satisfies(s.coerce(e.python_version),t),h=(0,a.isNightlyKeyword)(r)&&(0,a.isNightlyKeyword)(e.pypy_version)||s.satisfies(d(e.pypy_version),r,o),l=e.files&&(a.IS_WINDOWS?m(e,i):y(e,i,process.platform));return n&&h&&l;});if(0===h.length)return null;let l=h.sort((e,t)=>s.compare(s.coerce(d(t.pypy_version)),s.coerce(d(e.pypy_version)))||s.compare(s.coerce(t.python_version),s.coerce(e.python_version)))[0];return{foundAsset:a.IS_WINDOWS?g(l,i):E(l,i,process.platform),resolvedPythonVersion:l.python_version,resolvedPyPyVersion:l.pypy_version.trim()};}function f(e){let t=$e2xck$path.join(e,"bin");return a.IS_WINDOWS?e:t;}function d(e){let t=/(\d+\.\d+\.\d+)((?:a|b|rc))(\d*)/g;return e.replace(t,"$1-$2.$3");}function m(e,t){return t=w(t),e.files.some(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function y(e,t,r){return e.files.some(e=>e.arch===t&&e.platform===r);}function g(e,t){return t=w(t),e.files.find(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function E(e,t,r){return e.files.find(e=>e.arch===t&&e.platform===r);}function w(e){return"x32"===e&&(e="x86"),e;}$parcel$export(e.exports,"installPyPy",()=>h),$parcel$export(e.exports,"getAvailablePyPyVersions",()=>l),$parcel$export(e.exports,"findRelease",()=>p),$parcel$export(e.exports,"getPyPyBinaryPath",()=>f),$parcel$export(e.exports,"pypyVersionToSemantic",()=>d),r=parcelRequire("lUL8q"),i=parcelRequire("wMbNK"),s=parcelRequire("24j9d"),n=parcelRequire("i2yVI"),o=parcelRequire("ioM8U"),a=parcelRequire("c6Y2q");}); +//# sourceMappingURL=actions_python.10530df8.js.map \ No newline at end of file diff --git a/dist/actions/actions_python.10530df8.js.map b/dist/actions/actions_python.10530df8.js.map new file mode 100644 index 00000000..1d8eecd9 --- /dev/null +++ b/dist/actions/actions_python.10530df8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actions_python.10530df8.js","names":["u","e","startsWith","p","t","o","h","IS_MAC","process","env","AGENT_TOOLSDIRECTORY","l","trim","RUNNER_TOOL_CACHE","n","debug","r","i","findPyPyVersion","d","resolvedPyPyVersion","resolvedPythonVersion","s","info","useCpythonVersion","version","impl","a","GITHUB_ACTIONS","f","join","c","pathExists","warning","IS_WINDOWS","$e2xck$path","m","getManifest","findReleaseFromManifest","y","find","files","length","installCpythonFromRelease","getOSInfo","Error","osName","osVersion","MANIFEST_URL","$e2xck$os","EOL","g","E","w","exportVariable","IS_LINUX","LD_LIBRARY_PATH","split","includes","addPath","basename","dirname","major","minor","APPDATA","x","setOutput","replace","sep","findIndex","$parcel$interopDefault","$e2xck$fs","existsSync","symlinkSync","chmodSync","validRange","v","readFileSync","toString","writeFileSync","test","stdout","getExecOutput","silent","message","parcelRequire","platform","exports","async","stream","prettyError","$parcel$global","Buffer","isBuffer","parse","finish","_custom","isDigit","CHAR_0","CHAR_9","isHexit","CHAR_A","CHAR_F","CHAR_a","CHAR_f","isBit","CHAR_1","isOctit","CHAR_7","isAlphaNumQuoteHyphen","CHAR_Z","CHAR_z","CHAR_APOS","CHAR_QUOT","CHAR_LOWBAR","CHAR_HYPHEN","isAlphaNumHyphen","hasKey","hasOwnProperty","call","defineProperty","descriptor","InlineTable","Object","defineProperties","_type","value","INLINE_TABLE","isInlineTable","Table","TABLE","_declared","writable","isTable","InlineList","INLINE_LIST","_contentType","isInlineList","List","LIST","isList","Integer","is","BigInt","Number","isSafeInteger","BoxedBigInt","isNaN","INTEGER","_inspect","isInteger","Float","FLOAT","isFloat","tomlType","Date","makeParserClass","constructor","ctx","obj","atEndOfWord","char","CHAR_NUM","CTRL_I","CHAR_SP","atEndOfLine","END","CTRL_J","CTRL_M","parseStart","CHAR_LSQB","parseTableOrList","parseComment","callNow","parseAssignStatement","error","TomlError","parseWhitespaceToEOL","goto","return","parseAssign","recordAssignStatement","key","pop","valueOf","parseKeyword","recordAssignKeyword","state","resultTable","push","parseAssignKeywordPreDot","CHAR_PERIOD","next","parseAssignKeywordPostDot","parseAssignEqual","CHAR_EQUALS","parseAssignPreValue","parseValue","recordAssignValue","returnNow","nextChar","parseTable","parseList","parseTableNext","parseTableMore","CHAR_RSQB","parseListNext","parseListMore","parseListEnd","parseDoubleString","parseSingleString","CHAR_PLUS","parseNumberSign","CHAR_i","parseInf","CHAR_n","parseNan","parseNumberOrDateTime","CHAR_t","parseBoolean","parseInlineList","recordValue","CHAR_LCUB","parseInlineTable","parseInf2","buf","parseNan2","NaN","parseBasicString","parseLiteralString","parseBareKey","consume","parseLiteralMultiStringMaybe","CHAR_DEL","CTRL_CHAR_BOUNDARY","errorControlCharInString","parseLiteralMultiString","parseLiteralMultiStringContent","parseLiteralMultiEnd","parseLiteralMultiEnd2","parseMultiStringMaybe","CHAR_BSOL","parseEscape","recordEscapeReplacement","parseMultiString","parseMultiStringContent","parseMultiEscape","recordMultiEscapeReplacement","parseMultiEnd","parseMultiEnd2","parseMultiTrim","parsePreMultiTrim","escapes","CHAR_u","parseSmallUnicode","parseUnicodeReturn","CHAR_U","parseLargeUnicode","parseInt","SURROGATE_FIRST","SURROGATE_LAST","String","fromCodePoint","wrap","parseMaybeSignedInfOrNan","parseNoUnder","parseNumberIntegerStart","parseNumberIntegerExponentOrDecimal","parseNumberInteger","parseNumberFloat","CHAR_E","CHAR_e","parseNumberExponentSign","parseNoUnderHexOctBinLiteral","parseNumberExponent","parseNumberBaseOrDateTime","parseNumberOrDateTimeOnly","parseDateTime","CHAR_COLON","parseOnlyTimeHour","parseDateTimeOnly","CHAR_b","parseIntegerBin","CHAR_o","parseIntegerOct","CHAR_x","parseIntegerHex","result","parseDateMonth","parseDateDay","CHAR_T","parseStartTimeHour","$7EgKF","parseTimeHour","parseTimeMin","parseTimeSec","parseTimeZoneOrFraction","parseOnlyTimeMin","parseOnlyTimeSec","parseOnlyTimeFractionMaybe","$9WIdb","parseOnlyTimeFraction","parseDateTimeFraction","parseTimeZoneHour","$8CCFi","$5kLdF","parseTimeZoneSep","parseTimeZoneMin","parseTrue_r","parseFalse_a","CHAR_r","parseTrue_u","parseTrue_e","parseFalse_l","CHAR_l","parseFalse_s","CHAR_s","parseFalse_e","resultArr","recordInlineListValue","parseInlineListNext","CHAR_COMMA","CHAR_RCUB","recordInlineTableValue","parseInlineTableNext","module","name","captureStackTrace","fromTOML","wrapped","code","Symbol","prototype","configurable","enumerable","utilInspect","eval","custom","_","asIntN","parser","returned","pos","col","line","stack","_buf","ii","runOne","codePointAt","haveBuffer","JSON","stringify","TypeError","isFloating","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","isDate","isTime","Math","min","max","slice","setImmediate","blocksize","Promise","setEncoding","read","once","$e2xck$stream","Transform","objectMode","transform","emit","flush","toJSON","keys","filter","Array","isArray","forEach","T","map","O","R","S","b","I","every","N","P","A","findFromManifest","getManifestFromRepo","cwd","listeners","stderr","exec","download_url","downloadTool","extractZip","extractTar","HTTPError","httpStatusCode","getInput","j","q","default","D","mkdirP","C","L","RetryHelper","execute","G","M","F","HttpClient","X","allowRetries","authorization","get","statusCode","statusMessage","H","promisify","k","pipeline","createWriteStream","rmRF","$e2xck$assert","ok","B","chdir","isDebug","which","ignoreReturnCode","toUpperCase","W","unshift","V","clean","U","arch","statSync","isDirectory","readdirSync","cp","recursive","isFile","getJson","tree","path","url","accept","readBody","$","_findMatch","valid","sort","gt","satisfies","RUNNER_TEMP","from","Set","$e2xck$util","setPrototypeOf","new","target","extract7z","extractXar","cacheDir","cacheFile","findAllVersions","isExplicitVersion","evaluateVersions","stable","platform_version","_getOsVersion","assign","$e2xck$child_process","execSync","_readLinuxVersionFile","eh","el","eu","loose","includePrerelease","et","eo","LOOSE","FULL","ee","options","match","raw","patch","er","prerelease","build","format","inc","em","compare","compareBuild","semver","ey","operator","set","parseRange","intersects","toLowerCase","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","range","Y","z","K","Z","J","Q","rtl","COERCERTL","index","lastIndex","COERCE","NODE_DEBUG","arguments","console","log","apply","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","ei","es","en","re","safeRe","ea","src","tokens","ec","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","LOOSEPLAIN","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","RegExp","LONETILDE","TILDETRIM","ep","LONECARET","CARETTRIM","ef","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","ed","HYPHENRANGE","HYPHENRANGELOOSE","eg","SemVer","compareMain","comparePre","diff","compareIdentifiers","rcompareIdentifiers","compareLoose","rcompare","rsort","lt","eq","neq","gte","lte","cmp","Comparator","Range","some","toComparators","maxSatisfying","minSatisfying","minVersion","ltr","gtr","outside","coerce","getProxyUrl","URL","href","protocol","OK","MultipleChoices","MovedPermanently","ResourceMoved","SeeOther","NotModified","UseProxy","SwitchProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","TooManyRequests","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpCodes","Accept","ContentType","Headers","ApplicationJson","MediaTypes","HttpClientError","alloc","on","concat","HttpClientResponse","isHttps","_ignoreSslError","_allowRedirects","_allowRedirectDowngrade","_maxRedirects","_allowRetries","_maxRetries","_keepAlive","_disposed","userAgent","handlers","requestOptions","ignoreSslError","_socketTimeout","socketTimeout","allowRedirects","allowRedirectDowngrade","maxRedirects","keepAlive","maxRetries","request","del","post","put","head","sendStream","_getExistingOrDefaultHeader","_processResponse","postJson","putJson","patchJson","_prepareRequest","indexOf","requestRaw","canHandleAuthentication","handleAuthentication","headers","location","hostname","_performExponentialBackoff","dispose","_agent","destroy","requestRawWithCallback","byteLength","httpModule","setTimeout","end","write","pipe","getAgent","_getAgent","parsedUrl","$e2xck$https","$e2xck$http","host","port","pathname","search","method","_mergeHeaders","agent","prepareRequest","reduce","_proxyAgent","maxSockets","globalAgent","proxy","username","password","proxyAuth","httpsOverHttps","httpsOverHttp","httpOverHttps","httpOverHttp","Agent","rejectUnauthorized","pow","dateTimeDeserializer","deserializeDates","https_proxy","HTTPS_PROXY","http_proxy","HTTP_PROXY","no_proxy","NO_PROXY","checkBypass","random","rng","$e2xck$crypto","randomBytes","substr","maxAttempts","minSeconds","floor","maxSeconds","getSleepAmount","sleep","getAvailablePyPyVersions","findRelease","pythonVersion","pypyVersion","installDir","installPyPy","getPyPyBinaryPath","getPyPyVersionFromPath","readExactPyPyVersionFile","splice","pypyVersionToSemantic","validateVersion","validatePythonVersionFormatForPyPy","WINDOWS_ARCHS","foundAsset","isNightlyKeyword","writeExactPyPyVersionFile","createSymlinkInFolder","python_version","pypy_version","WINDOWS_PLATFORMS"],"sources":["../../","../../src/python/actions_python.ts","../../node_modules/setup-python/src/find-python.ts","../../node_modules/setup-python/src/utils.ts","../../node_modules/@iarna/toml/toml.js","../../node_modules/@iarna/toml/parse.js","../../node_modules/@iarna/toml/parse-string.js","../../node_modules/@iarna/toml/lib/toml-parser.js","../../node_modules/@iarna/toml/lib/parser.js","../../node_modules/@iarna/toml/lib/create-datetime.js","../../node_modules/@iarna/toml/lib/create-datetime-float.js","../../node_modules/@iarna/toml/lib/format-num.js","../../node_modules/@iarna/toml/lib/create-date.js","../../node_modules/@iarna/toml/lib/create-time.js","../../node_modules/@iarna/toml/parse-pretty-error.js","../../node_modules/@iarna/toml/parse-async.js","../../node_modules/@iarna/toml/parse-stream.js","../../node_modules/@iarna/toml/stringify.js","../../node_modules/setup-python/src/install-python.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/setup-python/node_modules/@actions/http-client/index.js","../../node_modules/setup-python/node_modules/@actions/http-client/proxy.js","../../node_modules/setup-python/node_modules/uuid/v4.js","../../node_modules/setup-python/node_modules/uuid/lib/rng.js","../../node_modules/setup-python/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/retry-helper.ts","../../node_modules/setup-python/src/find-pypy.ts","../../node_modules/setup-python/src/install-pypy.ts"],"sourcesContent":["var $e2xck$path = require(\"path\");\nvar $e2xck$os = require(\"os\");\nvar $e2xck$fs = require(\"fs\");\nvar $e2xck$stream = require(\"stream\");\nvar $e2xck$util = require(\"util\");\nvar $e2xck$assert = require(\"assert\");\nvar $e2xck$child_process = require(\"child_process\");\nvar $e2xck$http = require(\"http\");\nvar $e2xck$https = require(\"https\");\nvar $e2xck$crypto = require(\"crypto\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire810d\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"i1n7v\", function(module, exports) {\n\n$parcel$export(module.exports, \"setupActionsPython\", () => $676cd4a2b6f9e8d7$export$5655ebf4048b68d5);\n\nvar $hdVmr = parcelRequire(\"hdVmr\");\n\nvar $j3bdl = parcelRequire(\"j3bdl\");\n\nvar $g0Mwp = parcelRequire(\"g0Mwp\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $e19ul = parcelRequire(\"e19ul\");\n\nvar $l5aZl = parcelRequire(\"l5aZl\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $6afW1 = parcelRequire(\"6afW1\");\n\nvar $676cd4a2b6f9e8d7$var$$parcel$__dirname = $e2xck$path.resolve(__dirname, \"../../src/python\");\nfunction $676cd4a2b6f9e8d7$var$isPyPyVersion(versionSpec) {\n return versionSpec.startsWith(\"pypy\");\n}\nconst $676cd4a2b6f9e8d7$var$checkLatest = false;\nasync function $676cd4a2b6f9e8d7$export$5655ebf4048b68d5(version, _setupDir, arch) {\n if (0, $c6Y2q.IS_MAC) process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\";\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim();\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY;\n (0, $lUL8q.debug)(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`);\n if (version) {\n let pythonVersion;\n if ($676cd4a2b6f9e8d7$var$isPyPyVersion(version)) {\n const installed = await (0, $j3bdl.findPyPyVersion)(version, arch, true, $676cd4a2b6f9e8d7$var$checkLatest, false);\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;\n (0, $g0Mwp.info)(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`);\n } else {\n const installed = await (0, $hdVmr.useCpythonVersion)(version, arch, true, $676cd4a2b6f9e8d7$var$checkLatest, false);\n pythonVersion = installed.version;\n (0, $g0Mwp.info)(`Successfully set up ${installed.impl} (${pythonVersion})`);\n }\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n if (0, $l5aZl.GITHUB_ACTIONS) await $676cd4a2b6f9e8d7$var$addPythonLoggingMatcher();\n return undefined;\n}\nasync function $676cd4a2b6f9e8d7$var$addPythonLoggingMatcher() {\n const matcherPath = (0, $e19ul.join)($676cd4a2b6f9e8d7$var$$parcel$__dirname, \"python_matcher.json\");\n if (!await (0, $6afW1.pathExists)(matcherPath)) return (0, $g0Mwp.warning)(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\");\n (0, $g0Mwp.info)(`::add-matcher::${matcherPath}`);\n}\n\n});\nparcelRegister(\"hdVmr\", function(module, exports) {\n\n$parcel$export(module.exports, \"useCpythonVersion\", () => $48b0364923ab7341$export$c90655100676e173);\n\n\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $4rCDr = parcelRequire(\"4rCDr\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\nfunction $48b0364923ab7341$var$binDir(installDir) {\n if (0, $c6Y2q.IS_WINDOWS) return $e2xck$path.join(installDir, \"Scripts\");\n else return $e2xck$path.join(installDir, \"bin\");\n}\nasync function $48b0364923ab7341$export$c90655100676e173(version, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let manifest = null;\n const desugaredVersionSpec = $48b0364923ab7341$var$desugarDevVersion(version);\n let semanticVersionSpec = $48b0364923ab7341$export$2630b06843feee21(desugaredVersionSpec, allowPreReleases);\n $lUL8q.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n if (checkLatest) {\n manifest = await $4rCDr.getManifest();\n const resolvedVersion = (await $4rCDr.findReleaseFromManifest(semanticVersionSpec, architecture, manifest))?.version;\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n $lUL8q.info(`Resolved as '${semanticVersionSpec}'`);\n } else $lUL8q.info(`Failed to resolve version ${semanticVersionSpec} from manifest`);\n }\n let installDir = $wMbNK.find(\"Python\", semanticVersionSpec, architecture);\n if (!installDir) {\n $lUL8q.info(`Version ${semanticVersionSpec} was not found in the local cache`);\n const foundRelease = await $4rCDr.findReleaseFromManifest(semanticVersionSpec, architecture, manifest);\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n $lUL8q.info(`Version ${semanticVersionSpec} is available for downloading`);\n await $4rCDr.installCpythonFromRelease(foundRelease);\n installDir = $wMbNK.find(\"Python\", semanticVersionSpec, architecture);\n }\n }\n if (!installDir) {\n const osInfo = await (0, $c6Y2q.getOSInfo)();\n throw new Error([\n `The version '${version}' with architecture '${architecture}' was not found for ${osInfo ? `${osInfo.osName} ${osInfo.osVersion}` : \"this operating system\"}.`,\n `The list of all available versions can be found here: ${$4rCDr.MANIFEST_URL}`\n ].join($e2xck$os.EOL));\n }\n const _binDir = $48b0364923ab7341$var$binDir(installDir);\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $e2xck$path.join((0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n if (updateEnvironment) {\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $lUL8q.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $lUL8q.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $lUL8q.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n if (0, $c6Y2q.IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH ? `:${process.env.LD_LIBRARY_PATH}` : \"\";\n const pyLibPath = $e2xck$path.join(installDir, \"lib\");\n if (!libPath.split(\":\").includes(pyLibPath)) $lUL8q.exportVariable(\"LD_LIBRARY_PATH\", pyLibPath + libPath);\n }\n $lUL8q.addPath(installDir);\n $lUL8q.addPath(_binDir);\n if (0, $c6Y2q.IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = $e2xck$path.basename($e2xck$path.dirname(installDir));\n const major = $24j9d.major(version);\n const minor = $24j9d.minor(version);\n const userScriptsDir = $e2xck$path.join(process.env[\"APPDATA\"] || \"\", \"Python\", `Python${major}${minor}`, \"Scripts\");\n $lUL8q.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n const installed = $48b0364923ab7341$var$versionFromPath(installDir);\n $lUL8q.setOutput(\"python-version\", installed);\n $lUL8q.setOutput(\"python-path\", pythonPath);\n return {\n impl: \"CPython\",\n version: installed\n };\n}\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */ function $48b0364923ab7341$var$desugarDevVersion(versionSpec) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, \"~$1.$2.0-0\");\n}\n/** Extracts python version from install path from hosted tool cache as described in README.md */ function $48b0364923ab7341$var$versionFromPath(installDir) {\n const parts = installDir.split($e2xck$path.sep);\n const idx = parts.findIndex((part)=>part === \"PyPy\" || part === \"Python\");\n return parts[idx + 1] || \"\";\n}\nfunction $48b0364923ab7341$export$2630b06843feee21(versionSpec, allowPreReleases) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, \"$1-$2\");\n if (allowPreReleases) result = result.replace(majorMinor, \"~$1.$2.0-0\");\n return result;\n}\n\n});\nparcelRegister(\"c6Y2q\", function(module, exports) {\n\n$parcel$export(module.exports, \"IS_WINDOWS\", () => $4a2853942588b24c$export$82633ee808573685);\n$parcel$export(module.exports, \"IS_LINUX\", () => $4a2853942588b24c$export$25e95d65b6faeb9a);\n$parcel$export(module.exports, \"IS_MAC\", () => $4a2853942588b24c$export$ff23e6b4c4401383);\n$parcel$export(module.exports, \"WINDOWS_ARCHS\", () => $4a2853942588b24c$export$175751bac16078cf);\n$parcel$export(module.exports, \"WINDOWS_PLATFORMS\", () => $4a2853942588b24c$export$da6ba390a22488d5);\n$parcel$export(module.exports, \"createSymlinkInFolder\", () => $4a2853942588b24c$export$b0a6cbd0a3e3c63a);\n$parcel$export(module.exports, \"validateVersion\", () => $4a2853942588b24c$export$7880c8f0bb8a6afd);\n$parcel$export(module.exports, \"isNightlyKeyword\", () => $4a2853942588b24c$export$ea46fc8abcf9f209);\n$parcel$export(module.exports, \"getPyPyVersionFromPath\", () => $4a2853942588b24c$export$8a23ea91582cecbc);\n$parcel$export(module.exports, \"readExactPyPyVersionFile\", () => $4a2853942588b24c$export$15e4ce4ad93c8c8a);\n$parcel$export(module.exports, \"writeExactPyPyVersionFile\", () => $4a2853942588b24c$export$8fb7815f538587a8);\n$parcel$export(module.exports, \"validatePythonVersionFormatForPyPy\", () => $4a2853942588b24c$export$3dc910628be7a364);\n$parcel$export(module.exports, \"getOSInfo\", () => $4a2853942588b24c$export$471d7e4c229dedf);\n/* eslint no-unsafe-finally: \"off\" */ \nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $kXu60 = parcelRequire(\"kXu60\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\nconst $4a2853942588b24c$export$82633ee808573685 = process.platform === \"win32\";\nconst $4a2853942588b24c$export$25e95d65b6faeb9a = process.platform === \"linux\";\nconst $4a2853942588b24c$export$ff23e6b4c4401383 = process.platform === \"darwin\";\nconst $4a2853942588b24c$export$175751bac16078cf = [\n \"x86\",\n \"x64\"\n];\nconst $4a2853942588b24c$export$da6ba390a22488d5 = [\n \"win32\",\n \"win64\"\n];\nconst $4a2853942588b24c$var$PYPY_VERSION_FILE = \"PYPY_VERSION\";\nfunction $4a2853942588b24c$export$b0a6cbd0a3e3c63a(folderPath, sourceName, targetName, setExecutable = false) {\n const sourcePath = $e2xck$path.join(folderPath, sourceName);\n const targetPath = $e2xck$path.join(folderPath, targetName);\n if ((0, ($parcel$interopDefault($e2xck$fs))).existsSync(targetPath)) return;\n (0, ($parcel$interopDefault($e2xck$fs))).symlinkSync(sourcePath, targetPath);\n if (!$4a2853942588b24c$export$82633ee808573685 && setExecutable) (0, ($parcel$interopDefault($e2xck$fs))).chmodSync(targetPath, \"755\");\n}\nfunction $4a2853942588b24c$export$7880c8f0bb8a6afd(version) {\n return $4a2853942588b24c$export$ea46fc8abcf9f209(version) || Boolean($24j9d.validRange(version));\n}\nfunction $4a2853942588b24c$export$ea46fc8abcf9f209(pypyVersion) {\n return pypyVersion === \"nightly\";\n}\nfunction $4a2853942588b24c$export$8a23ea91582cecbc(installDir) {\n return $e2xck$path.basename($e2xck$path.dirname(installDir));\n}\nfunction $4a2853942588b24c$export$15e4ce4ad93c8c8a(installDir) {\n let pypyVersion = \"\";\n const fileVersion = $e2xck$path.join(installDir, $4a2853942588b24c$var$PYPY_VERSION_FILE);\n if ((0, ($parcel$interopDefault($e2xck$fs))).existsSync(fileVersion)) pypyVersion = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(fileVersion).toString().trim();\n return pypyVersion;\n}\nfunction $4a2853942588b24c$export$8fb7815f538587a8(installDir, resolvedPyPyVersion) {\n const pypyFilePath = $e2xck$path.join(installDir, $4a2853942588b24c$var$PYPY_VERSION_FILE);\n (0, ($parcel$interopDefault($e2xck$fs))).writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\nfunction $4a2853942588b24c$export$3dc910628be7a364(version) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\nfunction $4a2853942588b24c$export$ebd6064652549ce9(message) {\n const warningPrefix = \"[warning]\";\n $lUL8q.info(`${warningPrefix}${message}`);\n}\nasync function $4a2853942588b24c$var$getWindowsInfo() {\n const { stdout: stdout } = await $ioM8U.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n const windowsVersion = stdout.trim().split(\" \")[3];\n return {\n osName: \"Windows\",\n osVersion: windowsVersion\n };\n}\nasync function $4a2853942588b24c$var$getMacOSInfo() {\n const { stdout: stdout } = await $ioM8U.getExecOutput(\"sw_vers\", [\n \"-productVersion\"\n ], {\n silent: true\n });\n const macOSVersion = stdout.trim();\n return {\n osName: \"macOS\",\n osVersion: macOSVersion\n };\n}\nasync function $4a2853942588b24c$export$734019fa9b4b8da() {\n const { stdout: stdout } = await $ioM8U.getExecOutput(\"lsb_release\", [\n \"-i\",\n \"-r\",\n \"-s\"\n ], {\n silent: true\n });\n const [osName, osVersion] = stdout.trim().split(\"\\n\");\n $lUL8q.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n return {\n osName: osName,\n osVersion: osVersion\n };\n}\nasync function $4a2853942588b24c$export$471d7e4c229dedf() {\n let osInfo;\n try {\n if ($4a2853942588b24c$export$82633ee808573685) osInfo = await $4a2853942588b24c$var$getWindowsInfo();\n else if ($4a2853942588b24c$export$25e95d65b6faeb9a) osInfo = await $4a2853942588b24c$export$734019fa9b4b8da();\n else if ($4a2853942588b24c$export$ff23e6b4c4401383) osInfo = await $4a2853942588b24c$var$getMacOSInfo();\n } catch (err) {\n const error = err;\n $lUL8q.debug(error.message);\n } finally{\n return osInfo;\n }\n}\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */ function $4a2853942588b24c$var$extractValue(obj, keys) {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) return $4a2853942588b24c$var$extractValue(value, keys.slice(1));\n else return value;\n } else return;\n}\nfunction $4a2853942588b24c$export$62b63db2b7d00b3a(versionFile) {\n $lUL8q.debug(`Trying to resolve version form ${versionFile}`);\n const pyprojectFile = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(versionFile, \"utf8\");\n const pyprojectConfig = $kXu60.parse(pyprojectFile);\n let keys = [];\n if (\"project\" in pyprojectConfig) // standard project metadata (PEP 621)\n keys = [\n \"project\",\n \"requires-python\"\n ];\n else // python poetry\n keys = [\n \"tool\",\n \"poetry\",\n \"dependencies\",\n \"python\"\n ];\n const versions = [];\n const version = $4a2853942588b24c$var$extractValue(pyprojectConfig, keys);\n if (version !== undefined) versions.push(version);\n $lUL8q.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, (version)=>version.split(\",\").join(\" \"));\n const validatedVersions = rawVersions.map((item)=>$24j9d.validRange(item, true)).filter((versionRange, index)=>{\n if (!versionRange) $lUL8q.debug(`The version ${rawVersions[index]} is not valid SemVer range`);\n return !!versionRange;\n });\n return validatedVersions;\n}\nfunction $4a2853942588b24c$export$6bdea68547837ebb(versionFile) {\n $lUL8q.debug(`Trying to resolve version form ${versionFile}`);\n const version = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(versionFile, \"utf8\");\n $lUL8q.info(`Resolved ${versionFile} as ${version}`);\n return [\n version\n ];\n}\nfunction $4a2853942588b24c$export$7ffda0a4baa8880a(versionFile) {\n if (versionFile.endsWith(\".toml\")) return $4a2853942588b24c$export$62b63db2b7d00b3a(versionFile);\n else return $4a2853942588b24c$export$6bdea68547837ebb(versionFile);\n}\n\n});\nparcelRegister(\"kXu60\", function(module, exports) {\n\n$parcel$export(module.exports, \"parse\", () => $f420a9c2a9aeb5b0$export$98e6a39c04603d36, (v) => $f420a9c2a9aeb5b0$export$98e6a39c04603d36 = v);\nvar $f420a9c2a9aeb5b0$export$98e6a39c04603d36;\nvar $f420a9c2a9aeb5b0$export$fac44ee5b035f737;\n\"use strict\";\n\n$f420a9c2a9aeb5b0$export$98e6a39c04603d36 = (parcelRequire(\"ziyWn\"));\n\n$f420a9c2a9aeb5b0$export$fac44ee5b035f737 = (parcelRequire(\"ZjZv7\"));\n\n});\nparcelRegister(\"ziyWn\", function(module, exports) {\n\"use strict\";\n\nmodule.exports = (parcelRequire(\"gJ6p0\"));\n\nmodule.exports.async = (parcelRequire(\"i9dxX\"));\n\nmodule.exports.stream = (parcelRequire(\"iDBjn\"));\n\nmodule.exports.prettyError = (parcelRequire(\"Prvkg\"));\n\n});\nparcelRegister(\"gJ6p0\", function(module, exports) {\n\"use strict\";\nmodule.exports = $c2d5d0b33e523299$var$parseString;\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\n\nvar $Prvkg = parcelRequire(\"Prvkg\");\nfunction $c2d5d0b33e523299$var$parseString(str) {\n if ($parcel$global.Buffer && $parcel$global.Buffer.isBuffer(str)) str = str.toString(\"utf8\");\n const parser = new $5DS0I();\n try {\n parser.parse(str);\n return parser.finish();\n } catch (err) {\n throw $Prvkg(err, str);\n }\n}\n\n});\nparcelRegister(\"5DS0I\", function(module, exports) {\n\"use strict\";\n\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ module.exports = makeParserClass((parcelRequire(\"aocLw\")));\nmodule.exports.makeParserClass = makeParserClass;\nclass TomlError extends Error {\n constructor(msg){\n super(msg);\n this.name = \"TomlError\";\n /* istanbul ignore next */ if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError);\n this.fromTOML = true;\n this.wrapped = null;\n }\n}\nTomlError.wrap = (err)=>{\n const terr = new TomlError(err.message);\n terr.code = err.code;\n terr.wrapped = err;\n return terr;\n};\nmodule.exports.TomlError = TomlError;\n\nvar $8CCFi = parcelRequire(\"8CCFi\");\n\nvar $5kLdF = parcelRequire(\"5kLdF\");\n\nvar $7EgKF = parcelRequire(\"7EgKF\");\n\nvar $9WIdb = parcelRequire(\"9WIdb\");\nconst CTRL_I = 0x09;\nconst CTRL_J = 0x0A;\nconst CTRL_M = 0x0D;\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\n;\nconst CHAR_SP = 0x20;\nconst CHAR_QUOT = 0x22;\nconst CHAR_NUM = 0x23;\nconst CHAR_APOS = 0x27;\nconst CHAR_PLUS = 0x2B;\nconst CHAR_COMMA = 0x2C;\nconst CHAR_HYPHEN = 0x2D;\nconst CHAR_PERIOD = 0x2E;\nconst CHAR_0 = 0x30;\nconst CHAR_1 = 0x31;\nconst CHAR_7 = 0x37;\nconst CHAR_9 = 0x39;\nconst CHAR_COLON = 0x3A;\nconst CHAR_EQUALS = 0x3D;\nconst CHAR_A = 0x41;\nconst CHAR_E = 0x45;\nconst CHAR_F = 0x46;\nconst CHAR_T = 0x54;\nconst CHAR_U = 0x55;\nconst CHAR_Z = 0x5A;\nconst CHAR_LOWBAR = 0x5F;\nconst CHAR_a = 0x61;\nconst CHAR_b = 0x62;\nconst CHAR_e = 0x65;\nconst CHAR_f = 0x66;\nconst CHAR_i = 0x69;\nconst CHAR_l = 0x6C;\nconst CHAR_n = 0x6E;\nconst CHAR_o = 0x6F;\nconst CHAR_r = 0x72;\nconst CHAR_s = 0x73;\nconst CHAR_t = 0x74;\nconst CHAR_u = 0x75;\nconst CHAR_x = 0x78;\nconst CHAR_z = 0x7A;\nconst CHAR_LCUB = 0x7B;\nconst CHAR_RCUB = 0x7D;\nconst CHAR_LSQB = 0x5B;\nconst CHAR_BSOL = 0x5C;\nconst CHAR_RSQB = 0x5D;\nconst CHAR_DEL = 0x7F;\nconst SURROGATE_FIRST = 0xD800;\nconst SURROGATE_LAST = 0xDFFF;\nconst escapes = {\n [CHAR_b]: \"\\b\",\n [CHAR_t]: \"\t\",\n [CHAR_n]: \"\\n\",\n [CHAR_f]: \"\\f\",\n [CHAR_r]: \"\\r\",\n [CHAR_QUOT]: '\"',\n [CHAR_BSOL]: \"\\\\\"\n};\nfunction isDigit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isHexit(cp) {\n return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isBit(cp) {\n return cp === CHAR_1 || cp === CHAR_0;\n}\nfunction isOctit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_7;\n}\nfunction isAlphaNumQuoteHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nfunction isAlphaNumHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nconst _type = Symbol(\"type\");\nconst _declared = Symbol(\"declared\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defineProperty = Object.defineProperty;\nconst descriptor = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: undefined\n};\nfunction hasKey(obj, key) {\n if (hasOwnProperty.call(obj, key)) return true;\n if (key === \"__proto__\") defineProperty(obj, \"__proto__\", descriptor);\n return false;\n}\nconst INLINE_TABLE = Symbol(\"inline-table\");\nfunction InlineTable() {\n return Object.defineProperties({}, {\n [_type]: {\n value: INLINE_TABLE\n }\n });\n}\nfunction isInlineTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_TABLE;\n}\nconst TABLE = Symbol(\"table\");\nfunction Table() {\n return Object.defineProperties({}, {\n [_type]: {\n value: TABLE\n },\n [_declared]: {\n value: false,\n writable: true\n }\n });\n}\nfunction isTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === TABLE;\n}\nconst _contentType = Symbol(\"content-type\");\nconst INLINE_LIST = Symbol(\"inline-list\");\nfunction InlineList(type) {\n return Object.defineProperties([], {\n [_type]: {\n value: INLINE_LIST\n },\n [_contentType]: {\n value: type\n }\n });\n}\nfunction isInlineList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_LIST;\n}\nconst LIST = Symbol(\"list\");\nfunction List() {\n return Object.defineProperties([], {\n [_type]: {\n value: LIST\n }\n });\n}\nfunction isList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === LIST;\n}\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom;\ntry {\n const utilInspect = eval(\"require('util').inspect\");\n _custom = utilInspect.custom;\n} catch (_) {\n/* eval require not available in transpiled bundle */ }\n/* istanbul ignore next */ const _inspect = _custom || \"inspect\";\nclass BoxedBigInt {\n constructor(value){\n try {\n this.value = $parcel$global.BigInt.asIntN(64, value);\n } catch (_) {\n /* istanbul ignore next */ this.value = null;\n }\n Object.defineProperty(this, _type, {\n value: INTEGER\n });\n }\n isNaN() {\n return this.value === null;\n }\n /* istanbul ignore next */ toString() {\n return String(this.value);\n }\n /* istanbul ignore next */ [_inspect]() {\n return `[BigInt: ${this.toString()}]}`;\n }\n valueOf() {\n return this.value;\n }\n}\nconst INTEGER = Symbol(\"integer\");\nfunction Integer(value) {\n let num = Number(value);\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0;\n /* istanbul ignore else */ if ($parcel$global.BigInt && !Number.isSafeInteger(num)) return new BoxedBigInt(value);\n else /* istanbul ignore next */ return Object.defineProperties(new Number(num), {\n isNaN: {\n value: function() {\n return isNaN(this);\n }\n },\n [_type]: {\n value: INTEGER\n },\n [_inspect]: {\n value: ()=>`[Integer: ${value}]`\n }\n });\n}\nfunction isInteger(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INTEGER;\n}\nconst FLOAT = Symbol(\"float\");\nfunction Float(value) {\n /* istanbul ignore next */ return Object.defineProperties(new Number(value), {\n [_type]: {\n value: FLOAT\n },\n [_inspect]: {\n value: ()=>`[Float: ${value}]`\n }\n });\n}\nfunction isFloat(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === FLOAT;\n}\nfunction tomlType(value) {\n const type = typeof value;\n if (type === \"object\") {\n /* istanbul ignore if */ if (value === null) return \"null\";\n if (value instanceof Date) return \"datetime\";\n /* istanbul ignore else */ if (_type in value) switch(value[_type]){\n case INLINE_TABLE:\n return \"inline-table\";\n case INLINE_LIST:\n return \"inline-list\";\n /* istanbul ignore next */ case TABLE:\n return \"table\";\n /* istanbul ignore next */ case LIST:\n return \"list\";\n case FLOAT:\n return \"float\";\n case INTEGER:\n return \"integer\";\n }\n }\n return type;\n}\nfunction makeParserClass(Parser) {\n class TOMLParser extends Parser {\n constructor(){\n super();\n this.ctx = this.obj = Table();\n }\n /* MATCH HELPER */ atEndOfWord() {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine();\n }\n atEndOfLine() {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M;\n }\n parseStart() {\n if (this.char === Parser.END) return null;\n else if (this.char === CHAR_LSQB) return this.call(this.parseTableOrList);\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (isAlphaNumQuoteHyphen(this.char)) return this.callNow(this.parseAssignStatement);\n else throw this.error(new TomlError(`Unknown character \"${this.char}\"`));\n }\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (this.char === CHAR_NUM) return this.goto(this.parseComment);\n else if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n else throw this.error(new TomlError(\"Unexpected character, expected only whitespace or comments till end of line\"));\n }\n /* ASSIGNMENT: key = value */ parseAssignStatement() {\n return this.callNow(this.parseAssign, this.recordAssignStatement);\n }\n recordAssignStatement(kv) {\n let target = this.ctx;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseWhitespaceToEOL);\n }\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */ parseAssign() {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n recordAssignKeyword(key) {\n if (this.state.resultTable) this.state.resultTable.push(key);\n else this.state.resultTable = [\n key\n ];\n return this.goto(this.parseAssignKeywordPreDot);\n }\n parseAssignKeywordPreDot() {\n if (this.char === CHAR_PERIOD) return this.next(this.parseAssignKeywordPostDot);\n else if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.goto(this.parseAssignEqual);\n }\n parseAssignKeywordPostDot() {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n parseAssignEqual() {\n if (this.char === CHAR_EQUALS) return this.next(this.parseAssignPreValue);\n else throw this.error(new TomlError('Invalid character, expected \"=\"'));\n }\n parseAssignPreValue() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseValue, this.recordAssignValue);\n }\n recordAssignValue(value) {\n return this.returnNow({\n key: this.state.resultTable,\n value: value\n });\n }\n /* COMMENTS: #...eol */ parseComment() {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n }while (this.nextChar());\n }\n /* TABLES AND LISTS, [foo] and [[foo]] */ parseTableOrList() {\n if (this.char === CHAR_LSQB) this.next(this.parseList);\n else return this.goto(this.parseTable);\n }\n /* TABLE [foo.bar.baz] */ parseTable() {\n this.ctx = this.obj;\n return this.goto(this.parseTableNext);\n }\n parseTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseTableMore);\n }\n parseTableMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table();\n this.ctx[_declared] = true;\n }\n return this.next(this.parseWhitespaceToEOL);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else throw this.error(new TomlError(\"Can't redefine existing key\"));\n return this.next(this.parseTableNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* LIST [[a.b.c]] */ parseList() {\n this.ctx = this.obj;\n return this.goto(this.parseListNext);\n }\n parseListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseListMore);\n }\n parseListMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) this.ctx[keyword] = List();\n if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isList(this.ctx[keyword])) {\n const next = Table();\n this.ctx[keyword].push(next);\n this.ctx = next;\n } else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListEnd);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isInlineTable(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline table\"));\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n parseListEnd(keyword) {\n if (this.char === CHAR_RSQB) return this.next(this.parseWhitespaceToEOL);\n else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* VALUE string, number, boolean, inline list, inline object */ parseValue() {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key without value\"));\n else if (this.char === CHAR_QUOT) return this.next(this.parseDoubleString);\n if (this.char === CHAR_APOS) return this.next(this.parseSingleString);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) return this.goto(this.parseNumberSign);\n else if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else if (isDigit(this.char)) return this.goto(this.parseNumberOrDateTime);\n else if (this.char === CHAR_t || this.char === CHAR_f) return this.goto(this.parseBoolean);\n else if (this.char === CHAR_LSQB) return this.call(this.parseInlineList, this.recordValue);\n else if (this.char === CHAR_LCUB) return this.call(this.parseInlineTable, this.recordValue);\n else throw this.error(new TomlError(\"Unexpected character, expecting string, number, datetime, boolean, inline array or inline table\"));\n }\n recordValue(value) {\n return this.returnNow(value);\n }\n parseInf() {\n if (this.char === CHAR_n) return this.next(this.parseInf2);\n else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseInf2() {\n if (this.char === CHAR_f) {\n if (this.state.buf === \"-\") return this.return(-Infinity);\n else return this.return(Infinity);\n } else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseNan() {\n if (this.char === CHAR_a) return this.next(this.parseNan2);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n parseNan2() {\n if (this.char === CHAR_n) return this.return(NaN);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n /* KEYS, barewords or basic, literal, or dotted */ parseKeyword() {\n if (this.char === CHAR_QUOT) return this.next(this.parseBasicString);\n else if (this.char === CHAR_APOS) return this.next(this.parseLiteralString);\n else return this.goto(this.parseBareKey);\n }\n /* KEYS: barewords */ parseBareKey() {\n do {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key ended without value\"));\n else if (isAlphaNumHyphen(this.char)) this.consume();\n else if (this.state.buf.length === 0) throw this.error(new TomlError(\"Empty bare keys are not allowed\"));\n else return this.returnNow();\n }while (this.nextChar());\n }\n /* STRINGS, single quoted (literal) */ parseSingleString() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiStringMaybe);\n else return this.goto(this.parseLiteralString);\n }\n parseLiteralString() {\n do {\n if (this.char === CHAR_APOS) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiStringMaybe() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiString);\n else return this.returnNow();\n }\n parseLiteralMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseLiteralMultiStringContent);\n else return this.goto(this.parseLiteralMultiStringContent);\n }\n parseLiteralMultiStringContent() {\n do {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiEnd() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd2);\n else {\n this.state.buf += \"'\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n parseLiteralMultiEnd2() {\n if (this.char === CHAR_APOS) return this.return();\n else {\n this.state.buf += \"''\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n /* STRINGS double quoted */ parseDoubleString() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiStringMaybe);\n else return this.goto(this.parseBasicString);\n }\n parseBasicString() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseEscape, this.recordEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n recordEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseBasicString);\n }\n parseMultiStringMaybe() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiString);\n else return this.returnNow();\n }\n parseMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseMultiStringContent);\n else return this.goto(this.parseMultiStringContent);\n }\n parseMultiStringContent() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n errorControlCharInString() {\n let displayCode = \"\\\\u00\";\n if (this.char < 16) displayCode += \"0\";\n displayCode += this.char.toString(16);\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`));\n }\n recordMultiEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseMultiStringContent);\n }\n parseMultiEnd() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd2);\n else {\n this.state.buf += '\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEnd2() {\n if (this.char === CHAR_QUOT) return this.return();\n else {\n this.state.buf += '\"\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEscape() {\n if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else if (this.char === CHAR_SP || this.char === CTRL_I) return this.next(this.parsePreMultiTrim);\n else return this.goto(this.parseEscape);\n }\n parsePreMultiTrim() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else throw this.error(new TomlError(\"Can't escape whitespace\"));\n }\n parseMultiTrim() {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else return this.returnNow();\n }\n parseEscape() {\n if (this.char in escapes) return this.return(escapes[this.char]);\n else if (this.char === CHAR_u) return this.call(this.parseSmallUnicode, this.parseUnicodeReturn);\n else if (this.char === CHAR_U) return this.call(this.parseLargeUnicode, this.parseUnicodeReturn);\n else throw this.error(new TomlError(\"Unknown escape character: \" + this.char));\n }\n parseUnicodeReturn(char) {\n try {\n const codePoint = parseInt(char, 16);\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) throw this.error(new TomlError(\"Invalid unicode, character in range 0xD800 - 0xDFFF is reserved\"));\n return this.returnNow(String.fromCodePoint(codePoint));\n } catch (err) {\n throw this.error(TomlError.wrap(err));\n }\n }\n parseSmallUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 4) return this.return();\n }\n }\n parseLargeUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 8) return this.return();\n }\n }\n /* NUMBERS */ parseNumberSign() {\n this.consume();\n return this.next(this.parseMaybeSignedInfOrNan);\n }\n parseMaybeSignedInfOrNan() {\n if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart);\n }\n parseNumberIntegerStart() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberIntegerExponentOrDecimal);\n } else return this.goto(this.parseNumberInteger);\n }\n parseNumberIntegerExponentOrDecimal() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Integer(this.state.buf));\n }\n parseNumberInteger() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseNoUnder() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNoUnderHexOctBinLiteral() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNumberFloat() {\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberFloat);\n else if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Float(this.state.buf));\n }\n parseNumberExponentSign() {\n if (isDigit(this.char)) return this.goto(this.parseNumberExponent);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.call(this.parseNoUnder, this.parseNumberExponent);\n } else throw this.error(new TomlError(\"Unexpected character, expected -, + or digit\"));\n }\n parseNumberExponent() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else return this.returnNow(Float(this.state.buf));\n }\n /* NUMBERS or DATETIMES */ parseNumberOrDateTime() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberBaseOrDateTime);\n } else return this.goto(this.parseNumberOrDateTimeOnly);\n }\n parseNumberOrDateTimeOnly() {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberInteger);\n else if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseDateTimeOnly() {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) return this.consume();\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else throw this.error(new TomlError(\"Expected digit while parsing year part of a date\"));\n } else {\n if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else throw this.error(new TomlError(\"Expected hyphen (-) while parsing year part of date\"));\n }\n }\n parseNumberBaseOrDateTime() {\n if (this.char === CHAR_b) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin);\n } else if (this.char === CHAR_o) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct);\n } else if (this.char === CHAR_x) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex);\n } else if (this.char === CHAR_PERIOD) return this.goto(this.parseNumberInteger);\n else if (isDigit(this.char)) return this.goto(this.parseDateTimeOnly);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseIntegerHex() {\n if (isHexit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerOct() {\n if (isOctit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerBin() {\n if (isBit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n /* DATETIME */ parseDateTime() {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) throw this.error(new TomlError(\"Years less than 1000 must be zero padded to four characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateMonth);\n }\n parseDateMonth() {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Months less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateDay);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseDateDay() {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Days less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseStartTimeHour);\n } else if (this.atEndOfWord()) return this.returnNow($7EgKF(this.state.result + \"-\" + this.state.buf));\n else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseStartTimeHour() {\n if (this.atEndOfWord()) return this.returnNow($7EgKF(this.state.result));\n else return this.goto(this.parseTimeHour);\n }\n parseTimeHour() {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result += \"T\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeMin);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeSec);\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeZoneOrFraction);\n }\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseOnlyTimeHour() {\n /* istanbul ignore else */ if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeMin);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeSec);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) return this.next(this.parseOnlyTimeFractionMaybe);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeFractionMaybe() {\n this.state.result += \":\" + this.state.buf;\n if (this.char === CHAR_PERIOD) {\n this.state.buf = \"\";\n this.next(this.parseOnlyTimeFraction);\n } else return this.return($9WIdb(this.state.result));\n }\n parseOnlyTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n return this.returnNow($9WIdb(this.state.result + \".\" + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneOrFraction() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n this.next(this.parseDateTimeFraction);\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($8CCFi(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($5kLdF(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseDateTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 1) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($8CCFi(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($5kLdF(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneHour() {\n if (isDigit(this.char)) {\n this.consume();\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n parseTimeZoneSep() {\n if (this.char === CHAR_COLON) {\n this.consume();\n this.next(this.parseTimeZoneMin);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected colon\"));\n }\n parseTimeZoneMin() {\n if (isDigit(this.char)) {\n this.consume();\n if (/\\d\\d$/.test(this.state.buf)) return this.return($8CCFi(this.state.result + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n /* BOOLEAN */ parseBoolean() {\n /* istanbul ignore else */ if (this.char === CHAR_t) {\n this.consume();\n return this.next(this.parseTrue_r);\n } else if (this.char === CHAR_f) {\n this.consume();\n return this.next(this.parseFalse_a);\n }\n }\n parseTrue_r() {\n if (this.char === CHAR_r) {\n this.consume();\n return this.next(this.parseTrue_u);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_u() {\n if (this.char === CHAR_u) {\n this.consume();\n return this.next(this.parseTrue_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_e() {\n if (this.char === CHAR_e) return this.return(true);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_a() {\n if (this.char === CHAR_a) {\n this.consume();\n return this.next(this.parseFalse_l);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_l() {\n if (this.char === CHAR_l) {\n this.consume();\n return this.next(this.parseFalse_s);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_s() {\n if (this.char === CHAR_s) {\n this.consume();\n return this.next(this.parseFalse_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_e() {\n if (this.char === CHAR_e) return this.return(false);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n /* INLINE LISTS */ parseInlineList() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_RSQB) return this.return(this.state.resultArr || InlineList());\n else return this.callNow(this.parseValue, this.recordInlineListValue);\n }\n recordInlineListValue(value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType];\n const valueType = tomlType(value);\n if (listType !== valueType) throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`));\n } else this.state.resultArr = InlineList(tomlType(value));\n if (isFloat(value) || isInteger(value)) // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf());\n else this.state.resultArr.push(value);\n return this.goto(this.parseInlineListNext);\n }\n parseInlineListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineList);\n else if (this.char === CHAR_RSQB) return this.goto(this.parseInlineList);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n /* INLINE TABLE */ parseInlineTable() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_RCUB) return this.return(this.state.resultTable || InlineTable());\n else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable();\n return this.callNow(this.parseAssign, this.recordInlineTableValue);\n }\n }\n recordInlineTableValue(kv) {\n let target = this.state.resultTable;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseInlineTableNext);\n }\n parseInlineTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineTable);\n else if (this.char === CHAR_RCUB) return this.goto(this.parseInlineTable);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n }\n return TOMLParser;\n}\n\n});\nparcelRegister(\"aocLw\", function(module, exports) {\n\"use strict\";\nconst $79060c36a8d77c51$var$ParserEND = 0x110000;\nclass $79060c36a8d77c51$var$ParserError extends Error {\n /* istanbul ignore next */ constructor(msg, filename, linenumber){\n super(\"[ParserError] \" + msg, filename, linenumber);\n this.name = \"ParserError\";\n this.code = \"ParserError\";\n if (Error.captureStackTrace) Error.captureStackTrace(this, $79060c36a8d77c51$var$ParserError);\n }\n}\nclass $79060c36a8d77c51$var$State {\n constructor(parser){\n this.parser = parser;\n this.buf = \"\";\n this.returned = null;\n this.result = null;\n this.resultTable = null;\n this.resultArr = null;\n }\n}\nclass $79060c36a8d77c51$var$Parser {\n constructor(){\n this.pos = 0;\n this.col = 0;\n this.line = 0;\n this.obj = {};\n this.ctx = this.obj;\n this.stack = [];\n this._buf = \"\";\n this.char = null;\n this.ii = 0;\n this.state = new $79060c36a8d77c51$var$State(this.parseStart);\n }\n parse(str) {\n /* istanbul ignore next */ if (str.length === 0 || str.length == null) return;\n this._buf = String(str);\n this.ii = -1;\n this.char = -1;\n let getNext;\n while(getNext === false || this.nextChar())getNext = this.runOne();\n this._buf = null;\n }\n nextChar() {\n if (this.char === 0x0A) {\n ++this.line;\n this.col = -1;\n }\n ++this.ii;\n this.char = this._buf.codePointAt(this.ii);\n ++this.pos;\n ++this.col;\n return this.haveBuffer();\n }\n haveBuffer() {\n return this.ii < this._buf.length;\n }\n runOne() {\n return this.state.parser.call(this, this.state.returned);\n }\n finish() {\n this.char = $79060c36a8d77c51$var$ParserEND;\n let last;\n do {\n last = this.state.parser;\n this.runOne();\n }while (this.state.parser !== last);\n this.ctx = null;\n this.state = null;\n this._buf = null;\n return this.obj;\n }\n next(fn) {\n /* istanbul ignore next */ if (typeof fn !== \"function\") throw new $79060c36a8d77c51$var$ParserError(\"Tried to set state to non-existent state: \" + JSON.stringify(fn));\n this.state.parser = fn;\n }\n goto(fn) {\n this.next(fn);\n return this.runOne();\n }\n call(fn, returnWith) {\n if (returnWith) this.next(returnWith);\n this.stack.push(this.state);\n this.state = new $79060c36a8d77c51$var$State(fn);\n }\n callNow(fn, returnWith) {\n this.call(fn, returnWith);\n return this.runOne();\n }\n return(value) {\n /* istanbul ignore next */ if (this.stack.length === 0) throw this.error(new $79060c36a8d77c51$var$ParserError(\"Stack underflow\"));\n if (value === undefined) value = this.state.buf;\n this.state = this.stack.pop();\n this.state.returned = value;\n }\n returnNow(value) {\n this.return(value);\n return this.runOne();\n }\n consume() {\n /* istanbul ignore next */ if (this.char === $79060c36a8d77c51$var$ParserEND) throw this.error(new $79060c36a8d77c51$var$ParserError(\"Unexpected end-of-buffer\"));\n this.state.buf += this._buf[this.ii];\n }\n error(err) {\n err.line = this.line;\n err.col = this.col;\n err.pos = this.pos;\n return err;\n }\n /* istanbul ignore next */ parseStart() {\n throw new $79060c36a8d77c51$var$ParserError(\"Must declare a parseStart method\");\n }\n}\n$79060c36a8d77c51$var$Parser.END = $79060c36a8d77c51$var$ParserEND;\n$79060c36a8d77c51$var$Parser.Error = $79060c36a8d77c51$var$ParserError;\nmodule.exports = $79060c36a8d77c51$var$Parser;\n\n});\n\nparcelRegister(\"8CCFi\", function(module, exports) {\n\"use strict\";\nmodule.exports = (value)=>{\n const date = new Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"5kLdF\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nclass $3e2372c79680e78e$var$FloatingDateTime extends Date {\n constructor(value){\n super(value + \"Z\");\n this.isFloating = true;\n }\n toISOString() {\n const date = `${this.getUTCFullYear()}-${$d3FGN(2, this.getUTCMonth() + 1)}-${$d3FGN(2, this.getUTCDate())}`;\n const time = `${$d3FGN(2, this.getUTCHours())}:${$d3FGN(2, this.getUTCMinutes())}:${$d3FGN(2, this.getUTCSeconds())}.${$d3FGN(3, this.getUTCMilliseconds())}`;\n return `${date}T${time}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $3e2372c79680e78e$var$FloatingDateTime(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\nparcelRegister(\"d3FGN\", function(module, exports) {\n\"use strict\";\nmodule.exports = (d, num)=>{\n num = String(num);\n while(num.length < d)num = \"0\" + num;\n return num;\n};\n\n});\n\n\nparcelRegister(\"7EgKF\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nconst $5919435c8d2b17e6$var$DateTime = $parcel$global.Date;\nclass $5919435c8d2b17e6$var$Date extends $5919435c8d2b17e6$var$DateTime {\n constructor(value){\n super(value);\n this.isDate = true;\n }\n toISOString() {\n return `${this.getUTCFullYear()}-${$d3FGN(2, this.getUTCMonth() + 1)}-${$d3FGN(2, this.getUTCDate())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $5919435c8d2b17e6$var$Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"9WIdb\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nclass $73dbd35bda5c16c1$var$Time extends Date {\n constructor(value){\n super(`0000-01-01T${value}Z`);\n this.isTime = true;\n }\n toISOString() {\n return `${$d3FGN(2, this.getUTCHours())}:${$d3FGN(2, this.getUTCMinutes())}:${$d3FGN(2, this.getUTCSeconds())}.${$d3FGN(3, this.getUTCMilliseconds())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $73dbd35bda5c16c1$var$Time(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\n\nparcelRegister(\"Prvkg\", function(module, exports) {\n\"use strict\";\nmodule.exports = $09aa194e99c5dc97$var$prettyError;\nfunction $09aa194e99c5dc97$var$prettyError(err, buf) {\n /* istanbul ignore if */ if (err.pos == null || err.line == null) return err;\n let msg = err.message;\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`;\n /* istanbul ignore else */ if (buf && buf.split) {\n const lines = buf.split(/\\n/);\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length;\n let linePadding = \" \";\n while(linePadding.length < lineNumWidth)linePadding += \" \";\n for(let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii){\n let lineNum = String(ii + 1);\n if (lineNum.length < lineNumWidth) lineNum = \" \" + lineNum;\n if (err.line === ii) {\n msg += lineNum + \"> \" + lines[ii] + \"\\n\";\n msg += linePadding + \" \";\n for(let hh = 0; hh < err.col; ++hh)msg += \" \";\n msg += \"^\\n\";\n } else msg += lineNum + \": \" + lines[ii] + \"\\n\";\n }\n }\n err.message = msg + \"\\n\";\n return err;\n}\n\n});\n\n\nparcelRegister(\"i9dxX\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d363935a68bc1532$var$parseAsync;\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\n\nvar $Prvkg = parcelRequire(\"Prvkg\");\nfunction $d363935a68bc1532$var$parseAsync(str, opts) {\n if (!opts) opts = {};\n const index = 0;\n const blocksize = opts.blocksize || 40960;\n const parser = new $5DS0I();\n return new Promise((resolve, reject)=>{\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject);\n });\n function parseAsyncNext(index, blocksize, resolve, reject) {\n if (index >= str.length) try {\n return resolve(parser.finish());\n } catch (err) {\n return reject($Prvkg(err, str));\n }\n try {\n parser.parse(str.slice(index, index + blocksize));\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject);\n } catch (err) {\n reject($Prvkg(err, str));\n }\n }\n}\n\n});\n\nparcelRegister(\"iDBjn\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d918cfcfdd82ba27$var$parseStream;\n\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\nfunction $d918cfcfdd82ba27$var$parseStream(stm) {\n if (stm) return $d918cfcfdd82ba27$var$parseReadable(stm);\n else return $d918cfcfdd82ba27$var$parseTransform(stm);\n}\nfunction $d918cfcfdd82ba27$var$parseReadable(stm) {\n const parser = new $5DS0I();\n stm.setEncoding(\"utf8\");\n return new Promise((resolve, reject)=>{\n let readable;\n let ended = false;\n let errored = false;\n function finish() {\n ended = true;\n if (readable) return;\n try {\n resolve(parser.finish());\n } catch (err) {\n reject(err);\n }\n }\n function error(err) {\n errored = true;\n reject(err);\n }\n stm.once(\"end\", finish);\n stm.once(\"error\", error);\n readNext();\n function readNext() {\n readable = true;\n let data;\n while((data = stm.read()) !== null)try {\n parser.parse(data);\n } catch (err) {\n return error(err);\n }\n readable = false;\n /* istanbul ignore if */ if (ended) return finish();\n /* istanbul ignore if */ if (errored) return;\n stm.once(\"readable\", readNext);\n }\n });\n}\nfunction $d918cfcfdd82ba27$var$parseTransform() {\n const parser = new $5DS0I();\n return new $e2xck$stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding));\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n },\n flush (cb) {\n try {\n this.push(parser.finish());\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n }\n });\n}\n\n});\n\n\nparcelRegister(\"ZjZv7\", function(module, exports) {\n\"use strict\";\nmodule.exports = $0b853467f53125f6$var$stringify;\nmodule.exports.value = $0b853467f53125f6$var$stringifyInline;\nfunction $0b853467f53125f6$var$stringify(obj) {\n if (obj === null) throw $0b853467f53125f6$var$typeError(\"null\");\n if (obj === void 0) throw $0b853467f53125f6$var$typeError(\"undefined\");\n if (typeof obj !== \"object\") throw $0b853467f53125f6$var$typeError(typeof obj);\n if (typeof obj.toJSON === \"function\") obj = obj.toJSON();\n if (obj == null) return null;\n const type = $0b853467f53125f6$var$tomlType(obj);\n if (type !== \"table\") throw $0b853467f53125f6$var$typeError(type);\n return $0b853467f53125f6$var$stringifyObject(\"\", \"\", obj);\n}\nfunction $0b853467f53125f6$var$typeError(type) {\n return new Error(\"Can only stringify objects, not \" + type);\n}\nfunction $0b853467f53125f6$var$arrayOneTypeError() {\n return new Error(\"Array values can't have mixed types\");\n}\nfunction $0b853467f53125f6$var$getInlineKeys(obj) {\n return Object.keys(obj).filter((key)=>$0b853467f53125f6$var$isInline(obj[key]));\n}\nfunction $0b853467f53125f6$var$getComplexKeys(obj) {\n return Object.keys(obj).filter((key)=>!$0b853467f53125f6$var$isInline(obj[key]));\n}\nfunction $0b853467f53125f6$var$toJSON(obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, \"__proto__\") ? {\n [\"__proto__\"]: undefined\n } : {};\n for (let prop of Object.keys(obj))if (obj[prop] && typeof obj[prop].toJSON === \"function\" && !(\"toISOString\" in obj[prop])) nobj[prop] = obj[prop].toJSON();\n else nobj[prop] = obj[prop];\n return nobj;\n}\nfunction $0b853467f53125f6$var$stringifyObject(prefix, indent, obj) {\n obj = $0b853467f53125f6$var$toJSON(obj);\n var inlineKeys;\n var complexKeys;\n inlineKeys = $0b853467f53125f6$var$getInlineKeys(obj);\n complexKeys = $0b853467f53125f6$var$getComplexKeys(obj);\n var result = [];\n var inlineIndent = indent || \"\";\n inlineKeys.forEach((key)=>{\n var type = $0b853467f53125f6$var$tomlType(obj[key]);\n if (type !== \"undefined\" && type !== \"null\") result.push(inlineIndent + $0b853467f53125f6$var$stringifyKey(key) + \" = \" + $0b853467f53125f6$var$stringifyAnyInline(obj[key], true));\n });\n if (result.length > 0) result.push(\"\");\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + \" \" : \"\";\n complexKeys.forEach((key)=>{\n result.push($0b853467f53125f6$var$stringifyComplex(prefix, complexIndent, key, obj[key]));\n });\n return result.join(\"\\n\");\n}\nfunction $0b853467f53125f6$var$isInline(value) {\n switch($0b853467f53125f6$var$tomlType(value)){\n case \"undefined\":\n case \"null\":\n case \"integer\":\n case \"nan\":\n case \"float\":\n case \"boolean\":\n case \"string\":\n case \"datetime\":\n return true;\n case \"array\":\n return value.length === 0 || $0b853467f53125f6$var$tomlType(value[0]) !== \"table\";\n case \"table\":\n return Object.keys(value).length === 0;\n /* istanbul ignore next */ default:\n return false;\n }\n}\nfunction $0b853467f53125f6$var$tomlType(value) {\n if (value === undefined) return \"undefined\";\n else if (value === null) return \"null\";\n else if (typeof value === \"bigint\" || Number.isInteger(value) && !Object.is(value, -0)) return \"integer\";\n else if (typeof value === \"number\") return \"float\";\n else if (typeof value === \"boolean\") return \"boolean\";\n else if (typeof value === \"string\") return \"string\";\n else if (\"toISOString\" in value) return isNaN(value) ? \"undefined\" : \"datetime\";\n else if (Array.isArray(value)) return \"array\";\n else return \"table\";\n}\nfunction $0b853467f53125f6$var$stringifyKey(key) {\n var keyStr = String(key);\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) return keyStr;\n else return $0b853467f53125f6$var$stringifyBasicString(keyStr);\n}\nfunction $0b853467f53125f6$var$stringifyBasicString(str) {\n return '\"' + $0b853467f53125f6$var$escapeString(str).replace(/\"/g, '\\\\\"') + '\"';\n}\nfunction $0b853467f53125f6$var$stringifyLiteralString(str) {\n return \"'\" + str + \"'\";\n}\nfunction $0b853467f53125f6$var$numpad(num, str) {\n while(str.length < num)str = \"0\" + str;\n return str;\n}\nfunction $0b853467f53125f6$var$escapeString(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/[\\b]/g, \"\\\\b\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\f/g, \"\\\\f\").replace(/\\r/g, \"\\\\r\")/* eslint-disable no-control-regex */ .replace(/([\\u0000-\\u001f\\u007f])/, (c)=>\"\\\\u\" + $0b853467f53125f6$var$numpad(4, c.codePointAt(0).toString(16)));\n/* eslint-enable no-control-regex */ }\nfunction $0b853467f53125f6$var$stringifyMultilineString(str) {\n let escaped = str.split(/\\n/).map((str)=>{\n return $0b853467f53125f6$var$escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"');\n }).join(\"\\n\");\n if (escaped.slice(-1) === '\"') escaped += \"\\\\\\n\";\n return '\"\"\"\\n' + escaped + '\"\"\"';\n}\nfunction $0b853467f53125f6$var$stringifyAnyInline(value, multilineOk) {\n let type = $0b853467f53125f6$var$tomlType(value);\n if (type === \"string\") {\n if (multilineOk && /\\n/.test(value)) type = \"string-multiline\";\n else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) type = \"string-literal\";\n }\n return $0b853467f53125f6$var$stringifyInline(value, type);\n}\nfunction $0b853467f53125f6$var$stringifyInline(value, type) {\n /* istanbul ignore if */ if (!type) type = $0b853467f53125f6$var$tomlType(value);\n switch(type){\n case \"string-multiline\":\n return $0b853467f53125f6$var$stringifyMultilineString(value);\n case \"string\":\n return $0b853467f53125f6$var$stringifyBasicString(value);\n case \"string-literal\":\n return $0b853467f53125f6$var$stringifyLiteralString(value);\n case \"integer\":\n return $0b853467f53125f6$var$stringifyInteger(value);\n case \"float\":\n return $0b853467f53125f6$var$stringifyFloat(value);\n case \"boolean\":\n return $0b853467f53125f6$var$stringifyBoolean(value);\n case \"datetime\":\n return $0b853467f53125f6$var$stringifyDatetime(value);\n case \"array\":\n return $0b853467f53125f6$var$stringifyInlineArray(value.filter((_)=>$0b853467f53125f6$var$tomlType(_) !== \"null\" && $0b853467f53125f6$var$tomlType(_) !== \"undefined\" && $0b853467f53125f6$var$tomlType(_) !== \"nan\"));\n case \"table\":\n return $0b853467f53125f6$var$stringifyInlineTable(value);\n /* istanbul ignore next */ default:\n throw $0b853467f53125f6$var$typeError(type);\n }\n}\nfunction $0b853467f53125f6$var$stringifyInteger(value) {\n /* eslint-disable security/detect-unsafe-regex */ return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"_\");\n}\nfunction $0b853467f53125f6$var$stringifyFloat(value) {\n if (value === Infinity) return \"inf\";\n else if (value === -Infinity) return \"-inf\";\n else if (Object.is(value, NaN)) return \"nan\";\n else if (Object.is(value, -0)) return \"-0.0\";\n var chunks = String(value).split(\".\");\n var int = chunks[0];\n var dec = chunks[1] || 0;\n return $0b853467f53125f6$var$stringifyInteger(int) + \".\" + dec;\n}\nfunction $0b853467f53125f6$var$stringifyBoolean(value) {\n return String(value);\n}\nfunction $0b853467f53125f6$var$stringifyDatetime(value) {\n return value.toISOString();\n}\nfunction $0b853467f53125f6$var$isNumber(type) {\n return type === \"float\" || type === \"integer\";\n}\nfunction $0b853467f53125f6$var$arrayType(values) {\n var contentType = $0b853467f53125f6$var$tomlType(values[0]);\n if (values.every((_)=>$0b853467f53125f6$var$tomlType(_) === contentType)) return contentType;\n // mixed integer/float, emit as floats\n if (values.every((_)=>$0b853467f53125f6$var$isNumber($0b853467f53125f6$var$tomlType(_)))) return \"float\";\n return \"mixed\";\n}\nfunction $0b853467f53125f6$var$validateArray(values) {\n const type = $0b853467f53125f6$var$arrayType(values);\n if (type === \"mixed\") throw $0b853467f53125f6$var$arrayOneTypeError();\n return type;\n}\nfunction $0b853467f53125f6$var$stringifyInlineArray(values) {\n values = $0b853467f53125f6$var$toJSON(values);\n const type = $0b853467f53125f6$var$validateArray(values);\n var result = \"[\";\n var stringified = values.map((_)=>$0b853467f53125f6$var$stringifyInline(_, type));\n if (stringified.join(\", \").length > 60 || /\\n/.test(stringified)) result += \"\\n \" + stringified.join(\",\\n \") + \"\\n\";\n else result += \" \" + stringified.join(\", \") + (stringified.length > 0 ? \" \" : \"\");\n return result + \"]\";\n}\nfunction $0b853467f53125f6$var$stringifyInlineTable(value) {\n value = $0b853467f53125f6$var$toJSON(value);\n var result = [];\n Object.keys(value).forEach((key)=>{\n result.push($0b853467f53125f6$var$stringifyKey(key) + \" = \" + $0b853467f53125f6$var$stringifyAnyInline(value[key], false));\n });\n return \"{ \" + result.join(\", \") + (result.length > 0 ? \" \" : \"\") + \"}\";\n}\nfunction $0b853467f53125f6$var$stringifyComplex(prefix, indent, key, value) {\n var valueType = $0b853467f53125f6$var$tomlType(value);\n /* istanbul ignore else */ if (valueType === \"array\") return $0b853467f53125f6$var$stringifyArrayOfTables(prefix, indent, key, value);\n else if (valueType === \"table\") return $0b853467f53125f6$var$stringifyComplexTable(prefix, indent, key, value);\n else throw $0b853467f53125f6$var$typeError(valueType);\n}\nfunction $0b853467f53125f6$var$stringifyArrayOfTables(prefix, indent, key, values) {\n values = $0b853467f53125f6$var$toJSON(values);\n $0b853467f53125f6$var$validateArray(values);\n var firstValueType = $0b853467f53125f6$var$tomlType(values[0]);\n /* istanbul ignore if */ if (firstValueType !== \"table\") throw $0b853467f53125f6$var$typeError(firstValueType);\n var fullKey = prefix + $0b853467f53125f6$var$stringifyKey(key);\n var result = \"\";\n values.forEach((table)=>{\n if (result.length > 0) result += \"\\n\";\n result += indent + \"[[\" + fullKey + \"]]\\n\";\n result += $0b853467f53125f6$var$stringifyObject(fullKey + \".\", indent, table);\n });\n return result;\n}\nfunction $0b853467f53125f6$var$stringifyComplexTable(prefix, indent, key, value) {\n var fullKey = prefix + $0b853467f53125f6$var$stringifyKey(key);\n var result = \"\";\n if ($0b853467f53125f6$var$getInlineKeys(value).length > 0) result += indent + \"[\" + fullKey + \"]\\n\";\n return result + $0b853467f53125f6$var$stringifyObject(fullKey + \".\", indent, value);\n}\n\n});\n\n\n\nparcelRegister(\"4rCDr\", function(module, exports) {\n\n$parcel$export(module.exports, \"MANIFEST_URL\", () => $5b7f8d1087c8a57f$export$f3182c5cb60bb857);\n$parcel$export(module.exports, \"findReleaseFromManifest\", () => $5b7f8d1087c8a57f$export$45bea79befbd9a23);\n$parcel$export(module.exports, \"getManifest\", () => $5b7f8d1087c8a57f$export$39e873de56f329d8);\n$parcel$export(module.exports, \"installCpythonFromRelease\", () => $5b7f8d1087c8a57f$export$e1ffa7cd53152881);\n\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\nconst $5b7f8d1087c8a57f$var$TOKEN = $lUL8q.getInput(\"token\");\nconst $5b7f8d1087c8a57f$var$AUTH = !$5b7f8d1087c8a57f$var$TOKEN ? undefined : `token ${$5b7f8d1087c8a57f$var$TOKEN}`;\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER = \"actions\";\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME = \"python-versions\";\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH = \"main\";\nconst $5b7f8d1087c8a57f$export$f3182c5cb60bb857 = `https://raw.githubusercontent.com/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH}/versions-manifest.json`;\nasync function $5b7f8d1087c8a57f$export$45bea79befbd9a23(semanticVersionSpec, architecture, manifest) {\n if (!manifest) manifest = await $5b7f8d1087c8a57f$export$39e873de56f329d8();\n const foundRelease = await $wMbNK.findFromManifest(semanticVersionSpec, false, manifest, architecture);\n return foundRelease;\n}\nfunction $5b7f8d1087c8a57f$export$39e873de56f329d8() {\n $lUL8q.debug(`Getting manifest from ${$5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME}@${$5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH}`);\n return $wMbNK.getManifestFromRepo($5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER, $5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME, $5b7f8d1087c8a57f$var$AUTH, $5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH);\n}\nasync function $5b7f8d1087c8a57f$var$installPython(workingDirectory) {\n const options = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(0, $c6Y2q.IS_LINUX) && {\n LD_LIBRARY_PATH: $e2xck$path.join(workingDirectory, \"lib\")\n }\n },\n silent: true,\n listeners: {\n stdout: (data)=>{\n $lUL8q.info(data.toString().trim());\n },\n stderr: (data)=>{\n $lUL8q.error(data.toString().trim());\n }\n }\n };\n if (0, $c6Y2q.IS_WINDOWS) await $ioM8U.exec(\"powershell\", [\n \"./setup.ps1\"\n ], options);\n else await $ioM8U.exec(\"bash\", [\n \"./setup.sh\"\n ], options);\n}\nasync function $5b7f8d1087c8a57f$export$e1ffa7cd53152881(release) {\n const downloadUrl = release.files[0].download_url;\n $lUL8q.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = \"\";\n try {\n pythonPath = await $wMbNK.downloadTool(downloadUrl, undefined, $5b7f8d1087c8a57f$var$AUTH);\n $lUL8q.info(\"Extract downloaded archive\");\n let pythonExtractedFolder;\n if (0, $c6Y2q.IS_WINDOWS) pythonExtractedFolder = await $wMbNK.extractZip(pythonPath);\n else pythonExtractedFolder = await $wMbNK.extractTar(pythonPath);\n $lUL8q.info(\"Execute installation script\");\n await $5b7f8d1087c8a57f$var$installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof $wMbNK.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) $lUL8q.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $lUL8q.info(err.message);\n if (err.stack) $lUL8q.debug(err.stack);\n }\n throw err;\n }\n}\n\n});\nparcelRegister(\"wMbNK\", function(module, exports) {\n\nvar $06285eac7a7bb2d2$var$$parcel$__dirname = $e2xck$path.resolve(__dirname, \"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib\");\n\"use strict\";\nvar $06285eac7a7bb2d2$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $06285eac7a7bb2d2$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $06285eac7a7bb2d2$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $06285eac7a7bb2d2$var$__createBinding(result, mod, k);\n }\n $06285eac7a7bb2d2$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $06285eac7a7bb2d2$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $06285eac7a7bb2d2$var$__importDefault = module.exports && module.exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.evaluateVersions = module.exports.isExplicitVersion = module.exports.findFromManifest = module.exports.getManifestFromRepo = module.exports.findAllVersions = module.exports.find = module.exports.cacheFile = module.exports.cacheDir = module.exports.extractZip = module.exports.extractXar = module.exports.extractTar = module.exports.extract7z = module.exports.downloadTool = module.exports.HTTPError = void 0;\n\nconst $06285eac7a7bb2d2$var$core = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"lUL8q\")));\n\nconst $06285eac7a7bb2d2$var$io = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"jGHPG\")));\n\nconst $06285eac7a7bb2d2$var$fs = $06285eac7a7bb2d2$var$__importStar($e2xck$fs);\n\nconst $06285eac7a7bb2d2$var$mm = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"8YqHc\")));\n\nconst $06285eac7a7bb2d2$var$os = $06285eac7a7bb2d2$var$__importStar($e2xck$os);\n\nconst $06285eac7a7bb2d2$var$path = $06285eac7a7bb2d2$var$__importStar($e2xck$path);\n\nconst $06285eac7a7bb2d2$var$httpm = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"i2yVI\")));\n\nconst $06285eac7a7bb2d2$var$semver = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"bD1rN\")));\n\nconst $06285eac7a7bb2d2$var$stream = $06285eac7a7bb2d2$var$__importStar($e2xck$stream);\n\nconst $06285eac7a7bb2d2$var$util = $06285eac7a7bb2d2$var$__importStar($e2xck$util);\n\nconst $06285eac7a7bb2d2$var$v4_1 = $06285eac7a7bb2d2$var$__importDefault((parcelRequire(\"lctVY\")));\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\n\nvar $elhkM = parcelRequire(\"elhkM\");\nclass $06285eac7a7bb2d2$var$HTTPError extends Error {\n constructor(httpStatusCode){\n super(`Unexpected HTTP response: ${httpStatusCode}`);\n this.httpStatusCode = httpStatusCode;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nmodule.exports.HTTPError = $06285eac7a7bb2d2$var$HTTPError;\nconst $06285eac7a7bb2d2$var$IS_WINDOWS = process.platform === \"win32\";\nconst $06285eac7a7bb2d2$var$IS_MAC = process.platform === \"darwin\";\nconst $06285eac7a7bb2d2$var$userAgent = \"actions/tool-cache\";\n/**\n * Download a tool from an url and stream it into a file\n *\n * @param url url of tool to download\n * @param dest path to download tool\n * @param auth authorization header\n * @param headers other headers\n * @returns path to downloaded tool\n */ function $06285eac7a7bb2d2$var$downloadTool(url, dest, auth, headers) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n dest = dest || $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getTempDirectory(), $06285eac7a7bb2d2$var$v4_1.default());\n yield $06285eac7a7bb2d2$var$io.mkdirP($06285eac7a7bb2d2$var$path.dirname(dest));\n $06285eac7a7bb2d2$var$core.debug(`Downloading ${url}`);\n $06285eac7a7bb2d2$var$core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS\", 10);\n const maxSeconds = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS\", 20);\n const retryHelper = new $elhkM.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(()=>$06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n return yield $06285eac7a7bb2d2$var$downloadToolAttempt(url, dest || \"\", auth, headers);\n }), (err)=>{\n if (err instanceof $06285eac7a7bb2d2$var$HTTPError && err.httpStatusCode) {\n // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests\n if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false;\n }\n // Otherwise retry\n return true;\n });\n });\n}\nmodule.exports.downloadTool = $06285eac7a7bb2d2$var$downloadTool;\nfunction $06285eac7a7bb2d2$var$downloadToolAttempt(url, dest, auth, headers) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if ($06285eac7a7bb2d2$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`);\n // Get the response headers\n const http = new $06285eac7a7bb2d2$var$httpm.HttpClient($06285eac7a7bb2d2$var$userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n $06285eac7a7bb2d2$var$core.debug(\"set auth\");\n if (headers === undefined) headers = {};\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new $06285eac7a7bb2d2$var$HTTPError(response.message.statusCode);\n $06285eac7a7bb2d2$var$core.debug(`Failed to download from \"${url}\". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);\n throw err;\n }\n // Download the response body\n const pipeline = $06285eac7a7bb2d2$var$util.promisify($06285eac7a7bb2d2$var$stream.pipeline);\n const responseMessageFactory = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY\", ()=>response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, $06285eac7a7bb2d2$var$fs.createWriteStream(dest));\n $06285eac7a7bb2d2$var$core.debug(\"download complete\");\n succeeded = true;\n return dest;\n } finally{\n // Error, delete dest before retry\n if (!succeeded) {\n $06285eac7a7bb2d2$var$core.debug(\"download failed\");\n try {\n yield $06285eac7a7bb2d2$var$io.rmRF(dest);\n } catch (err) {\n $06285eac7a7bb2d2$var$core.debug(`Failed to delete '${dest}'. ${err.message}`);\n }\n }\n }\n });\n}\n/**\n * Extract a .7z file\n *\n * @param file path to the .7z file\n * @param dest destination directory. Optional.\n * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this\n * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will\n * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is\n * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line\n * interface, it is smaller than the full command line interface, and it does support long paths. At the\n * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.\n * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path\n * to 7zr.exe can be pass to this function.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extract7z(file, dest, _7zPath) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n $e2xck$assert.ok($06285eac7a7bb2d2$var$IS_WINDOWS, \"extract7z() not supported on current OS\");\n $e2xck$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) try {\n const logLevel = $06285eac7a7bb2d2$var$core.isDebug() ? \"-bb1\" : \"-bb0\";\n const args = [\n \"x\",\n logLevel,\n \"-bd\",\n \"-sccUTF-8\",\n file\n ];\n const options = {\n silent: true\n };\n yield $ioM8U.exec(`\"${_7zPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n else {\n const escapedScript = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$$parcel$__dirname, \"..\", \"scripts\", \"Invoke-7zdec.ps1\").replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const escapedTarget = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n command\n ];\n const options = {\n silent: true\n };\n try {\n const powershellPath = yield $06285eac7a7bb2d2$var$io.which(\"powershell\", true);\n yield $ioM8U.exec(`\"${powershellPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nmodule.exports.extract7z = $06285eac7a7bb2d2$var$extract7z;\n/**\n * Extract a compressed tar archive\n *\n * @param file path to the tar\n * @param dest destination directory. Optional.\n * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractTar(file, dest, flags = \"xz\") {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n // Create dest\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n // Determine whether GNU tar\n $06285eac7a7bb2d2$var$core.debug(\"Checking tar --version\");\n let versionOutput = \"\";\n yield $ioM8U.exec(\"tar --version\", [], {\n ignoreReturnCode: true,\n silent: true,\n listeners: {\n stdout: (data)=>versionOutput += data.toString(),\n stderr: (data)=>versionOutput += data.toString()\n }\n });\n $06285eac7a7bb2d2$var$core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes(\"GNU TAR\");\n // Initialize args\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n if ($06285eac7a7bb2d2$var$core.isDebug() && !flags.includes(\"v\")) args.push(\"-v\");\n let destArg = dest;\n let fileArg = file;\n if ($06285eac7a7bb2d2$var$IS_WINDOWS && isGnuTar) {\n args.push(\"--force-local\");\n destArg = dest.replace(/\\\\/g, \"/\");\n // Technically only the dest needs to have `/` but for aesthetic consistency\n // convert slashes in the file arg too.\n fileArg = file.replace(/\\\\/g, \"/\");\n }\n if (isGnuTar) {\n // Suppress warnings when using GNU tar to extract archives created by BSD tar\n args.push(\"--warning=no-unknown-keyword\");\n args.push(\"--overwrite\");\n }\n args.push(\"-C\", destArg, \"-f\", fileArg);\n yield $ioM8U.exec(`tar`, args);\n return dest;\n });\n}\nmodule.exports.extractTar = $06285eac7a7bb2d2$var$extractTar;\n/**\n * Extract a xar compatible archive\n *\n * @param file path to the archive\n * @param dest destination directory. Optional.\n * @param flags flags for the xar. Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractXar(file, dest, flags = []) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n $e2xck$assert.ok($06285eac7a7bb2d2$var$IS_MAC, \"extractXar() not supported on current OS\");\n $e2xck$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n args.push(\"-x\", \"-C\", dest, \"-f\", file);\n if ($06285eac7a7bb2d2$var$core.isDebug()) args.push(\"-v\");\n const xarPath = yield $06285eac7a7bb2d2$var$io.which(\"xar\", true);\n yield $ioM8U.exec(`\"${xarPath}\"`, $06285eac7a7bb2d2$var$_unique(args));\n return dest;\n });\n}\nmodule.exports.extractXar = $06285eac7a7bb2d2$var$extractXar;\n/**\n * Extract a zip\n *\n * @param file path to the zip\n * @param dest destination directory. Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractZip(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n if ($06285eac7a7bb2d2$var$IS_WINDOWS) yield $06285eac7a7bb2d2$var$extractZipWin(file, dest);\n else yield $06285eac7a7bb2d2$var$extractZipNix(file, dest);\n return dest;\n });\n}\nmodule.exports.extractZip = $06285eac7a7bb2d2$var$extractZip;\nfunction $06285eac7a7bb2d2$var$extractZipWin(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n // build the powershell command\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedDest = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const pwshPath = yield $06285eac7a7bb2d2$var$io.which(\"pwsh\", false);\n //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory\n //and the -Force flag for Expand-Archive as a fallback\n if (pwshPath) {\n //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive\n const pwshCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,\n `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,\n `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n pwshCommand\n ];\n $06285eac7a7bb2d2$var$core.debug(`Using pwsh at path: ${pwshPath}`);\n yield $ioM8U.exec(`\"${pwshPath}\"`, args);\n } else {\n const powershellCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,\n `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,\n `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n powershellCommand\n ];\n const powershellPath = yield $06285eac7a7bb2d2$var$io.which(\"powershell\", true);\n $06285eac7a7bb2d2$var$core.debug(`Using powershell at path: ${powershellPath}`);\n yield $ioM8U.exec(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction $06285eac7a7bb2d2$var$extractZipNix(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n const unzipPath = yield $06285eac7a7bb2d2$var$io.which(\"unzip\", true);\n const args = [\n file\n ];\n if (!$06285eac7a7bb2d2$var$core.isDebug()) args.unshift(\"-q\");\n args.unshift(\"-o\"); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield $ioM8U.exec(`\"${unzipPath}\"`, args, {\n cwd: dest\n });\n });\n}\n/**\n * Caches a directory and installs it into the tool cacheDir\n *\n * @param sourceDir the directory to cache into tools\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $06285eac7a7bb2d2$var$cacheDir(sourceDir, tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n version = $06285eac7a7bb2d2$var$semver.clean(version) || version;\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n $06285eac7a7bb2d2$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $06285eac7a7bb2d2$var$core.debug(`source dir: ${sourceDir}`);\n if (!$06285eac7a7bb2d2$var$fs.statSync(sourceDir).isDirectory()) throw new Error(\"sourceDir is not a directory\");\n // Create the tool dir\n const destPath = yield $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch);\n // copy each child item. do not move. move can fail on Windows\n // due to anti-virus software having an open handle on a file.\n for (const itemName of $06285eac7a7bb2d2$var$fs.readdirSync(sourceDir)){\n const s = $06285eac7a7bb2d2$var$path.join(sourceDir, itemName);\n yield $06285eac7a7bb2d2$var$io.cp(s, destPath, {\n recursive: true\n });\n }\n // write .complete\n $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nmodule.exports.cacheDir = $06285eac7a7bb2d2$var$cacheDir;\n/**\n * Caches a downloaded file (GUID) and installs it\n * into the tool cache with a given targetName\n *\n * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.\n * @param targetFile the name of the file name in the tools directory\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $06285eac7a7bb2d2$var$cacheFile(sourceFile, targetFile, tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n version = $06285eac7a7bb2d2$var$semver.clean(version) || version;\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n $06285eac7a7bb2d2$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $06285eac7a7bb2d2$var$core.debug(`source file: ${sourceFile}`);\n if (!$06285eac7a7bb2d2$var$fs.statSync(sourceFile).isFile()) throw new Error(\"sourceFile is not a file\");\n // create the tool dir\n const destFolder = yield $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch);\n // copy instead of move. move can fail on Windows due to\n // anti-virus software having an open handle on a file.\n const destPath = $06285eac7a7bb2d2$var$path.join(destFolder, targetFile);\n $06285eac7a7bb2d2$var$core.debug(`destination file ${destPath}`);\n yield $06285eac7a7bb2d2$var$io.cp(sourceFile, destPath);\n // write .complete\n $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nmodule.exports.cacheFile = $06285eac7a7bb2d2$var$cacheFile;\n/**\n * Finds the path to a tool version in the local installed tool cache\n *\n * @param toolName name of the tool\n * @param versionSpec version of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $06285eac7a7bb2d2$var$find(toolName, versionSpec, arch) {\n if (!toolName) throw new Error(\"toolName parameter is required\");\n if (!versionSpec) throw new Error(\"versionSpec parameter is required\");\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n // attempt to resolve an explicit version\n if (!$06285eac7a7bb2d2$var$isExplicitVersion(versionSpec)) {\n const localVersions = $06285eac7a7bb2d2$var$findAllVersions(toolName, arch);\n const match = $06285eac7a7bb2d2$var$evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = \"\";\n if (versionSpec) {\n versionSpec = $06285eac7a7bb2d2$var$semver.clean(versionSpec) || \"\";\n const cachePath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), toolName, versionSpec, arch);\n $06285eac7a7bb2d2$var$core.debug(`checking cache: ${cachePath}`);\n if ($06285eac7a7bb2d2$var$fs.existsSync(cachePath) && $06285eac7a7bb2d2$var$fs.existsSync(`${cachePath}.complete`)) {\n $06285eac7a7bb2d2$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n } else $06285eac7a7bb2d2$var$core.debug(\"not found\");\n }\n return toolPath;\n}\nmodule.exports.find = $06285eac7a7bb2d2$var$find;\n/**\n * Finds the paths to all versions of a tool that are installed in the local tool cache\n *\n * @param toolName name of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $06285eac7a7bb2d2$var$findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n const toolPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), toolName);\n if ($06285eac7a7bb2d2$var$fs.existsSync(toolPath)) {\n const children = $06285eac7a7bb2d2$var$fs.readdirSync(toolPath);\n for (const child of children)if ($06285eac7a7bb2d2$var$isExplicitVersion(child)) {\n const fullPath = $06285eac7a7bb2d2$var$path.join(toolPath, child, arch || \"\");\n if ($06285eac7a7bb2d2$var$fs.existsSync(fullPath) && $06285eac7a7bb2d2$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child);\n }\n }\n return versions;\n}\nmodule.exports.findAllVersions = $06285eac7a7bb2d2$var$findAllVersions;\nfunction $06285eac7a7bb2d2$var$getManifestFromRepo(owner, repo, auth, branch = \"master\") {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n let releases = [];\n const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;\n const http = new $06285eac7a7bb2d2$var$httpm.HttpClient(\"tool-cache\");\n const headers = {};\n if (auth) {\n $06285eac7a7bb2d2$var$core.debug(\"set auth\");\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) return releases;\n let manifestUrl = \"\";\n for (const item of response.result.tree)if (item.path === \"versions-manifest.json\") {\n manifestUrl = item.url;\n break;\n }\n headers[\"accept\"] = \"application/vnd.github.VERSION.raw\";\n let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody();\n if (versionsRaw) {\n // shouldn't be needed but protects against invalid json saved with BOM\n versionsRaw = versionsRaw.replace(/^\\uFEFF/, \"\");\n try {\n releases = JSON.parse(versionsRaw);\n } catch (_a) {\n $06285eac7a7bb2d2$var$core.debug(\"Invalid json\");\n }\n }\n return releases;\n });\n}\nmodule.exports.getManifestFromRepo = $06285eac7a7bb2d2$var$getManifestFromRepo;\nfunction $06285eac7a7bb2d2$var$findFromManifest(versionSpec, stable, manifest, archFilter = $06285eac7a7bb2d2$var$os.arch()) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n // wrap the internal impl\n const match = yield $06285eac7a7bb2d2$var$mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nmodule.exports.findFromManifest = $06285eac7a7bb2d2$var$findFromManifest;\nfunction $06285eac7a7bb2d2$var$_createExtractFolder(dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!dest) // create a temp dir\n dest = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getTempDirectory(), $06285eac7a7bb2d2$var$v4_1.default());\n yield $06285eac7a7bb2d2$var$io.mkdirP(dest);\n return dest;\n });\n}\nfunction $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n const folderPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), tool, $06285eac7a7bb2d2$var$semver.clean(version) || version, arch || \"\");\n $06285eac7a7bb2d2$var$core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield $06285eac7a7bb2d2$var$io.rmRF(folderPath);\n yield $06285eac7a7bb2d2$var$io.rmRF(markerPath);\n yield $06285eac7a7bb2d2$var$io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch) {\n const folderPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), tool, $06285eac7a7bb2d2$var$semver.clean(version) || version, arch || \"\");\n const markerPath = `${folderPath}.complete`;\n $06285eac7a7bb2d2$var$fs.writeFileSync(markerPath, \"\");\n $06285eac7a7bb2d2$var$core.debug(\"finished caching tool\");\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */ function $06285eac7a7bb2d2$var$isExplicitVersion(versionSpec) {\n const c = $06285eac7a7bb2d2$var$semver.clean(versionSpec) || \"\";\n $06285eac7a7bb2d2$var$core.debug(`isExplicit: ${c}`);\n const valid = $06285eac7a7bb2d2$var$semver.valid(c) != null;\n $06285eac7a7bb2d2$var$core.debug(`explicit? ${valid}`);\n return valid;\n}\nmodule.exports.isExplicitVersion = $06285eac7a7bb2d2$var$isExplicitVersion;\n/**\n * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec`\n *\n * @param versions array of versions to evaluate\n * @param versionSpec semantic version spec to satisfy\n */ function $06285eac7a7bb2d2$var$evaluateVersions(versions, versionSpec) {\n let version = \"\";\n $06285eac7a7bb2d2$var$core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b)=>{\n if ($06285eac7a7bb2d2$var$semver.gt(a, b)) return 1;\n return -1;\n });\n for(let i = versions.length - 1; i >= 0; i--){\n const potential = versions[i];\n const satisfied = $06285eac7a7bb2d2$var$semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) $06285eac7a7bb2d2$var$core.debug(`matched: ${version}`);\n else $06285eac7a7bb2d2$var$core.debug(\"match not found\");\n return version;\n}\nmodule.exports.evaluateVersions = $06285eac7a7bb2d2$var$evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */ function $06285eac7a7bb2d2$var$_getCacheDirectory() {\n const cacheDirectory = process.env[\"RUNNER_TOOL_CACHE\"] || \"\";\n $e2xck$assert.ok(cacheDirectory, \"Expected RUNNER_TOOL_CACHE to be defined\");\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */ function $06285eac7a7bb2d2$var$_getTempDirectory() {\n const tempDirectory = process.env[\"RUNNER_TEMP\"] || \"\";\n $e2xck$assert.ok(tempDirectory, \"Expected RUNNER_TEMP to be defined\");\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */ function $06285eac7a7bb2d2$var$_getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */ function $06285eac7a7bb2d2$var$_unique(values) {\n return Array.from(new Set(values));\n}\n\n});\nparcelRegister(\"8YqHc\", function(module, exports) {\n\"use strict\";\nvar $6888a29219fb1109$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $6888a29219fb1109$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $6888a29219fb1109$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $6888a29219fb1109$var$__createBinding(result, mod, k);\n }\n $6888a29219fb1109$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $6888a29219fb1109$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $6888a29219fb1109$var$semver = $6888a29219fb1109$var$__importStar((parcelRequire(\"bD1rN\")));\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nfunction $6888a29219fb1109$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $6888a29219fb1109$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $e2xck$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $lUL8q.debug(`check ${version} satisfies ${versionSpec}`);\n if ($6888a29219fb1109$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $lUL8q.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $6888a29219fb1109$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $lUL8q.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $6888a29219fb1109$var$_findMatch;\nfunction $6888a29219fb1109$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $e2xck$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $e2xck$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $6888a29219fb1109$var$_getOsVersion;\nfunction $6888a29219fb1109$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($e2xck$fs.existsSync(lsbReleaseFile)) contents = $e2xck$fs.readFileSync(lsbReleaseFile).toString();\n else if ($e2xck$fs.existsSync(osReleaseFile)) contents = $e2xck$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $6888a29219fb1109$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"bD1rN\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"i2yVI\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\n\n\n\nvar $3H0GM = parcelRequire(\"3H0GM\");\nlet $d223823cc08ba468$var$tunnel;\nvar $d223823cc08ba468$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($d223823cc08ba468$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $d223823cc08ba468$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($d223823cc08ba468$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $d223823cc08ba468$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($d223823cc08ba468$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $d223823cc08ba468$var$getProxyUrl(serverUrl) {\n let proxyUrl = $3H0GM.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $d223823cc08ba468$var$getProxyUrl;\nconst $d223823cc08ba468$var$HttpRedirectCodes = [\n $d223823cc08ba468$var$HttpCodes.MovedPermanently,\n $d223823cc08ba468$var$HttpCodes.ResourceMoved,\n $d223823cc08ba468$var$HttpCodes.SeeOther,\n $d223823cc08ba468$var$HttpCodes.TemporaryRedirect,\n $d223823cc08ba468$var$HttpCodes.PermanentRedirect\n];\nconst $d223823cc08ba468$var$HttpResponseRetryCodes = [\n $d223823cc08ba468$var$HttpCodes.BadGateway,\n $d223823cc08ba468$var$HttpCodes.ServiceUnavailable,\n $d223823cc08ba468$var$HttpCodes.GatewayTimeout\n];\nconst $d223823cc08ba468$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $d223823cc08ba468$var$ExponentialBackoffCeiling = 10;\nconst $d223823cc08ba468$var$ExponentialBackoffTimeSlice = 5;\nclass $d223823cc08ba468$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $d223823cc08ba468$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $d223823cc08ba468$var$HttpClientError;\nclass $d223823cc08ba468$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject)=>{\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n });\n }\n}\nmodule.exports.HttpClientResponse = $d223823cc08ba468$var$HttpClientResponse;\nfunction $d223823cc08ba468$var$isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $d223823cc08ba468$var$isHttps;\n\nclass $d223823cc08ba468$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[$d223823cc08ba468$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.Accept, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$d223823cc08ba468$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.Accept, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n additionalHeaders[$d223823cc08ba468$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.ContentType, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$d223823cc08ba468$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.Accept, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n additionalHeaders[$d223823cc08ba468$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.ContentType, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$d223823cc08ba468$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.Accept, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n additionalHeaders[$d223823cc08ba468$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $d223823cc08ba468$var$Headers.ContentType, $d223823cc08ba468$var$MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ async request(verb, requestUrl, data, headers) {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && $d223823cc08ba468$var$RetryableHttpVerbs.indexOf(verb) != -1 ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while(numTries < maxTries){\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $d223823cc08ba468$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for(let i = 0; i < this.handlers.length; i++)if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while($d223823cc08ba468$var$HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == \"https:\" && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(let header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if ($d223823cc08ba468$var$HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return new Promise((resolve, reject)=>{\n let callbackForResult = function(err, res) {\n if (err) reject(err);\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === \"string\") info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n let callbackCalled = false;\n let handleResult = (err, res)=>{\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg)=>{\n let res = new $d223823cc08ba468$var$HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(\"Request timeout: \" + info.options.path), null);\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $e2xck$https : $e2xck$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) this.handlers.forEach((handler)=>{\n handler.prepareRequest(info.options);\n });\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = $3H0GM.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (!!agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (!!this.requestOptions) maxSockets = this.requestOptions.maxSockets || $e2xck$http.globalAgent.maxSockets;\n if (useProxy) {\n // If using proxy, need tunnel\n if (!$d223823cc08ba468$var$tunnel) $d223823cc08ba468$var$tunnel = (parcelRequire(\"3zxaw\"));\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...(proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n },\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $d223823cc08ba468$var$tunnel.httpsOverHttps : $d223823cc08ba468$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $d223823cc08ba468$var$tunnel.httpOverHttps : $d223823cc08ba468$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $e2xck$https.Agent(options) : new $e2xck$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $e2xck$https.globalAgent : $e2xck$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min($d223823cc08ba468$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $d223823cc08ba468$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject)=>{\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == $d223823cc08ba468$var$HttpCodes.NotFound) resolve(response);\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, $d223823cc08ba468$var$HttpClient.dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = \"Failed request: (\" + statusCode + \")\";\n let err = new $d223823cc08ba468$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n });\n }\n}\nmodule.exports.HttpClient = $d223823cc08ba468$var$HttpClient;\n\n});\nparcelRegister(\"3H0GM\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nfunction $2b05ec10db93bc9e$var$getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === \"https:\";\n let proxyUrl;\n if ($2b05ec10db93bc9e$var$checkBypass(reqUrl)) return proxyUrl;\n let proxyVar;\n if (usingSsl) proxyVar = process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else proxyVar = process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n if (proxyVar) proxyUrl = new URL(proxyVar);\n return proxyUrl;\n}\nmodule.exports.getProxyUrl = $2b05ec10db93bc9e$var$getProxyUrl;\nfunction $2b05ec10db93bc9e$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n let noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n let upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperReqHosts.some((x)=>x === upperNoProxyItem)) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $2b05ec10db93bc9e$var$checkBypass;\n\n});\n\n\nparcelRegister(\"lctVY\", function(module, exports) {\n\nvar $jzaSY = parcelRequire(\"jzaSY\");\n\nvar $jGQv3 = parcelRequire(\"jGQv3\");\nfunction $f6f1f03a6ff46dc1$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $jzaSY)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $jGQv3(rnds);\n}\nmodule.exports = $f6f1f03a6ff46dc1$var$v4;\n\n});\nparcelRegister(\"jzaSY\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $e2xck$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"jGQv3\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $e55aa9f22cc79472$var$byteToHex = [];\nfor(var $e55aa9f22cc79472$var$i = 0; $e55aa9f22cc79472$var$i < 256; ++$e55aa9f22cc79472$var$i)$e55aa9f22cc79472$var$byteToHex[$e55aa9f22cc79472$var$i] = ($e55aa9f22cc79472$var$i + 0x100).toString(16).substr(1);\nfunction $e55aa9f22cc79472$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $e55aa9f22cc79472$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $e55aa9f22cc79472$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"elhkM\", function(module, exports) {\n\"use strict\";\nvar $a710790bc80709cf$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $a710790bc80709cf$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $a710790bc80709cf$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $a710790bc80709cf$var$__createBinding(result, mod, k);\n }\n $a710790bc80709cf$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $a710790bc80709cf$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $a710790bc80709cf$var$core = $a710790bc80709cf$var$__importStar((parcelRequire(\"lUL8q\")));\n/**\n * Internal class for retries\n */ class $a710790bc80709cf$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $a710790bc80709cf$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $a710790bc80709cf$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $a710790bc80709cf$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $a710790bc80709cf$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $a710790bc80709cf$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"j3bdl\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $1759792e09a4a347$export$43d689d19c89c31d);\n\n\nvar $fujKW = parcelRequire(\"fujKW\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\nasync function $1759792e09a4a347$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $1759792e09a4a347$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $fujKW.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $fujKW.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $lUL8q.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $lUL8q.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $1759792e09a4a347$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $fujKW.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $c6Y2q.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $e2xck$path.join(installDir, pipDir);\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $e2xck$path.join((0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $fujKW.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $lUL8q.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $lUL8q.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $lUL8q.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $lUL8q.addPath(pythonLocation);\n $lUL8q.addPath(_binDir);\n }\n $lUL8q.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $lUL8q.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $1759792e09a4a347$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $c6Y2q.IS_WINDOWS) ? $1759792e09a4a347$export$139298be7eb2bd(pythonVersion) : $wMbNK.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $c6Y2q.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $c6Y2q.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $24j9d.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $lUL8q.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $1759792e09a4a347$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $fujKW.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $c6Y2q.validateVersion)(pythonVersion) || !(0, $c6Y2q.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $c6Y2q.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $1759792e09a4a347$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $c6Y2q.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $wMbNK.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"fujKW\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $93b2da48e4863ac9$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $93b2da48e4863ac9$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $93b2da48e4863ac9$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $93b2da48e4863ac9$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $93b2da48e4863ac9$export$4e25ef8c836002b9);\n\n\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $i2yVI = parcelRequire(\"i2yVI\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\nasync function $93b2da48e4863ac9$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases ?? await $93b2da48e4863ac9$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $lUL8q.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($e2xck$os.EOL));\n releaseData = $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $lUL8q.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $wMbNK.downloadTool(downloadUrl);\n $lUL8q.info(\"Extracting downloaded archive...\");\n if (0, $c6Y2q.IS_WINDOWS) downloadDir = await $wMbNK.extractZip(pypyPath);\n else downloadDir = await $wMbNK.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($e2xck$fs))).readdirSync(downloadDir)[0];\n const toolDir = $e2xck$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $c6Y2q.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $wMbNK.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $c6Y2q.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $93b2da48e4863ac9$export$a053ce7a690fbb2e(installDir);\n await $93b2da48e4863ac9$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $93b2da48e4863ac9$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $wMbNK.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $lUL8q.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $lUL8q.info(err.message);\n if (err.stack !== undefined) $lUL8q.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $93b2da48e4863ac9$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $i2yVI.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $93b2da48e4863ac9$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $24j9d.coerce(pythonVersion);\n const pythonBinaryPostfix = $24j9d.major(version);\n const pythonMinor = $24j9d.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n $lUL8q.info(\"Creating symlinks...\");\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $93b2da48e4863ac9$var$installPip(pythonLocation) {\n $lUL8q.info(\"Installing and updating pip\");\n const pythonBinary = $e2xck$path.join(pythonLocation, \"python\");\n await $ioM8U.exec(`${pythonBinary} -m ensurepip`);\n await $ioM8U.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $24j9d.satisfies($24j9d.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $c6Y2q.isNightlyKeyword)(pypyVersion) && (0, $c6Y2q.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $24j9d.satisfies($93b2da48e4863ac9$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $c6Y2q.IS_WINDOWS) ? $93b2da48e4863ac9$export$652444ba12a0c7bb(item, architecture) : $93b2da48e4863ac9$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $24j9d.compare($24j9d.coerce($93b2da48e4863ac9$export$4e25ef8c836002b9(current.pypy_version)), $24j9d.coerce($93b2da48e4863ac9$export$4e25ef8c836002b9(previous.pypy_version))) || $24j9d.compare($24j9d.coerce(current.python_version), $24j9d.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $c6Y2q.IS_WINDOWS) ? $93b2da48e4863ac9$export$672a33957a3c888(foundRelease, architecture) : $93b2da48e4863ac9$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $93b2da48e4863ac9$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $e2xck$path.join(installDir, \"bin\");\n return (0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $93b2da48e4863ac9$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $93b2da48e4863ac9$export$652444ba12a0c7bb(item, architecture) {\n architecture = $93b2da48e4863ac9$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $c6Y2q.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $93b2da48e4863ac9$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $93b2da48e4863ac9$export$672a33957a3c888(releases, architecture) {\n architecture = $93b2da48e4863ac9$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $c6Y2q.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $93b2da48e4863ac9$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $93b2da48e4863ac9$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.10530df8.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/dist/actions/actions_python.f93740c6.js b/dist/actions/actions_python.f93740c6.js deleted file mode 100644 index ad4d57a3..00000000 --- a/dist/actions/actions_python.f93740c6.js +++ /dev/null @@ -1,3 +0,0 @@ -function $parcel$export(e,t,r,i){Object.defineProperty(e,t,{get:r,set:i,enumerable:!0,configurable:!0});}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e;}var $e2xck$path=require("path"),$e2xck$os=require("os"),$e2xck$fs=require("fs"),$e2xck$stream=require("stream"),$e2xck$util=require("util"),$e2xck$assert=require("assert"),$e2xck$child_process=require("child_process"),$e2xck$crypto=require("crypto"),$parcel$global=globalThis,parcelRequire=$parcel$global.parcelRequire810d,parcelRegister=parcelRequire.register;parcelRegister("i1n7v",function(e,t){var r,i,n,s,o,a,h,c,l;function u(e){return e.startsWith("pypy");}async function p(e,t,o){h.IS_MAC&&(process.env.AGENT_TOOLSDIRECTORY="/Users/runner/hostedtoolcache");let c=process.env.AGENT_TOOLSDIRECTORY?.trim();if("string"==typeof c&&""!==c&&(process.env.RUNNER_TOOL_CACHE=process.env.AGENT_TOOLSDIRECTORY),(0,s.debug)("Python is expected to be installed into "+process.env.RUNNER_TOOL_CACHE),e){let t;if(u(e)){let r=await(0,i.findPyPyVersion)(e,o,!0,d,!1);t=`${r.resolvedPyPyVersion}-${r.resolvedPythonVersion}`,(0,n.info)(`Successfully set up PyPy ${r.resolvedPyPyVersion} with Python (${r.resolvedPythonVersion})`);}else{let i=await(0,r.useCpythonVersion)(e,o,!0,d,!1);t=i.version,(0,n.info)(`Successfully set up ${i.impl} (${t})`);}}a.GITHUB_ACTIONS&&(await f());}async function f(){let e=(0,o.join)(l,"python_matcher.json");if(!(await(0,c.pathExists)(e)))return(0,n.warning)("the python_matcher.json file does not exist in the same folder as setup-cpp.js");(0,n.info)("::add-matcher::"+e);}$parcel$export(e.exports,"setupActionsPython",()=>p),r=parcelRequire("hdVmr"),i=parcelRequire("j3bdl"),n=parcelRequire("g0Mwp"),s=parcelRequire("lUL8q"),o=parcelRequire("e19ul"),a=parcelRequire("l5aZl"),h=parcelRequire("c6Y2q"),c=parcelRequire("6afW1"),l=$e2xck$path.resolve(__dirname,"../../src/python");let d=!1;}),parcelRegister("hdVmr",function(e,t){var r,i,n,s,o;function a(e){return r.IS_WINDOWS?$e2xck$path.join(e,"Scripts"):$e2xck$path.join(e,"bin");}async function h(e,t,h,p,f){let d=null,m=u(c(e),f);if(s.debug(`Semantic version spec of ${e} is ${m}`),p){d=await n.getManifest();let e=(await n.findReleaseFromManifest(m,t,d))?.version;e?(m=e,s.info(`Resolved as '${m}'`)):s.info(`Failed to resolve version ${m} from manifest`);}let y=o.find("Python",m,t);if(!y){s.info(`Version ${m} was not found in the local cache`);let e=await n.findReleaseFromManifest(m,t,d);e&&e.files&&e.files.length>0&&(s.info(`Version ${m} is available for downloading`),await n.installCpythonFromRelease(e),y=o.find("Python",m,t));}if(!y){let i=await(0,r.getOSInfo)();throw Error([`The version '${e}' with architecture '${t}' was not found for ${i?`${i.osName} ${i.osVersion}`:"this operating system"}.`,"The list of all available versions can be found here: "+n.MANIFEST_URL].join($e2xck$os.EOL));}let E=a(y),g=r.IS_WINDOWS?".exe":"",w=$e2xck$path.join(r.IS_WINDOWS?y:E,"python"+g);if(h){if(s.exportVariable("pythonLocation",y),s.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),s.exportVariable("pythonLocation",y),s.exportVariable("Python_ROOT_DIR",y),s.exportVariable("Python2_ROOT_DIR",y),s.exportVariable("Python3_ROOT_DIR",y),s.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),r.IS_LINUX){let e=process.env.LD_LIBRARY_PATH?":"+process.env.LD_LIBRARY_PATH:"",t=$e2xck$path.join(y,"lib");e.split(":").includes(t)||s.exportVariable("LD_LIBRARY_PATH",t+e);}if(s.addPath(y),s.addPath(E),r.IS_WINDOWS){let e=$e2xck$path.basename($e2xck$path.dirname(y)),t=i.major(e),r=i.minor(e),n=$e2xck$path.join(process.env.APPDATA||"","Python",`Python${t}${r}`,"Scripts");s.addPath(n);}}let x=l(y);return s.setOutput("python-version",x),s.setOutput("python-path",w),{impl:"CPython",version:x};}function c(e){let t=/^(\d+)\.(\d+)-dev$/;return e.replace(t,"~$1.$2.0-0");}function l(e){let t=e.split($e2xck$path.sep),r=t.findIndex(e=>"PyPy"===e||"Python"===e);return t[r+1]||"";}function u(e,t){let r=/(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g,i=/^(\d+)\.(\d+)$/,n=e.replace(r,"$1-$2");return t&&(n=n.replace(i,"~$1.$2.0-0")),n;}$parcel$export(e.exports,"useCpythonVersion",()=>h),r=parcelRequire("c6Y2q"),i=parcelRequire("24j9d"),n=parcelRequire("4rCDr"),s=parcelRequire("lUL8q"),o=parcelRequire("wMbNK");}),parcelRegister("c6Y2q",function(e,t){var r,i,n;function s(e,t,r,i=!1){let n=$e2xck$path.join(e,t),s=$e2xck$path.join(e,r);$parcel$interopDefault($e2xck$fs).existsSync(s)||($parcel$interopDefault($e2xck$fs).symlinkSync(n,s),!y&&i&&$parcel$interopDefault($e2xck$fs).chmodSync(s,"755"));}function o(e){return a(e)||!!i.validRange(e);}function a(e){return"nightly"===e;}function h(e){return $e2xck$path.basename($e2xck$path.dirname(e));}function c(e){let t="",r=$e2xck$path.join(e,v);return $parcel$interopDefault($e2xck$fs).existsSync(r)&&(t=$parcel$interopDefault($e2xck$fs).readFileSync(r).toString().trim()),t;}function l(e,t){let r=$e2xck$path.join(e,v);$parcel$interopDefault($e2xck$fs).writeFileSync(r,t);}function u(e){return /^\d+\.\d+$/.test(e);}async function p(){let{stdout:e}=await n.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{osName:"Windows",osVersion:e.trim().split(" ")[3]};}async function f(){let{stdout:e}=await n.getExecOutput("sw_vers",["-productVersion"],{silent:!0});return{osName:"macOS",osVersion:e.trim()};}async function d(){let{stdout:e}=await n.getExecOutput("lsb_release",["-i","-r","-s"],{silent:!0}),[t,i]=e.trim().split("\n");return r.debug(`OS Name: ${t}, Version: ${i}`),{osName:t,osVersion:i};}async function m(){let e;try{y?e=await p():E?e=await d():g&&(e=await f());}catch(t){let e=t;r.debug(e.message);}finally{return e;}}$parcel$export(e.exports,"IS_WINDOWS",()=>y),$parcel$export(e.exports,"IS_LINUX",()=>E),$parcel$export(e.exports,"IS_MAC",()=>g),$parcel$export(e.exports,"WINDOWS_ARCHS",()=>w),$parcel$export(e.exports,"WINDOWS_PLATFORMS",()=>x),$parcel$export(e.exports,"createSymlinkInFolder",()=>s),$parcel$export(e.exports,"validateVersion",()=>o),$parcel$export(e.exports,"isNightlyKeyword",()=>a),$parcel$export(e.exports,"getPyPyVersionFromPath",()=>h),$parcel$export(e.exports,"readExactPyPyVersionFile",()=>c),$parcel$export(e.exports,"writeExactPyPyVersionFile",()=>l),$parcel$export(e.exports,"validatePythonVersionFormatForPyPy",()=>u),$parcel$export(e.exports,"getOSInfo",()=>m),r=parcelRequire("lUL8q"),i=parcelRequire("24j9d"),parcelRequire("kXu60"),n=parcelRequire("ioM8U");let y="win32"===process.platform,E="linux"===process.platform,g="darwin"===process.platform,w=["x86","x64"],x=["win32","win64"],v="PYPY_VERSION";}),parcelRegister("kXu60",function(e,t){var r;$parcel$export(e.exports,"parse",()=>r,e=>r=e),r=parcelRequire("ziyWn"),parcelRequire("ZjZv7");}),parcelRegister("ziyWn",function(e,t){e.exports=parcelRequire("gJ6p0"),e.exports.async=parcelRequire("i9dxX"),e.exports.stream=parcelRequire("iDBjn"),e.exports.prettyError=parcelRequire("Prvkg");}),parcelRegister("gJ6p0",function(e,t){var r,i;function n(e){$parcel$global.Buffer&&$parcel$global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r();try{return t.parse(e),t.finish();}catch(t){throw i(t,e);}}e.exports=n,r=parcelRequire("5DS0I"),i=parcelRequire("Prvkg");}),parcelRegister("5DS0I",function(module,exports){var $8CCFi,$5kLdF,$7EgKF,$9WIdb;let _custom;function isDigit(e){return e>=CHAR_0&&e<=CHAR_9;}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9;}function isBit(e){return e===CHAR_1||e===CHAR_0;}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7;}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1);}function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}});}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE;}function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}});}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE;}function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}});}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST;}function List(){return Object.defineProperties([],{[_type]:{value:LIST}});}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST;}function Integer(e){let t=+e;return(Object.is(t,-0)&&(t=0),$parcel$global.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this);}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}});}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER;}function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}});}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT;}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer";}}return t;}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table();}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine();}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M;}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`));}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"));}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement);}recordAssignStatement(e){let t=this.ctx,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseWhitespaceToEOL);}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword);}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot);}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0;}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword);}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'));}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue);}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e});}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar());}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList);}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext);}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore);}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext);}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore);}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t;}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"));}recordValue(e){return this.returnNow(e);}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey);}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"));}while(this.nextChar());}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString);}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow();}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent);}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent));}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent));}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString);}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString);}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow();}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent);}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}errorControlCharInString(){let e="\\u00";return this.char<16&&(e+="0"),e+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${e} instead`));}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent);}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent));}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent));}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape);}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"));}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow();}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char));}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t));}catch(e){throw this.error(TomlError.wrap(e));}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan);}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart);}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger);}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf));}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf));}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"));}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf));}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly);}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf));}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"));}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"));}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf));}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth);}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour);}if(this.atEndOfWord())return this.returnNow($7EgKF(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow($7EgKF(this.state.result)):this.goto(this.parseTimeHour);}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"));}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction);}else throw this.error(new TomlError("Incomplete datetime"));}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin);}throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe);}else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return($9WIdb(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction);}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow($9WIdb(this.state.result+"."+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($8CCFi(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($5kLdF(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($8CCFi(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($5kLdF(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep);}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"));}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return($8CCFi(this.state.result+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0;}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue);}recordInlineListValue(e){if(this.state.resultArr){let t=this.state.resultArr[_contentType],r=tomlType(e);if(t!==r)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${t} and ${r}`));}else this.state.resultArr=InlineList(tomlType(e));return isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext);}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue));}recordInlineTableValue(e){let t=this.state.resultTable,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseInlineTableNext);}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}}return t;}module.exports=makeParserClass(parcelRequire("aocLw")),module.exports.makeParserClass=makeParserClass;class TomlError extends Error{constructor(e){super(e),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,TomlError),this.fromTOML=!0,this.wrapped=null;}}TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t;},module.exports.TomlError=TomlError,$8CCFi=parcelRequire("8CCFi"),$5kLdF=parcelRequire("5kLdF"),$7EgKF=parcelRequire("7EgKF"),$9WIdb=parcelRequire("9WIdb");let CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"},_type=Symbol(),_declared=Symbol(),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0},INLINE_TABLE=Symbol(),TABLE=Symbol(),_contentType=Symbol(),INLINE_LIST=Symbol(),LIST=Symbol();try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom;}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=$parcel$global.BigInt.asIntN(64,e);}catch(e){this.value=null;}Object.defineProperty(this,_type,{value:INTEGER});}isNaN(){return null===this.value;}toString(){return this.value+"";}[_inspect](){return`[BigInt: ${this.toString()}]}`;}valueOf(){return this.value;}}let INTEGER=Symbol(),FLOAT=Symbol();}),parcelRegister("aocLw",function(e,t){let r=1114112;class i extends Error{constructor(e,t,r){super("[ParserError] "+e,t,r),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,i);}}class n{constructor(e){this.parser=e,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null;}}class s{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new n(this.parseStart);}parse(e){let t;if(0!==e.length&&null!=e.length){for(this._buf=e+"",this.ii=-1,this.char=-1;!1===t||this.nextChar();)t=this.runOne();this._buf=null;}}nextChar(){return 10===this.char&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer();}haveBuffer(){return this.ii{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("5kLdF",function(e,t){var r=parcelRequire("d3FGN");class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0;}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("d3FGN",function(e,t){e.exports=(e,t)=>{for(t+="";t.length{let t=new n(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("9WIdb",function(e,t){var r=parcelRequire("d3FGN");class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0;}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("Prvkg",function(e,t){function r(e,t){if(null==e.pos||null==e.line)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: -`,t&&t.split){let i=t.split(/\n/),n=(Math.min(i.length,e.line+3)+"").length,s=" ";for(;s.length "+i[t]+"\n"+s+" ";for(let t=0;t=e.length)try{return s(a.finish());}catch(t){return o(i(t,e));}try{a.parse(e.slice(t,t+r)),setImmediate(n,t+r,r,s,o);}catch(t){o(i(t,e));}}t||(t={});let s=0,o=t.blocksize||40960,a=new r();return new Promise((e,t)=>{setImmediate(n,s,o,e,t);});}e.exports=n,r=parcelRequire("5DS0I"),i=parcelRequire("Prvkg");}),parcelRegister("iDBjn",function(e,t){var r;function i(e){return e?n(e):s(e);}function n(e){let t=new r();return e.setEncoding("utf8"),new Promise((r,i)=>{let n;function s(){if(h=!0,!n)try{r(t.finish());}catch(e){i(e);}}function o(e){c=!0,i(e);}function a(){let r;for(n=!0;null!==(r=e.read());)try{t.parse(r);}catch(e){return o(e);}if(n=!1,h)return s();c||e.once("readable",a);}let h=!1,c=!1;e.once("end",s),e.once("error",o),a();});}function s(){let e=new r();return new $e2xck$stream.Transform({objectMode:!0,transform(t,r,i){try{e.parse(t.toString(r));}catch(e){this.emit("error",e);}i();},flush(t){try{this.push(e.finish());}catch(e){this.emit("error",e);}t();}});}e.exports=i,r=parcelRequire("5DS0I");}),parcelRegister("ZjZv7",function(e,t){function r(e){if(null===e)throw i("null");if(void 0===e)throw i("undefined");if("object"!=typeof e)throw i(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=l(e);if("table"!==t)throw i(t);return h("","",e);}function i(e){return Error("Can only stringify objects, not "+e);}function n(){return Error("Array values can't have mixed types");}function s(e){return Object.keys(e).filter(t=>c(e[t]));}function o(e){return Object.keys(e).filter(t=>!c(e[t]));}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))!e[r]||"function"!=typeof e[r].toJSON||"toISOString"in e[r]?t[r]=e[r]:t[r]=e[r].toJSON();return t;}function h(e,t,r){i=s(r=a(r)),n=o(r);var i,n,h=[],c=t||"";i.forEach(e=>{var t=l(r[e]);"undefined"!==t&&"null"!==t&&h.push(c+u(e)+" = "+E(r[e],!0));}),h.length>0&&h.push("");var p=e&&i.length>0?t+" ":"";return n.forEach(t=>{h.push(R(e,p,t,r[t]));}),h.join("\n");}function c(e){switch(l(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==l(e[0]);case"table":return 0===Object.keys(e).length;default:return!1;}}function l(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table";}function u(e){var t=e+"";return /^[-A-Za-z0-9_]+$/.test(t)?t:p(t);}function p(e){return'"'+m(e).replace(/"/g,'\\"')+'"';}function f(e){return"'"+e+"'";}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)));}function y(e){let t=e.split(/\n/).map(e=>m(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""';}function E(e,t){let r=l(e);return"string"===r&&(t&&/\n/.test(e)?r="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(r="string-literal")),g(e,r);}function g(e,t){switch(t||(t=l(e)),t){case"string-multiline":return y(e);case"string":return p(e);case"string-literal":return f(e);case"integer":return w(e);case"float":return x(e);case"boolean":return v(e);case"datetime":return I(e);case"array":return S(e.filter(e=>"null"!==l(e)&&"undefined"!==l(e)&&"nan"!==l(e)));case"table":return T(e);default:throw i(t);}}function w(e){return(e+"").replace(/\B(?=(\d{3})+(?!\d))/g,"_");}function x(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";var t=(e+"").split("."),r=t[0],i=t[1]||0;return w(r)+"."+i;}function v(e){return e+"";}function I(e){return e.toISOString();}function b(e){return"float"===e||"integer"===e;}function N(e){var t=l(e[0]);return e.every(e=>l(e)===t)?t:e.every(e=>b(l(e)))?"float":"mixed";}function O(e){let t=N(e);if("mixed"===t)throw n();return t;}function S(e){let t=O(e=a(e));var r="[",i=e.map(e=>g(e,t));return i.join(", ").length>60||/\n/.test(i)?r+="\n "+i.join(",\n ")+"\n":r+=" "+i.join(", ")+(i.length>0?" ":""),r+"]";}function T(e){e=a(e);var t=[];return Object.keys(e).forEach(r=>{t.push(u(r)+" = "+E(e[r],!1));}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}";}function R(e,t,r,n){var s=l(n);if("array"===s)return P(e,t,r,n);if("table"===s)return L(e,t,r,n);throw i(s);}function P(e,t,r,n){O(n=a(n));var s=l(n[0]);if("table"!==s)throw i(s);var o=e+u(r),c="";return n.forEach(e=>{c.length>0&&(c+="\n"),c+=t+"[["+o+"]]\n"+h(o+".",t,e);}),c;}function L(e,t,r,i){var n=e+u(r),o="";return s(i).length>0&&(o+=t+"["+n+"]\n"),o+h(n+".",t,i);}e.exports=r,e.exports.value=g;}),parcelRegister("4rCDr",function(e,t){var r,i,n,s;async function o(e,t,r){return r||(r=await a()),await i.findFromManifest(e,!1,r,t);}function a(){return r.debug(`Getting manifest from ${p}/${f}@${d}`),i.getManifestFromRepo(p,f,u,d);}async function h(e){let t={cwd:e,env:{...process.env,...(s.IS_LINUX&&{LD_LIBRARY_PATH:$e2xck$path.join(e,"lib")})},silent:!0,listeners:{stdout(e){r.info(e.toString().trim());},stderr(e){r.error(e.toString().trim());}}};s.IS_WINDOWS?await n.exec("powershell",["./setup.ps1"],t):await n.exec("bash",["./setup.sh"],t);}async function c(e){let t=e.files[0].download_url;r.info(`Download from "${t}"`);let n="";try{let e;n=await i.downloadTool(t,void 0,u),r.info("Extract downloaded archive"),e=s.IS_WINDOWS?await i.extractZip(n):await i.extractTar(n),r.info("Execute installation script"),await h(e);}catch(e){throw e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),e.stack&&r.debug(e.stack)),e;}}$parcel$export(e.exports,"MANIFEST_URL",()=>m),$parcel$export(e.exports,"findReleaseFromManifest",()=>o),$parcel$export(e.exports,"getManifest",()=>a),$parcel$export(e.exports,"installCpythonFromRelease",()=>c),r=parcelRequire("lUL8q"),i=parcelRequire("wMbNK"),n=parcelRequire("ioM8U"),s=parcelRequire("c6Y2q");let l=r.getInput("token"),u=l?"token "+l:void 0,p="actions",f="python-versions",d="main",m=`https://raw.githubusercontent.com/${p}/${f}/${d}/versions-manifest.json`;}),parcelRegister("wMbNK",function(e,t){function r(e,t,r,n){return R(this,void 0,void 0,function*(){t=t||F.join(I(),W.default()),yield D.mkdirP(F.dirname(t)),_.debug("Downloading "+e),_.debug("Destination "+t);let s=3,o=b("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),a=b("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),h=new A.RetryHelper(s,o,a);return yield h.execute(()=>R(this,void 0,void 0,function*(){return yield i(e,t||"",r,n);}),e=>!(e instanceof H)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});}function i(e,t,r,i){return R(this,void 0,void 0,function*(){if(M.existsSync(t))throw Error(`Destination file path ${t} already exists`);let n=new U.HttpClient(X,[],{allowRetries:!1});r&&(_.debug("set auth"),void 0===i&&(i={}),i.authorization=r);let s=yield n.get(e,i);if(200!==s.message.statusCode){let t=new H(s.message.statusCode);throw _.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),t;}let o=G.promisify(k.pipeline),a=b("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),h=!1;try{return yield o(a,M.createWriteStream(t)),_.debug("download complete"),h=!0,t;}finally{if(!h){_.debug("download failed");try{yield D.rmRF(t);}catch(e){_.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}function n(e,t,r){return R(this,void 0,void 0,function*(){$e2xck$assert.ok(B,"extract7z() not supported on current OS"),$e2xck$assert.ok(e,'parameter "file" is required'),t=yield y(t);let i=process.cwd();if(process.chdir(t),r)try{let t=_.isDebug()?"-bb1":"-bb0",i=["x",t,"-bd","-sccUTF-8",e],n={silent:!0};yield L.exec(`"${r}"`,i,n);}finally{process.chdir(i);}else{let r=F.join(C,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),n=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),s=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${r}' -Source '${n}' -Target '${s}'`],a={silent:!0};try{let e=yield D.which("powershell",!0);yield L.exec(`"${e}"`,o,a);}finally{process.chdir(i);}}return t;});}function s(e,t,r="xz"){return R(this,void 0,void 0,function*(){let i;if(!e)throw Error("parameter 'file' is required");t=yield y(t),_.debug("Checking tar --version");let n="";yield L.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>n+=e.toString(),stderr:e=>n+=e.toString()}}),_.debug(n.trim());let s=n.toUpperCase().includes("GNU TAR");i=r instanceof Array?r:[r],_.isDebug()&&!r.includes("v")&&i.push("-v");let o=t,a=e;return B&&s&&(i.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),s&&(i.push("--warning=no-unknown-keyword"),i.push("--overwrite")),i.push("-C",o,"-f",a),yield L.exec("tar",i),t;});}function o(e,t,r=[]){return R(this,void 0,void 0,function*(){let i;$e2xck$assert.ok(q,"extractXar() not supported on current OS"),$e2xck$assert.ok(e,'parameter "file" is required'),t=yield y(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),_.isDebug()&&i.push("-v");let n=yield D.which("xar",!0);return yield L.exec(`"${n}"`,N(i)),t;});}function a(e,t){return R(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield y(t),B?yield h(e,t):yield c(e,t),t;});}function h(e,t){return R(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=yield D.which("pwsh",!1);if(n){let e=["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else { throw $_ } } ;`];_.debug("Using pwsh at path: "+n),yield L.exec(`"${n}"`,e);}else{let e=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) }`],t=yield D.which("powershell",!0);_.debug("Using powershell at path: "+t),yield L.exec(`"${t}"`,e);}});}function c(e,t){return R(this,void 0,void 0,function*(){let r=yield D.which("unzip",!0),i=[e];_.isDebug()||i.unshift("-q"),i.unshift("-o"),yield L.exec(`"${r}"`,i,{cwd:t});});}function l(e,t,r,i){return R(this,void 0,void 0,function*(){if(r=V.clean(r)||r,i=i||j.arch(),_.debug(`Caching tool ${t} ${r} ${i}`),_.debug("source dir: "+e),!M.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let n=yield E(t,r,i);for(let t of M.readdirSync(e)){let r=F.join(e,t);yield D.cp(r,n,{recursive:!0});}return g(t,r,i),n;});}function u(e,t,r,i,n){return R(this,void 0,void 0,function*(){if(i=V.clean(i)||i,n=n||j.arch(),_.debug(`Caching tool ${r} ${i} ${n}`),_.debug("source file: "+e),!M.statSync(e).isFile())throw Error("sourceFile is not a file");let s=yield E(r,i,n),o=F.join(s,t);return _.debug("destination file "+o),yield D.cp(e,o),g(r,i,n),s;});}function p(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||j.arch(),w(t)||(t=x(f(e,r),t));let i="";if(t){t=V.clean(t)||"";let n=F.join(v(),e,t,r);_.debug("checking cache: "+n),M.existsSync(n)&&M.existsSync(`${n}.complete`)?(_.debug(`Found tool in cache ${e} ${t} ${r}`),i=n):_.debug("not found");}return i;}function f(e,t){let r=[];t=t||j.arch();let i=F.join(v(),e);if(M.existsSync(i)){for(let e of M.readdirSync(i))if(w(e)){let n=F.join(i,e,t||"");M.existsSync(n)&&M.existsSync(`${n}.complete`)&&r.push(e);}}return r;}function d(e,t,r,i="master"){return R(this,void 0,void 0,function*(){let n=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${i}`,o=new U.HttpClient("tool-cache"),a={};r&&(_.debug("set auth"),a.authorization=r);let h=yield o.getJson(s,a);if(!h.result)return n;let c="";for(let e of h.result.tree)if("versions-manifest.json"===e.path){c=e.url;break;}a.accept="application/vnd.github.VERSION.raw";let l=yield(yield o.get(c,a)).readBody();if(l){l=l.replace(/^\uFEFF/,"");try{n=JSON.parse(l);}catch(e){_.debug("Invalid json");}}return n;});}function m(e,t,r,i=j.arch()){return R(this,void 0,void 0,function*(){return yield $._findMatch(e,t,r,i);});}function y(e){return R(this,void 0,void 0,function*(){return e||(e=F.join(I(),W.default())),yield D.mkdirP(e),e;});}function E(e,t,r){return R(this,void 0,void 0,function*(){let i=F.join(v(),e,V.clean(t)||t,r||"");_.debug("destination "+i);let n=`${i}.complete`;return yield D.rmRF(i),yield D.rmRF(n),yield D.mkdirP(i),i;});}function g(e,t,r){let i=F.join(v(),e,V.clean(t)||t,r||""),n=`${i}.complete`;M.writeFileSync(n,""),_.debug("finished caching tool");}function w(e){let t=V.clean(e)||"";_.debug("isExplicit: "+t);let r=null!=V.valid(t);return _.debug("explicit? "+r),r;}function x(e,t){let r="";_.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>V.gt(e,t)?1:-1);for(let i=e.length-1;i>=0;i--){let n=e[i];if(V.satisfies(n,t)){r=n;break;}}return r?_.debug("matched: "+r):_.debug("match not found"),r;}function v(){let e=process.env.RUNNER_TOOL_CACHE||"";return $e2xck$assert.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function I(){let e=process.env.RUNNER_TEMP||"";return $e2xck$assert.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function b(e,t){let r=$parcel$global[e];return void 0!==r?r:t;}function N(e){return Array.from(new Set(e));}var O,S,T,R,P,L,A,C=$e2xck$path.resolve(__dirname,"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib");O=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),S=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),T=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&O(t,e,r);return S(t,e),t;},R=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},P=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.evaluateVersions=e.exports.isExplicitVersion=e.exports.findFromManifest=e.exports.getManifestFromRepo=e.exports.findAllVersions=e.exports.find=e.exports.cacheFile=e.exports.cacheDir=e.exports.extractZip=e.exports.extractXar=e.exports.extractTar=e.exports.extract7z=e.exports.downloadTool=e.exports.HTTPError=void 0;let _=T(parcelRequire("lUL8q")),D=T(parcelRequire("jGHPG")),M=T($e2xck$fs),$=T(parcelRequire("8YqHc")),j=T($e2xck$os),F=T($e2xck$path),U=T(parcelRequire("l6zH0")),V=T(parcelRequire("bD1rN")),k=T($e2xck$stream),G=T($e2xck$util),W=P(parcelRequire("lctVY"));L=parcelRequire("ioM8U"),A=parcelRequire("elhkM");class H extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}e.exports.HTTPError=H;let B="win32"===process.platform,q="darwin"===process.platform,X="actions/tool-cache";e.exports.downloadTool=r,e.exports.extract7z=n,e.exports.extractTar=s,e.exports.extractXar=o,e.exports.extractZip=a,e.exports.cacheDir=l,e.exports.cacheFile=u,e.exports.find=p,e.exports.findAllVersions=f,e.exports.getManifestFromRepo=d,e.exports.findFromManifest=m,e.exports.isExplicitVersion=w,e.exports.evaluateVersions=x;}),parcelRegister("8YqHc",function(e,t){var r,i,n,s,o;function a(t,r,i,n){return s(this,void 0,void 0,function*(){let s,a,h;let c=$e2xck$os.platform();for(let s of i){let i=s.version;if(o.debug(`check ${i} satisfies ${t}`),l.satisfies(i,t)&&(!r||s.stable===r)&&(h=s.files.find(t=>{o.debug(`${t.arch}===${n} && ${t.platform}===${c}`);let r=t.arch===n&&t.platform===c;if(r&&t.platform_version){let i=e.exports._getOsVersion();r=i===t.platform_version||l.satisfies(i,t.platform_version);}return r;}))){o.debug("matched "+s.version),a=s;break;}}return a&&h&&((s=Object.assign({},a)).files=[h]),s;});}function h(){let t=$e2xck$os.platform(),r="";if("darwin"===t)r=$e2xck$child_process.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;}function c(){let e="/etc/lsb-release",t="/etc/os-release",r="";return $e2xck$fs.existsSync(e)?r=$e2xck$fs.readFileSync(e).toString():$e2xck$fs.existsSync(t)&&(r=$e2xck$fs.readFileSync(t).toString()),r;}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),i=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t;},s=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let l=n(parcelRequire("bD1rN"));o=parcelRequire("lUL8q"),e.exports._findMatch=a,e.exports._getOsVersion=h,e.exports._readLinuxVersionFile=c;}),parcelRegister("bD1rN",function(e,t){function r(e){eh[e]=ec++;}function i(e){for(var t=0;tet||!(t.loose?eo[eh.LOOSE]:eo[eh.FULL]).test(e))return null;try{return new a(e,t);}catch(e){return null;}}function s(e,t){var r=n(e,t);return r?r.version:null;}function o(e,t){var r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null;}function a(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof a){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>et)throw TypeError("version is longer than "+et+" characters");if(!(this instanceof a))return new a(e,t);ee("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?eo[eh.LOOSE]:eo[eh.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>er||this.major<0)throw TypeError("Invalid major version");if(this.minor>er||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>er||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function u(e,t){return l(t,e);}function p(e,t){return new a(e,t).major;}function f(e,t){return new a(e,t).minor;}function d(e,t){return new a(e,t).patch;}function m(e,t,r){return new a(e,r).compare(new a(t,r));}function y(e,t){return m(e,t,!0);}function E(e,t,r){var i=new a(e,r),n=new a(t,r);return i.compare(n)||i.compareBuild(n);}function g(e,t,r){return m(t,e,r);}function w(e,r){return e.sort(function(e,i){return t.compareBuild(e,i,r);});}function x(e,r){return e.sort(function(e,i){return t.compareBuild(i,e,r);});}function v(e,t,r){return m(e,t,r)>0;}function I(e,t,r){return 0>m(e,t,r);}function b(e,t,r){return 0===m(e,t,r);}function N(e,t,r){return 0!==m(e,t,r);}function O(e,t,r){return m(e,t,r)>=0;}function S(e,t,r){return 0>=m(e,t,r);}function T(e,t,r,i){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return b(e,r,i);case"!=":return N(e,r,i);case">":return v(e,r,i);case">=":return O(e,r,i);case"<":return I(e,r,i);case"<=":return S(e,r,i);default:throw TypeError("Invalid operator: "+t);}}function R(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof R){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof R))return new R(e,t);e=e.trim().split(/\s+/).join(" "),ee("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ey?this.value="":this.value=this.operator+this.semver.version,ee("comp",this);}function P(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof P)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new P(e.raw,t);if(e instanceof R)return new P(e.value,t);if(!(this instanceof P))return new P(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function L(e,t){for(var r=!0,i=e.slice(),n=i.pop();r&&i.length;)r=i.every(function(e){return n.intersects(e,t);}),n=i.pop();return r;}function A(e,t){return new P(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});}function C(e,t){return ee("comp",e,t),e=$(e,t),ee("caret",e),e=D(e,t),ee("tildes",e),e=F(e,t),ee("xrange",e),e=V(e,t),ee("stars",e),e;}function _(e){return!e||"x"===e.toLowerCase()||"*"===e;}function D(e,t){return e.trim().split(/\s+/).map(function(e){return M(e,t);}).join(" ");}function M(e,t){var r=t.loose?eo[eh.TILDELOOSE]:eo[eh.TILDE];return e.replace(r,function(t,r,i,n,s){var o;return ee("tilde",e,t,r,i,n,s),_(r)?o="":_(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":_(n)?o=">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":s?(ee("replaceTilde pr",s),o=">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0"):o=">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0",ee("tilde return",o),o;});}function $(e,t){return e.trim().split(/\s+/).map(function(e){return j(e,t);}).join(" ");}function j(e,t){ee("caret",e,t);var r=t.loose?eo[eh.CARETLOOSE]:eo[eh.CARET];return e.replace(r,function(t,r,i,n,s){var o;return ee("caret",e,t,r,i,n,s),_(r)?o="":_(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":_(n)?o="0"===r?">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":">="+r+"."+i+".0 <"+(+r+1)+".0.0":s?(ee("replaceCaret pr",s),o="0"===r?"0"===i?">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+"-"+s+" <"+(+r+1)+".0.0"):(ee("no pr"),o="0"===r?"0"===i?">="+r+"."+i+"."+n+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+" <"+(+r+1)+".0.0"),ee("caret return",o),o;});}function F(e,t){return ee("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return U(e,t);}).join(" ");}function U(e,t){e=e.trim();var r=t.loose?eo[eh.XRANGELOOSE]:eo[eh.XRANGE];return e.replace(r,function(r,i,n,s,o,a){ee("xRange",e,r,i,n,s,o,a);var h=_(n),c=h||_(s),l=c||_(o),u=l;return"="===i&&u&&(i=""),a=t.includePrerelease?"-0":"",h?r=">"===i||"<"===i?"<0.0.0-0":"*":i&&u?(c&&(s=0),o=0,">"===i?(i=">=",c?(n=+n+1,s=0):s=+s+1,o=0):"<="===i&&(i="<",c?n=+n+1:s=+s+1),r=i+n+"."+s+"."+o+a):c?r=">="+n+".0.0"+a+" <"+(+n+1)+".0.0"+a:l&&(r=">="+n+"."+s+".0"+a+" <"+n+"."+(+s+1)+".0"+a),ee("xRange return",r),r;});}function V(e,t){return ee("replaceStars",e,t),e.trim().replace(eo[eh.STAR],"");}function k(e,t,r,i,n,s,o,a,h,c,l,u,p){return((t=_(r)?"":_(i)?">="+r+".0.0":_(n)?">="+r+"."+i+".0":">="+t)+" "+(a=_(h)?"":_(c)?"<"+(+h+1)+".0.0":_(l)?"<"+h+"."+(+c+1)+".0":u?"<="+h+"."+c+"."+l+"-"+u:"<="+a)).trim();}function G(e,t,r){for(var i=0;i0){var n=e[i].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;}function W(e,t,r){try{t=new P(t,r);}catch(e){return!1;}return t.test(e);}function H(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||-1===n.compare(e))&&(n=new a(i=e,r));}),i;}function B(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||1===n.compare(e))&&(n=new a(i=e,r));}),i;}function q(e,t){e=new P(e,t);var r=new a("0.0.0");if(e.test(r)||(r=new a("0.0.0-0"),e.test(r)))return r;r=null;for(var i=0;i":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||v(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;}function X(e,t){try{return new P(e,t).range||"*";}catch(e){return null;}}function Y(e,t,r){return Z(e,t,"<",r);}function K(e,t,r){return Z(e,t,">",r);}function Z(e,t,r,i){switch(e=new a(e,i),t=new P(t,i),r){case">":n=v,s=S,o=I,h=">",c=">=";break;case"<":n=I,s=O,o=v,h="<",c="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(W(e,t,i))return!1;for(var n,s,o,h,c,l=0;l=0.0.0")),p=p||e,f=f||e,n(e.semver,p.semver,i)?p=e:o(e.semver,f.semver,i)&&(f=e);}),p.operator===h||p.operator===c||(!f.operator||f.operator===h)&&s(e,f.semver)||f.operator===c&&o(e,f.semver))return!1;}return!0;}function z(e,t){var r=n(e,t);return r&&r.prerelease.length?r.prerelease:null;}function J(e,t,r){return e=new P(e,r),t=new P(t,r),e.intersects(t);}function Q(e,t){if(e instanceof a)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,i=null;if((t=t||{}).rtl){for(;(r=eo[eh.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),eo[eh.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;eo[eh.COERCERTL].lastIndex=-1;}else i=e.match(eo[eh.COERCE]);return null===i?null:n(i[2]+"."+(i[3]||"0")+"."+(i[4]||"0"),t);}t=e.exports=a,ee="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",et=256,er=Number.MAX_SAFE_INTEGER||9007199254740991,ei=16,en=et-6,es=t.re=[],eo=t.safeRe=[],ea=t.src=[],eh=t.tokens={},ec=0,eu=[["\\s",1],["\\d",et],[el="[a-zA-Z0-9-]",en]],r("NUMERICIDENTIFIER"),ea[eh.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),ea[eh.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),ea[eh.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+el+"*",r("MAINVERSION"),ea[eh.MAINVERSION]="("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),ea[eh.MAINVERSIONLOOSE]="("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),ea[eh.PRERELEASEIDENTIFIER]="(?:"+ea[eh.NUMERICIDENTIFIER]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),ea[eh.PRERELEASEIDENTIFIERLOOSE]="(?:"+ea[eh.NUMERICIDENTIFIERLOOSE]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),ea[eh.PRERELEASE]="(?:-("+ea[eh.PRERELEASEIDENTIFIER]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),ea[eh.PRERELEASELOOSE]="(?:-?("+ea[eh.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),ea[eh.BUILDIDENTIFIER]=el+"+",r("BUILD"),ea[eh.BUILD]="(?:\\+("+ea[eh.BUILDIDENTIFIER]+"(?:\\."+ea[eh.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),ea[eh.FULLPLAIN]="v?"+ea[eh.MAINVERSION]+ea[eh.PRERELEASE]+"?"+ea[eh.BUILD]+"?",ea[eh.FULL]="^"+ea[eh.FULLPLAIN]+"$",r("LOOSEPLAIN"),ea[eh.LOOSEPLAIN]="[v=\\s]*"+ea[eh.MAINVERSIONLOOSE]+ea[eh.PRERELEASELOOSE]+"?"+ea[eh.BUILD]+"?",r("LOOSE"),ea[eh.LOOSE]="^"+ea[eh.LOOSEPLAIN]+"$",r("GTLT"),ea[eh.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),ea[eh.XRANGEIDENTIFIERLOOSE]=ea[eh.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),ea[eh.XRANGEIDENTIFIER]=ea[eh.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),ea[eh.XRANGEPLAIN]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:"+ea[eh.PRERELEASE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),ea[eh.XRANGEPLAINLOOSE]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:"+ea[eh.PRERELEASELOOSE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGE"),ea[eh.XRANGE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAIN]+"$",r("XRANGELOOSE"),ea[eh.XRANGELOOSE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAINLOOSE]+"$",r("COERCE"),ea[eh.COERCE]="(^|[^\\d])(\\d{1,"+ei+"})(?:\\.(\\d{1,"+ei+"}))?(?:\\.(\\d{1,"+ei+"}))?(?:$|[^\\d])",r("COERCERTL"),es[eh.COERCERTL]=RegExp(ea[eh.COERCE],"g"),eo[eh.COERCERTL]=RegExp(i(ea[eh.COERCE]),"g"),r("LONETILDE"),ea[eh.LONETILDE]="(?:~>?)",r("TILDETRIM"),ea[eh.TILDETRIM]="(\\s*)"+ea[eh.LONETILDE]+"\\s+",es[eh.TILDETRIM]=RegExp(ea[eh.TILDETRIM],"g"),eo[eh.TILDETRIM]=RegExp(i(ea[eh.TILDETRIM]),"g"),ep="$1~",r("TILDE"),ea[eh.TILDE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAIN]+"$",r("TILDELOOSE"),ea[eh.TILDELOOSE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAINLOOSE]+"$",r("LONECARET"),ea[eh.LONECARET]="(?:\\^)",r("CARETTRIM"),ea[eh.CARETTRIM]="(\\s*)"+ea[eh.LONECARET]+"\\s+",es[eh.CARETTRIM]=RegExp(ea[eh.CARETTRIM],"g"),eo[eh.CARETTRIM]=RegExp(i(ea[eh.CARETTRIM]),"g"),ef="$1^",r("CARET"),ea[eh.CARET]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAIN]+"$",r("CARETLOOSE"),ea[eh.CARETLOOSE]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),ea[eh.COMPARATORLOOSE]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),ea[eh.COMPARATOR]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),ea[eh.COMPARATORTRIM]="(\\s*)"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+"|"+ea[eh.XRANGEPLAIN]+")",es[eh.COMPARATORTRIM]=RegExp(ea[eh.COMPARATORTRIM],"g"),eo[eh.COMPARATORTRIM]=RegExp(i(ea[eh.COMPARATORTRIM]),"g"),ed="$1$2$3",r("HYPHENRANGE"),ea[eh.HYPHENRANGE]="^\\s*("+ea[eh.XRANGEPLAIN]+")\\s+-\\s+("+ea[eh.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),ea[eh.HYPHENRANGELOOSE]="^\\s*("+ea[eh.XRANGEPLAINLOOSE]+")\\s+-\\s+("+ea[eh.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),ea[eh.STAR]="(<|>)?=?\\s*\\*";for(var ee,et,er,ei,en,es,eo,ea,eh,ec,el,eu,ep,ef,ed,em,ey,eE=0;eE=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=h,t.diff=c,t.compareIdentifiers=l,em=/^[0-9]+$/,t.rcompareIdentifiers=u,t.major=p,t.minor=f,t.patch=d,t.compare=m,t.compareLoose=y,t.compareBuild=E,t.rcompare=g,t.sort=w,t.rsort=x,t.gt=v,t.lt=I,t.eq=b,t.neq=N,t.gte=O,t.lte=S,t.cmp=T,t.Comparator=R,ey={},R.prototype.parse=function(e){var t=this.options.loose?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new a(r[2],this.options.loose):this.semver=ey;},R.prototype.toString=function(){return this.value;},R.prototype.test=function(e){if(ee("Comparator.test",e,this.options.loose),this.semver===ey||e===ey)return!0;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}return T(e,this.operator,this.semver,this.options);},R.prototype.intersects=function(e,t){if(!(e instanceof R))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new P(e.value,t),W(this.value,r,t));if(""===e.operator)return""===e.value||(r=new P(this.value,t),W(e.semver,r,t));var r,i=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),n=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),s=this.semver.version===e.semver.version,o=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),a=T(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),h=T(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||n||s&&o||a||h;},t.Range=P,P.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},P.prototype.toString=function(){return this.range;},P.prototype.parseRange=function(e){var t=this.options.loose,r=t?eo[eh.HYPHENRANGELOOSE]:eo[eh.HYPHENRANGE];e=e.replace(r,k),ee("hyphen replace",e),e=e.replace(eo[eh.COMPARATORTRIM],ed),ee("comparator trim",e,eo[eh.COMPARATORTRIM]),e=(e=(e=e.replace(eo[eh.TILDETRIM],ep)).replace(eo[eh.CARETTRIM],ef)).split(/\s+/).join(" ");var i=t?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],n=e.split(" ").map(function(e){return C(e,this.options);},this).join(" ").split(/\s+/);return this.options.loose&&(n=n.filter(function(e){return!!e.match(i);})),n=n.map(function(e){return new R(e,this.options);},this);},P.prototype.intersects=function(e,t){if(!(e instanceof P))throw TypeError("a Range is required");return this.set.some(function(r){return L(r,t)&&e.set.some(function(e){return L(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=A,P.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}for(var t=0;tthis.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return s(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}}e.exports.RetryHelper=a;}),parcelRegister("j3bdl",function(e,t){var r,i,n,s,o;async function a(e,t,n,o,a){let l,u,p="",f="",d=c(e);if(o&&(u=await r.getAvailablePyPyVersions())&&u.length>0){let e=r.findRelease(u,d.pythonVersion,d.pypyVersion,t,!1);e?(s.info(`Resolved as PyPy ${e.resolvedPyPyVersion} with Python (${e.resolvedPythonVersion})`),d.pythonVersion=e.resolvedPythonVersion,d.pypyVersion=e.resolvedPyPyVersion):s.info(`Failed to resolve PyPy ${d.pypyVersion} with Python (${d.pythonVersion}) from manifest`);}({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=h(d.pythonVersion,d.pypyVersion,t)),l||({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=await r.installPyPy(d.pypyVersion,d.pythonVersion,t,a,u));let m=i.IS_WINDOWS?"Scripts":"bin",y=$e2xck$path.join(l,m),E=i.IS_WINDOWS?".exe":"",g=$e2xck$path.join(i.IS_WINDOWS?l:y,"python"+E),w=r.getPyPyBinaryPath(l);return n&&(s.exportVariable("pythonLocation",l),s.exportVariable("Python_ROOT_DIR",l),s.exportVariable("Python2_ROOT_DIR",l),s.exportVariable("Python3_ROOT_DIR",l),s.exportVariable("PKG_CONFIG_PATH",w+"/lib/pkgconfig"),s.addPath(w),s.addPath(y)),s.setOutput("python-version","pypy"+p),s.setOutput("python-path",g),{resolvedPyPyVersion:p,resolvedPythonVersion:f};}function h(e,t,r){let a="",h="",c=i.IS_WINDOWS?l(e):o.find("PyPy",e,r);return c&&(h=(0,i.getPyPyVersionFromPath)(c),a=(0,i.readExactPyPyVersionFile)(c),n.satisfies(a,t)||(c=null,a="",h="")),c||s.info(`PyPy version ${e} (${t}) was not found in the local cache`),{installDir:c,resolvedPythonVersion:h,resolvedPyPyVersion:a};}function c(e){let t;let n=e.split("-").filter(e=>!!e);if(/^(pypy)(.+)/.test(n[0])){let e=n[0].replace("pypy","");n.splice(0,1,"pypy",e);}if(n.length<2||"pypy"!=n[0])throw Error("Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.");let s=n[1];if(t=n.length>2?r.pypyVersionToSemantic(n[2]):"x",!(0,i.validateVersion)(s)||!(0,i.validateVersion)(t))throw Error("Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.");if(!(0,i.validatePythonVersionFormatForPyPy)(s))throw Error("Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.");return{pypyVersion:t,pythonVersion:s};}function l(e){let t="";return(0,i.WINDOWS_ARCHS).forEach(r=>t=t||o.find("PyPy",e,r)),t;}$parcel$export(e.exports,"findPyPyVersion",()=>a),r=parcelRequire("fujKW"),i=parcelRequire("c6Y2q"),n=parcelRequire("24j9d"),s=parcelRequire("lUL8q"),o=parcelRequire("wMbNK");}),parcelRegister("fujKW",function(e,t){var r,i,n,s,o,a;async function h(e,t,n,s,o){let h;if(!(o=o??(await c()))||0===o.length)throw Error("No release was found in PyPy version.json");let d=p(o,t,e,n,!1);if(!s||d&&d.foundAsset||(r.info([`Stable PyPy version ${t} (${e}) with arch ${n} not found`,"Trying pre-release versions"].join($e2xck$os.EOL)),d=p(o,t,e,n,!0)),!d||!d.foundAsset)throw Error(`PyPy version ${t} (${e}) with arch ${n} not found`);let{foundAsset:m,resolvedPythonVersion:y,resolvedPyPyVersion:E}=d,g=""+m.download_url;r.info(`Downloading PyPy from "${g}" ...`);try{let e=await i.downloadTool(g);r.info("Extracting downloaded archive..."),h=a.IS_WINDOWS?await i.extractZip(e):await i.extractTar(e,void 0,"x");let t=$parcel$interopDefault($e2xck$fs).readdirSync(h)[0],s=$e2xck$path.join(h,t),o=s;(0,a.isNightlyKeyword)(E)||(o=await i.cacheDir(s,"PyPy",y,n)),(0,a.writeExactPyPyVersionFile)(o,E);let c=f(o);return await l(c,y),await u(c),{installDir:o,resolvedPythonVersion:y,resolvedPyPyVersion:E};}catch(e){throw e instanceof Error&&(e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode)?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),void 0!==e.stack&&r.debug(e.stack)),e;}}async function c(){let e="https://downloads.python.org/pypy/versions.json",t=new s.HttpClient("tool-cache"),r=await t.getJson(e);if(!r.result)throw Error(`Unable to retrieve the list of available PyPy versions from '${e}'`);return r.result;}async function l(e,t){let i=n.coerce(t),s=n.major(i),o=n.minor(i),h=2===s?"":"3",c=`${s}.${o}`,l=a.IS_WINDOWS?".exe":"";r.info("Creating symlinks..."),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`python${s}${l}`,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,"python"+l,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`pypy${c}${l}`,!0);}async function u(e){r.info("Installing and updating pip");let t=$e2xck$path.join(e,"python");await o.exec(`${t} -m ensurepip`),await o.exec(`${e}/python -m pip install --ignore-installed pip`);}function p(e,t,r,i,s){let o={includePrerelease:s},h=e.filter(e=>{let s=n.satisfies(n.coerce(e.python_version),t),h=(0,a.isNightlyKeyword)(r)&&(0,a.isNightlyKeyword)(e.pypy_version)||n.satisfies(d(e.pypy_version),r,o),c=e.files&&(a.IS_WINDOWS?m(e,i):y(e,i,process.platform));return s&&h&&c;});if(0===h.length)return null;let c=h.sort((e,t)=>n.compare(n.coerce(d(t.pypy_version)),n.coerce(d(e.pypy_version)))||n.compare(n.coerce(t.python_version),n.coerce(e.python_version)))[0];return{foundAsset:a.IS_WINDOWS?E(c,i):g(c,i,process.platform),resolvedPythonVersion:c.python_version,resolvedPyPyVersion:c.pypy_version.trim()};}function f(e){let t=$e2xck$path.join(e,"bin");return a.IS_WINDOWS?e:t;}function d(e){let t=/(\d+\.\d+\.\d+)((?:a|b|rc))(\d*)/g;return e.replace(t,"$1-$2.$3");}function m(e,t){return t=w(t),e.files.some(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function y(e,t,r){return e.files.some(e=>e.arch===t&&e.platform===r);}function E(e,t){return t=w(t),e.files.find(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function g(e,t,r){return e.files.find(e=>e.arch===t&&e.platform===r);}function w(e){return"x32"===e&&(e="x86"),e;}$parcel$export(e.exports,"installPyPy",()=>h),$parcel$export(e.exports,"getAvailablePyPyVersions",()=>c),$parcel$export(e.exports,"findRelease",()=>p),$parcel$export(e.exports,"getPyPyBinaryPath",()=>f),$parcel$export(e.exports,"pypyVersionToSemantic",()=>d),r=parcelRequire("lUL8q"),i=parcelRequire("wMbNK"),n=parcelRequire("24j9d"),s=parcelRequire("l6zH0"),o=parcelRequire("ioM8U"),a=parcelRequire("c6Y2q");}); -//# sourceMappingURL=actions_python.f93740c6.js.map \ No newline at end of file diff --git a/dist/actions/actions_python.f93740c6.js.map b/dist/actions/actions_python.f93740c6.js.map deleted file mode 100644 index 6f63ebba..00000000 --- a/dist/actions/actions_python.f93740c6.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"actions_python.f93740c6.js","names":["u","e","startsWith","p","t","o","h","IS_MAC","process","env","AGENT_TOOLSDIRECTORY","c","trim","RUNNER_TOOL_CACHE","s","debug","r","i","findPyPyVersion","d","resolvedPyPyVersion","resolvedPythonVersion","n","info","useCpythonVersion","version","impl","a","GITHUB_ACTIONS","f","join","l","pathExists","warning","IS_WINDOWS","$e2xck$path","m","getManifest","findReleaseFromManifest","y","find","files","length","installCpythonFromRelease","getOSInfo","Error","osName","osVersion","MANIFEST_URL","$e2xck$os","EOL","E","g","w","exportVariable","IS_LINUX","LD_LIBRARY_PATH","split","includes","addPath","basename","dirname","major","minor","APPDATA","x","setOutput","replace","sep","findIndex","$parcel$interopDefault","$e2xck$fs","existsSync","symlinkSync","chmodSync","validRange","v","readFileSync","toString","writeFileSync","test","stdout","getExecOutput","silent","message","parcelRequire","platform","exports","async","stream","prettyError","$parcel$global","Buffer","isBuffer","parse","finish","_custom","isDigit","CHAR_0","CHAR_9","isHexit","CHAR_A","CHAR_F","CHAR_a","CHAR_f","isBit","CHAR_1","isOctit","CHAR_7","isAlphaNumQuoteHyphen","CHAR_Z","CHAR_z","CHAR_APOS","CHAR_QUOT","CHAR_LOWBAR","CHAR_HYPHEN","isAlphaNumHyphen","hasKey","hasOwnProperty","call","defineProperty","descriptor","InlineTable","Object","defineProperties","_type","value","INLINE_TABLE","isInlineTable","Table","TABLE","_declared","writable","isTable","InlineList","INLINE_LIST","_contentType","isInlineList","List","LIST","isList","Integer","is","BigInt","Number","isSafeInteger","BoxedBigInt","isNaN","INTEGER","_inspect","isInteger","Float","FLOAT","isFloat","tomlType","Date","makeParserClass","constructor","ctx","obj","atEndOfWord","char","CHAR_NUM","CTRL_I","CHAR_SP","atEndOfLine","END","CTRL_J","CTRL_M","parseStart","CHAR_LSQB","parseTableOrList","parseComment","callNow","parseAssignStatement","error","TomlError","parseWhitespaceToEOL","goto","return","parseAssign","recordAssignStatement","key","pop","valueOf","parseKeyword","recordAssignKeyword","state","resultTable","push","parseAssignKeywordPreDot","CHAR_PERIOD","next","parseAssignKeywordPostDot","parseAssignEqual","CHAR_EQUALS","parseAssignPreValue","parseValue","recordAssignValue","returnNow","nextChar","parseTable","parseList","parseTableNext","parseTableMore","CHAR_RSQB","parseListNext","parseListMore","parseListEnd","parseDoubleString","parseSingleString","CHAR_PLUS","parseNumberSign","CHAR_i","parseInf","CHAR_n","parseNan","parseNumberOrDateTime","CHAR_t","parseBoolean","parseInlineList","recordValue","CHAR_LCUB","parseInlineTable","parseInf2","buf","parseNan2","NaN","parseBasicString","parseLiteralString","parseBareKey","consume","parseLiteralMultiStringMaybe","CHAR_DEL","CTRL_CHAR_BOUNDARY","errorControlCharInString","parseLiteralMultiString","parseLiteralMultiStringContent","parseLiteralMultiEnd","parseLiteralMultiEnd2","parseMultiStringMaybe","CHAR_BSOL","parseEscape","recordEscapeReplacement","parseMultiString","parseMultiStringContent","parseMultiEscape","recordMultiEscapeReplacement","parseMultiEnd","parseMultiEnd2","parseMultiTrim","parsePreMultiTrim","escapes","CHAR_u","parseSmallUnicode","parseUnicodeReturn","CHAR_U","parseLargeUnicode","parseInt","SURROGATE_FIRST","SURROGATE_LAST","String","fromCodePoint","wrap","parseMaybeSignedInfOrNan","parseNoUnder","parseNumberIntegerStart","parseNumberIntegerExponentOrDecimal","parseNumberInteger","parseNumberFloat","CHAR_E","CHAR_e","parseNumberExponentSign","parseNoUnderHexOctBinLiteral","parseNumberExponent","parseNumberBaseOrDateTime","parseNumberOrDateTimeOnly","parseDateTime","CHAR_COLON","parseOnlyTimeHour","parseDateTimeOnly","CHAR_b","parseIntegerBin","CHAR_o","parseIntegerOct","CHAR_x","parseIntegerHex","result","parseDateMonth","parseDateDay","CHAR_T","parseStartTimeHour","$7EgKF","parseTimeHour","parseTimeMin","parseTimeSec","parseTimeZoneOrFraction","parseOnlyTimeMin","parseOnlyTimeSec","parseOnlyTimeFractionMaybe","$9WIdb","parseOnlyTimeFraction","parseDateTimeFraction","parseTimeZoneHour","$8CCFi","$5kLdF","parseTimeZoneSep","parseTimeZoneMin","parseTrue_r","parseFalse_a","CHAR_r","parseTrue_u","parseTrue_e","parseFalse_l","CHAR_l","parseFalse_s","CHAR_s","parseFalse_e","resultArr","recordInlineListValue","parseInlineListNext","CHAR_COMMA","CHAR_RCUB","recordInlineTableValue","parseInlineTableNext","module","name","captureStackTrace","fromTOML","wrapped","code","Symbol","prototype","configurable","enumerable","utilInspect","eval","custom","_","asIntN","parser","returned","pos","col","line","stack","_buf","ii","runOne","codePointAt","haveBuffer","JSON","stringify","TypeError","isFloating","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","isDate","isTime","Math","min","max","slice","setImmediate","blocksize","Promise","setEncoding","read","once","$e2xck$stream","Transform","objectMode","transform","emit","flush","toJSON","keys","filter","Array","isArray","forEach","R","map","I","S","T","b","N","every","O","P","L","findFromManifest","getManifestFromRepo","cwd","listeners","stderr","exec","download_url","downloadTool","extractZip","extractTar","HTTPError","httpStatusCode","getInput","F","W","default","D","mkdirP","A","RetryHelper","execute","H","M","U","HttpClient","X","allowRetries","authorization","get","statusCode","statusMessage","G","promisify","k","pipeline","createWriteStream","rmRF","$e2xck$assert","ok","B","chdir","isDebug","C","which","ignoreReturnCode","toUpperCase","q","unshift","V","clean","j","arch","statSync","isDirectory","readdirSync","cp","recursive","isFile","getJson","tree","path","url","accept","readBody","$","_findMatch","valid","sort","gt","satisfies","RUNNER_TEMP","from","Set","$e2xck$util","setPrototypeOf","new","target","extract7z","extractXar","cacheDir","cacheFile","findAllVersions","isExplicitVersion","evaluateVersions","stable","platform_version","_getOsVersion","assign","$e2xck$child_process","execSync","_readLinuxVersionFile","eh","ec","eu","loose","includePrerelease","et","eo","LOOSE","FULL","ee","options","match","raw","patch","er","prerelease","build","format","inc","em","compare","compareBuild","semver","ey","operator","set","parseRange","intersects","toLowerCase","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","range","Y","Z","K","z","J","Q","rtl","COERCERTL","index","lastIndex","COERCE","NODE_DEBUG","arguments","console","log","apply","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","ei","en","es","re","safeRe","ea","src","tokens","el","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","LOOSEPLAIN","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","RegExp","LONETILDE","TILDETRIM","ep","LONECARET","CARETTRIM","ef","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","ed","HYPHENRANGE","HYPHENRANGELOOSE","eE","SemVer","compareMain","comparePre","diff","compareIdentifiers","rcompareIdentifiers","compareLoose","rcompare","rsort","lt","eq","neq","gte","lte","cmp","Comparator","Range","some","toComparators","maxSatisfying","minSatisfying","minVersion","ltr","gtr","outside","coerce","random","rng","$e2xck$crypto","randomBytes","substr","maxAttempts","minSeconds","floor","maxSeconds","getSleepAmount","sleep","setTimeout","getAvailablePyPyVersions","findRelease","pythonVersion","pypyVersion","installDir","installPyPy","getPyPyBinaryPath","getPyPyVersionFromPath","readExactPyPyVersionFile","splice","pypyVersionToSemantic","validateVersion","validatePythonVersionFormatForPyPy","WINDOWS_ARCHS","foundAsset","isNightlyKeyword","writeExactPyPyVersionFile","createSymlinkInFolder","python_version","pypy_version","WINDOWS_PLATFORMS"],"sources":["../../","../../src/python/actions_python.ts","../../node_modules/setup-python/src/find-python.ts","../../node_modules/setup-python/src/utils.ts","../../node_modules/@iarna/toml/toml.js","../../node_modules/@iarna/toml/parse.js","../../node_modules/@iarna/toml/parse-string.js","../../node_modules/@iarna/toml/lib/toml-parser.js","../../node_modules/@iarna/toml/lib/parser.js","../../node_modules/@iarna/toml/lib/create-datetime.js","../../node_modules/@iarna/toml/lib/create-datetime-float.js","../../node_modules/@iarna/toml/lib/format-num.js","../../node_modules/@iarna/toml/lib/create-date.js","../../node_modules/@iarna/toml/lib/create-time.js","../../node_modules/@iarna/toml/parse-pretty-error.js","../../node_modules/@iarna/toml/parse-async.js","../../node_modules/@iarna/toml/parse-stream.js","../../node_modules/@iarna/toml/stringify.js","../../node_modules/setup-python/src/install-python.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/setup-python/node_modules/uuid/v4.js","../../node_modules/setup-python/node_modules/uuid/lib/rng.js","../../node_modules/setup-python/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/retry-helper.ts","../../node_modules/setup-python/src/find-pypy.ts","../../node_modules/setup-python/src/install-pypy.ts"],"sourcesContent":["var $e2xck$path = require(\"path\");\nvar $e2xck$os = require(\"os\");\nvar $e2xck$fs = require(\"fs\");\nvar $e2xck$stream = require(\"stream\");\nvar $e2xck$util = require(\"util\");\nvar $e2xck$assert = require(\"assert\");\nvar $e2xck$child_process = require(\"child_process\");\nvar $e2xck$crypto = require(\"crypto\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire810d\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"i1n7v\", function(module, exports) {\n\n$parcel$export(module.exports, \"setupActionsPython\", () => $676cd4a2b6f9e8d7$export$5655ebf4048b68d5);\n\nvar $hdVmr = parcelRequire(\"hdVmr\");\n\nvar $j3bdl = parcelRequire(\"j3bdl\");\n\nvar $g0Mwp = parcelRequire(\"g0Mwp\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $e19ul = parcelRequire(\"e19ul\");\n\nvar $l5aZl = parcelRequire(\"l5aZl\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $6afW1 = parcelRequire(\"6afW1\");\n\nvar $676cd4a2b6f9e8d7$var$$parcel$__dirname = $e2xck$path.resolve(__dirname, \"../../src/python\");\nfunction $676cd4a2b6f9e8d7$var$isPyPyVersion(versionSpec) {\n return versionSpec.startsWith(\"pypy\");\n}\nconst $676cd4a2b6f9e8d7$var$checkLatest = false;\nasync function $676cd4a2b6f9e8d7$export$5655ebf4048b68d5(version, _setupDir, arch) {\n if (0, $c6Y2q.IS_MAC) process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\";\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim();\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY;\n (0, $lUL8q.debug)(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`);\n if (version) {\n let pythonVersion;\n if ($676cd4a2b6f9e8d7$var$isPyPyVersion(version)) {\n const installed = await (0, $j3bdl.findPyPyVersion)(version, arch, true, $676cd4a2b6f9e8d7$var$checkLatest, false);\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;\n (0, $g0Mwp.info)(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`);\n } else {\n const installed = await (0, $hdVmr.useCpythonVersion)(version, arch, true, $676cd4a2b6f9e8d7$var$checkLatest, false);\n pythonVersion = installed.version;\n (0, $g0Mwp.info)(`Successfully set up ${installed.impl} (${pythonVersion})`);\n }\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n if (0, $l5aZl.GITHUB_ACTIONS) await $676cd4a2b6f9e8d7$var$addPythonLoggingMatcher();\n return undefined;\n}\nasync function $676cd4a2b6f9e8d7$var$addPythonLoggingMatcher() {\n const matcherPath = (0, $e19ul.join)($676cd4a2b6f9e8d7$var$$parcel$__dirname, \"python_matcher.json\");\n if (!await (0, $6afW1.pathExists)(matcherPath)) return (0, $g0Mwp.warning)(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\");\n (0, $g0Mwp.info)(`::add-matcher::${matcherPath}`);\n}\n\n});\nparcelRegister(\"hdVmr\", function(module, exports) {\n\n$parcel$export(module.exports, \"useCpythonVersion\", () => $48b0364923ab7341$export$c90655100676e173);\n\n\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $4rCDr = parcelRequire(\"4rCDr\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\nfunction $48b0364923ab7341$var$binDir(installDir) {\n if (0, $c6Y2q.IS_WINDOWS) return $e2xck$path.join(installDir, \"Scripts\");\n else return $e2xck$path.join(installDir, \"bin\");\n}\nasync function $48b0364923ab7341$export$c90655100676e173(version, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let manifest = null;\n const desugaredVersionSpec = $48b0364923ab7341$var$desugarDevVersion(version);\n let semanticVersionSpec = $48b0364923ab7341$export$2630b06843feee21(desugaredVersionSpec, allowPreReleases);\n $lUL8q.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n if (checkLatest) {\n manifest = await $4rCDr.getManifest();\n const resolvedVersion = (await $4rCDr.findReleaseFromManifest(semanticVersionSpec, architecture, manifest))?.version;\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n $lUL8q.info(`Resolved as '${semanticVersionSpec}'`);\n } else $lUL8q.info(`Failed to resolve version ${semanticVersionSpec} from manifest`);\n }\n let installDir = $wMbNK.find(\"Python\", semanticVersionSpec, architecture);\n if (!installDir) {\n $lUL8q.info(`Version ${semanticVersionSpec} was not found in the local cache`);\n const foundRelease = await $4rCDr.findReleaseFromManifest(semanticVersionSpec, architecture, manifest);\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n $lUL8q.info(`Version ${semanticVersionSpec} is available for downloading`);\n await $4rCDr.installCpythonFromRelease(foundRelease);\n installDir = $wMbNK.find(\"Python\", semanticVersionSpec, architecture);\n }\n }\n if (!installDir) {\n const osInfo = await (0, $c6Y2q.getOSInfo)();\n throw new Error([\n `The version '${version}' with architecture '${architecture}' was not found for ${osInfo ? `${osInfo.osName} ${osInfo.osVersion}` : \"this operating system\"}.`,\n `The list of all available versions can be found here: ${$4rCDr.MANIFEST_URL}`\n ].join($e2xck$os.EOL));\n }\n const _binDir = $48b0364923ab7341$var$binDir(installDir);\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $e2xck$path.join((0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n if (updateEnvironment) {\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $lUL8q.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $lUL8q.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $lUL8q.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n if (0, $c6Y2q.IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH ? `:${process.env.LD_LIBRARY_PATH}` : \"\";\n const pyLibPath = $e2xck$path.join(installDir, \"lib\");\n if (!libPath.split(\":\").includes(pyLibPath)) $lUL8q.exportVariable(\"LD_LIBRARY_PATH\", pyLibPath + libPath);\n }\n $lUL8q.addPath(installDir);\n $lUL8q.addPath(_binDir);\n if (0, $c6Y2q.IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = $e2xck$path.basename($e2xck$path.dirname(installDir));\n const major = $24j9d.major(version);\n const minor = $24j9d.minor(version);\n const userScriptsDir = $e2xck$path.join(process.env[\"APPDATA\"] || \"\", \"Python\", `Python${major}${minor}`, \"Scripts\");\n $lUL8q.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n const installed = $48b0364923ab7341$var$versionFromPath(installDir);\n $lUL8q.setOutput(\"python-version\", installed);\n $lUL8q.setOutput(\"python-path\", pythonPath);\n return {\n impl: \"CPython\",\n version: installed\n };\n}\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */ function $48b0364923ab7341$var$desugarDevVersion(versionSpec) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, \"~$1.$2.0-0\");\n}\n/** Extracts python version from install path from hosted tool cache as described in README.md */ function $48b0364923ab7341$var$versionFromPath(installDir) {\n const parts = installDir.split($e2xck$path.sep);\n const idx = parts.findIndex((part)=>part === \"PyPy\" || part === \"Python\");\n return parts[idx + 1] || \"\";\n}\nfunction $48b0364923ab7341$export$2630b06843feee21(versionSpec, allowPreReleases) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, \"$1-$2\");\n if (allowPreReleases) result = result.replace(majorMinor, \"~$1.$2.0-0\");\n return result;\n}\n\n});\nparcelRegister(\"c6Y2q\", function(module, exports) {\n\n$parcel$export(module.exports, \"IS_WINDOWS\", () => $4a2853942588b24c$export$82633ee808573685);\n$parcel$export(module.exports, \"IS_LINUX\", () => $4a2853942588b24c$export$25e95d65b6faeb9a);\n$parcel$export(module.exports, \"IS_MAC\", () => $4a2853942588b24c$export$ff23e6b4c4401383);\n$parcel$export(module.exports, \"WINDOWS_ARCHS\", () => $4a2853942588b24c$export$175751bac16078cf);\n$parcel$export(module.exports, \"WINDOWS_PLATFORMS\", () => $4a2853942588b24c$export$da6ba390a22488d5);\n$parcel$export(module.exports, \"createSymlinkInFolder\", () => $4a2853942588b24c$export$b0a6cbd0a3e3c63a);\n$parcel$export(module.exports, \"validateVersion\", () => $4a2853942588b24c$export$7880c8f0bb8a6afd);\n$parcel$export(module.exports, \"isNightlyKeyword\", () => $4a2853942588b24c$export$ea46fc8abcf9f209);\n$parcel$export(module.exports, \"getPyPyVersionFromPath\", () => $4a2853942588b24c$export$8a23ea91582cecbc);\n$parcel$export(module.exports, \"readExactPyPyVersionFile\", () => $4a2853942588b24c$export$15e4ce4ad93c8c8a);\n$parcel$export(module.exports, \"writeExactPyPyVersionFile\", () => $4a2853942588b24c$export$8fb7815f538587a8);\n$parcel$export(module.exports, \"validatePythonVersionFormatForPyPy\", () => $4a2853942588b24c$export$3dc910628be7a364);\n$parcel$export(module.exports, \"getOSInfo\", () => $4a2853942588b24c$export$471d7e4c229dedf);\n/* eslint no-unsafe-finally: \"off\" */ \nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $kXu60 = parcelRequire(\"kXu60\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\nconst $4a2853942588b24c$export$82633ee808573685 = process.platform === \"win32\";\nconst $4a2853942588b24c$export$25e95d65b6faeb9a = process.platform === \"linux\";\nconst $4a2853942588b24c$export$ff23e6b4c4401383 = process.platform === \"darwin\";\nconst $4a2853942588b24c$export$175751bac16078cf = [\n \"x86\",\n \"x64\"\n];\nconst $4a2853942588b24c$export$da6ba390a22488d5 = [\n \"win32\",\n \"win64\"\n];\nconst $4a2853942588b24c$var$PYPY_VERSION_FILE = \"PYPY_VERSION\";\nfunction $4a2853942588b24c$export$b0a6cbd0a3e3c63a(folderPath, sourceName, targetName, setExecutable = false) {\n const sourcePath = $e2xck$path.join(folderPath, sourceName);\n const targetPath = $e2xck$path.join(folderPath, targetName);\n if ((0, ($parcel$interopDefault($e2xck$fs))).existsSync(targetPath)) return;\n (0, ($parcel$interopDefault($e2xck$fs))).symlinkSync(sourcePath, targetPath);\n if (!$4a2853942588b24c$export$82633ee808573685 && setExecutable) (0, ($parcel$interopDefault($e2xck$fs))).chmodSync(targetPath, \"755\");\n}\nfunction $4a2853942588b24c$export$7880c8f0bb8a6afd(version) {\n return $4a2853942588b24c$export$ea46fc8abcf9f209(version) || Boolean($24j9d.validRange(version));\n}\nfunction $4a2853942588b24c$export$ea46fc8abcf9f209(pypyVersion) {\n return pypyVersion === \"nightly\";\n}\nfunction $4a2853942588b24c$export$8a23ea91582cecbc(installDir) {\n return $e2xck$path.basename($e2xck$path.dirname(installDir));\n}\nfunction $4a2853942588b24c$export$15e4ce4ad93c8c8a(installDir) {\n let pypyVersion = \"\";\n const fileVersion = $e2xck$path.join(installDir, $4a2853942588b24c$var$PYPY_VERSION_FILE);\n if ((0, ($parcel$interopDefault($e2xck$fs))).existsSync(fileVersion)) pypyVersion = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(fileVersion).toString().trim();\n return pypyVersion;\n}\nfunction $4a2853942588b24c$export$8fb7815f538587a8(installDir, resolvedPyPyVersion) {\n const pypyFilePath = $e2xck$path.join(installDir, $4a2853942588b24c$var$PYPY_VERSION_FILE);\n (0, ($parcel$interopDefault($e2xck$fs))).writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\nfunction $4a2853942588b24c$export$3dc910628be7a364(version) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\nfunction $4a2853942588b24c$export$ebd6064652549ce9(message) {\n const warningPrefix = \"[warning]\";\n $lUL8q.info(`${warningPrefix}${message}`);\n}\nasync function $4a2853942588b24c$var$getWindowsInfo() {\n const { stdout: stdout } = await $ioM8U.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n const windowsVersion = stdout.trim().split(\" \")[3];\n return {\n osName: \"Windows\",\n osVersion: windowsVersion\n };\n}\nasync function $4a2853942588b24c$var$getMacOSInfo() {\n const { stdout: stdout } = await $ioM8U.getExecOutput(\"sw_vers\", [\n \"-productVersion\"\n ], {\n silent: true\n });\n const macOSVersion = stdout.trim();\n return {\n osName: \"macOS\",\n osVersion: macOSVersion\n };\n}\nasync function $4a2853942588b24c$export$734019fa9b4b8da() {\n const { stdout: stdout } = await $ioM8U.getExecOutput(\"lsb_release\", [\n \"-i\",\n \"-r\",\n \"-s\"\n ], {\n silent: true\n });\n const [osName, osVersion] = stdout.trim().split(\"\\n\");\n $lUL8q.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n return {\n osName: osName,\n osVersion: osVersion\n };\n}\nasync function $4a2853942588b24c$export$471d7e4c229dedf() {\n let osInfo;\n try {\n if ($4a2853942588b24c$export$82633ee808573685) osInfo = await $4a2853942588b24c$var$getWindowsInfo();\n else if ($4a2853942588b24c$export$25e95d65b6faeb9a) osInfo = await $4a2853942588b24c$export$734019fa9b4b8da();\n else if ($4a2853942588b24c$export$ff23e6b4c4401383) osInfo = await $4a2853942588b24c$var$getMacOSInfo();\n } catch (err) {\n const error = err;\n $lUL8q.debug(error.message);\n } finally{\n return osInfo;\n }\n}\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */ function $4a2853942588b24c$var$extractValue(obj, keys) {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) return $4a2853942588b24c$var$extractValue(value, keys.slice(1));\n else return value;\n } else return;\n}\nfunction $4a2853942588b24c$export$62b63db2b7d00b3a(versionFile) {\n $lUL8q.debug(`Trying to resolve version form ${versionFile}`);\n const pyprojectFile = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(versionFile, \"utf8\");\n const pyprojectConfig = $kXu60.parse(pyprojectFile);\n let keys = [];\n if (\"project\" in pyprojectConfig) // standard project metadata (PEP 621)\n keys = [\n \"project\",\n \"requires-python\"\n ];\n else // python poetry\n keys = [\n \"tool\",\n \"poetry\",\n \"dependencies\",\n \"python\"\n ];\n const versions = [];\n const version = $4a2853942588b24c$var$extractValue(pyprojectConfig, keys);\n if (version !== undefined) versions.push(version);\n $lUL8q.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, (version)=>version.split(\",\").join(\" \"));\n const validatedVersions = rawVersions.map((item)=>$24j9d.validRange(item, true)).filter((versionRange, index)=>{\n if (!versionRange) $lUL8q.debug(`The version ${rawVersions[index]} is not valid SemVer range`);\n return !!versionRange;\n });\n return validatedVersions;\n}\nfunction $4a2853942588b24c$export$6bdea68547837ebb(versionFile) {\n $lUL8q.debug(`Trying to resolve version form ${versionFile}`);\n const version = (0, ($parcel$interopDefault($e2xck$fs))).readFileSync(versionFile, \"utf8\");\n $lUL8q.info(`Resolved ${versionFile} as ${version}`);\n return [\n version\n ];\n}\nfunction $4a2853942588b24c$export$7ffda0a4baa8880a(versionFile) {\n if (versionFile.endsWith(\".toml\")) return $4a2853942588b24c$export$62b63db2b7d00b3a(versionFile);\n else return $4a2853942588b24c$export$6bdea68547837ebb(versionFile);\n}\n\n});\nparcelRegister(\"kXu60\", function(module, exports) {\n\n$parcel$export(module.exports, \"parse\", () => $f420a9c2a9aeb5b0$export$98e6a39c04603d36, (v) => $f420a9c2a9aeb5b0$export$98e6a39c04603d36 = v);\nvar $f420a9c2a9aeb5b0$export$98e6a39c04603d36;\nvar $f420a9c2a9aeb5b0$export$fac44ee5b035f737;\n\"use strict\";\n\n$f420a9c2a9aeb5b0$export$98e6a39c04603d36 = (parcelRequire(\"ziyWn\"));\n\n$f420a9c2a9aeb5b0$export$fac44ee5b035f737 = (parcelRequire(\"ZjZv7\"));\n\n});\nparcelRegister(\"ziyWn\", function(module, exports) {\n\"use strict\";\n\nmodule.exports = (parcelRequire(\"gJ6p0\"));\n\nmodule.exports.async = (parcelRequire(\"i9dxX\"));\n\nmodule.exports.stream = (parcelRequire(\"iDBjn\"));\n\nmodule.exports.prettyError = (parcelRequire(\"Prvkg\"));\n\n});\nparcelRegister(\"gJ6p0\", function(module, exports) {\n\"use strict\";\nmodule.exports = $c2d5d0b33e523299$var$parseString;\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\n\nvar $Prvkg = parcelRequire(\"Prvkg\");\nfunction $c2d5d0b33e523299$var$parseString(str) {\n if ($parcel$global.Buffer && $parcel$global.Buffer.isBuffer(str)) str = str.toString(\"utf8\");\n const parser = new $5DS0I();\n try {\n parser.parse(str);\n return parser.finish();\n } catch (err) {\n throw $Prvkg(err, str);\n }\n}\n\n});\nparcelRegister(\"5DS0I\", function(module, exports) {\n\"use strict\";\n\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ module.exports = makeParserClass((parcelRequire(\"aocLw\")));\nmodule.exports.makeParserClass = makeParserClass;\nclass TomlError extends Error {\n constructor(msg){\n super(msg);\n this.name = \"TomlError\";\n /* istanbul ignore next */ if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError);\n this.fromTOML = true;\n this.wrapped = null;\n }\n}\nTomlError.wrap = (err)=>{\n const terr = new TomlError(err.message);\n terr.code = err.code;\n terr.wrapped = err;\n return terr;\n};\nmodule.exports.TomlError = TomlError;\n\nvar $8CCFi = parcelRequire(\"8CCFi\");\n\nvar $5kLdF = parcelRequire(\"5kLdF\");\n\nvar $7EgKF = parcelRequire(\"7EgKF\");\n\nvar $9WIdb = parcelRequire(\"9WIdb\");\nconst CTRL_I = 0x09;\nconst CTRL_J = 0x0A;\nconst CTRL_M = 0x0D;\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\n;\nconst CHAR_SP = 0x20;\nconst CHAR_QUOT = 0x22;\nconst CHAR_NUM = 0x23;\nconst CHAR_APOS = 0x27;\nconst CHAR_PLUS = 0x2B;\nconst CHAR_COMMA = 0x2C;\nconst CHAR_HYPHEN = 0x2D;\nconst CHAR_PERIOD = 0x2E;\nconst CHAR_0 = 0x30;\nconst CHAR_1 = 0x31;\nconst CHAR_7 = 0x37;\nconst CHAR_9 = 0x39;\nconst CHAR_COLON = 0x3A;\nconst CHAR_EQUALS = 0x3D;\nconst CHAR_A = 0x41;\nconst CHAR_E = 0x45;\nconst CHAR_F = 0x46;\nconst CHAR_T = 0x54;\nconst CHAR_U = 0x55;\nconst CHAR_Z = 0x5A;\nconst CHAR_LOWBAR = 0x5F;\nconst CHAR_a = 0x61;\nconst CHAR_b = 0x62;\nconst CHAR_e = 0x65;\nconst CHAR_f = 0x66;\nconst CHAR_i = 0x69;\nconst CHAR_l = 0x6C;\nconst CHAR_n = 0x6E;\nconst CHAR_o = 0x6F;\nconst CHAR_r = 0x72;\nconst CHAR_s = 0x73;\nconst CHAR_t = 0x74;\nconst CHAR_u = 0x75;\nconst CHAR_x = 0x78;\nconst CHAR_z = 0x7A;\nconst CHAR_LCUB = 0x7B;\nconst CHAR_RCUB = 0x7D;\nconst CHAR_LSQB = 0x5B;\nconst CHAR_BSOL = 0x5C;\nconst CHAR_RSQB = 0x5D;\nconst CHAR_DEL = 0x7F;\nconst SURROGATE_FIRST = 0xD800;\nconst SURROGATE_LAST = 0xDFFF;\nconst escapes = {\n [CHAR_b]: \"\\b\",\n [CHAR_t]: \"\t\",\n [CHAR_n]: \"\\n\",\n [CHAR_f]: \"\\f\",\n [CHAR_r]: \"\\r\",\n [CHAR_QUOT]: '\"',\n [CHAR_BSOL]: \"\\\\\"\n};\nfunction isDigit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isHexit(cp) {\n return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isBit(cp) {\n return cp === CHAR_1 || cp === CHAR_0;\n}\nfunction isOctit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_7;\n}\nfunction isAlphaNumQuoteHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nfunction isAlphaNumHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nconst _type = Symbol(\"type\");\nconst _declared = Symbol(\"declared\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defineProperty = Object.defineProperty;\nconst descriptor = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: undefined\n};\nfunction hasKey(obj, key) {\n if (hasOwnProperty.call(obj, key)) return true;\n if (key === \"__proto__\") defineProperty(obj, \"__proto__\", descriptor);\n return false;\n}\nconst INLINE_TABLE = Symbol(\"inline-table\");\nfunction InlineTable() {\n return Object.defineProperties({}, {\n [_type]: {\n value: INLINE_TABLE\n }\n });\n}\nfunction isInlineTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_TABLE;\n}\nconst TABLE = Symbol(\"table\");\nfunction Table() {\n return Object.defineProperties({}, {\n [_type]: {\n value: TABLE\n },\n [_declared]: {\n value: false,\n writable: true\n }\n });\n}\nfunction isTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === TABLE;\n}\nconst _contentType = Symbol(\"content-type\");\nconst INLINE_LIST = Symbol(\"inline-list\");\nfunction InlineList(type) {\n return Object.defineProperties([], {\n [_type]: {\n value: INLINE_LIST\n },\n [_contentType]: {\n value: type\n }\n });\n}\nfunction isInlineList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_LIST;\n}\nconst LIST = Symbol(\"list\");\nfunction List() {\n return Object.defineProperties([], {\n [_type]: {\n value: LIST\n }\n });\n}\nfunction isList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === LIST;\n}\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom;\ntry {\n const utilInspect = eval(\"require('util').inspect\");\n _custom = utilInspect.custom;\n} catch (_) {\n/* eval require not available in transpiled bundle */ }\n/* istanbul ignore next */ const _inspect = _custom || \"inspect\";\nclass BoxedBigInt {\n constructor(value){\n try {\n this.value = $parcel$global.BigInt.asIntN(64, value);\n } catch (_) {\n /* istanbul ignore next */ this.value = null;\n }\n Object.defineProperty(this, _type, {\n value: INTEGER\n });\n }\n isNaN() {\n return this.value === null;\n }\n /* istanbul ignore next */ toString() {\n return String(this.value);\n }\n /* istanbul ignore next */ [_inspect]() {\n return `[BigInt: ${this.toString()}]}`;\n }\n valueOf() {\n return this.value;\n }\n}\nconst INTEGER = Symbol(\"integer\");\nfunction Integer(value) {\n let num = Number(value);\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0;\n /* istanbul ignore else */ if ($parcel$global.BigInt && !Number.isSafeInteger(num)) return new BoxedBigInt(value);\n else /* istanbul ignore next */ return Object.defineProperties(new Number(num), {\n isNaN: {\n value: function() {\n return isNaN(this);\n }\n },\n [_type]: {\n value: INTEGER\n },\n [_inspect]: {\n value: ()=>`[Integer: ${value}]`\n }\n });\n}\nfunction isInteger(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INTEGER;\n}\nconst FLOAT = Symbol(\"float\");\nfunction Float(value) {\n /* istanbul ignore next */ return Object.defineProperties(new Number(value), {\n [_type]: {\n value: FLOAT\n },\n [_inspect]: {\n value: ()=>`[Float: ${value}]`\n }\n });\n}\nfunction isFloat(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === FLOAT;\n}\nfunction tomlType(value) {\n const type = typeof value;\n if (type === \"object\") {\n /* istanbul ignore if */ if (value === null) return \"null\";\n if (value instanceof Date) return \"datetime\";\n /* istanbul ignore else */ if (_type in value) switch(value[_type]){\n case INLINE_TABLE:\n return \"inline-table\";\n case INLINE_LIST:\n return \"inline-list\";\n /* istanbul ignore next */ case TABLE:\n return \"table\";\n /* istanbul ignore next */ case LIST:\n return \"list\";\n case FLOAT:\n return \"float\";\n case INTEGER:\n return \"integer\";\n }\n }\n return type;\n}\nfunction makeParserClass(Parser) {\n class TOMLParser extends Parser {\n constructor(){\n super();\n this.ctx = this.obj = Table();\n }\n /* MATCH HELPER */ atEndOfWord() {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine();\n }\n atEndOfLine() {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M;\n }\n parseStart() {\n if (this.char === Parser.END) return null;\n else if (this.char === CHAR_LSQB) return this.call(this.parseTableOrList);\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (isAlphaNumQuoteHyphen(this.char)) return this.callNow(this.parseAssignStatement);\n else throw this.error(new TomlError(`Unknown character \"${this.char}\"`));\n }\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (this.char === CHAR_NUM) return this.goto(this.parseComment);\n else if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n else throw this.error(new TomlError(\"Unexpected character, expected only whitespace or comments till end of line\"));\n }\n /* ASSIGNMENT: key = value */ parseAssignStatement() {\n return this.callNow(this.parseAssign, this.recordAssignStatement);\n }\n recordAssignStatement(kv) {\n let target = this.ctx;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseWhitespaceToEOL);\n }\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */ parseAssign() {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n recordAssignKeyword(key) {\n if (this.state.resultTable) this.state.resultTable.push(key);\n else this.state.resultTable = [\n key\n ];\n return this.goto(this.parseAssignKeywordPreDot);\n }\n parseAssignKeywordPreDot() {\n if (this.char === CHAR_PERIOD) return this.next(this.parseAssignKeywordPostDot);\n else if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.goto(this.parseAssignEqual);\n }\n parseAssignKeywordPostDot() {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n parseAssignEqual() {\n if (this.char === CHAR_EQUALS) return this.next(this.parseAssignPreValue);\n else throw this.error(new TomlError('Invalid character, expected \"=\"'));\n }\n parseAssignPreValue() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseValue, this.recordAssignValue);\n }\n recordAssignValue(value) {\n return this.returnNow({\n key: this.state.resultTable,\n value: value\n });\n }\n /* COMMENTS: #...eol */ parseComment() {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n }while (this.nextChar());\n }\n /* TABLES AND LISTS, [foo] and [[foo]] */ parseTableOrList() {\n if (this.char === CHAR_LSQB) this.next(this.parseList);\n else return this.goto(this.parseTable);\n }\n /* TABLE [foo.bar.baz] */ parseTable() {\n this.ctx = this.obj;\n return this.goto(this.parseTableNext);\n }\n parseTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseTableMore);\n }\n parseTableMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table();\n this.ctx[_declared] = true;\n }\n return this.next(this.parseWhitespaceToEOL);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else throw this.error(new TomlError(\"Can't redefine existing key\"));\n return this.next(this.parseTableNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* LIST [[a.b.c]] */ parseList() {\n this.ctx = this.obj;\n return this.goto(this.parseListNext);\n }\n parseListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseListMore);\n }\n parseListMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) this.ctx[keyword] = List();\n if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isList(this.ctx[keyword])) {\n const next = Table();\n this.ctx[keyword].push(next);\n this.ctx = next;\n } else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListEnd);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isInlineTable(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline table\"));\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n parseListEnd(keyword) {\n if (this.char === CHAR_RSQB) return this.next(this.parseWhitespaceToEOL);\n else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* VALUE string, number, boolean, inline list, inline object */ parseValue() {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key without value\"));\n else if (this.char === CHAR_QUOT) return this.next(this.parseDoubleString);\n if (this.char === CHAR_APOS) return this.next(this.parseSingleString);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) return this.goto(this.parseNumberSign);\n else if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else if (isDigit(this.char)) return this.goto(this.parseNumberOrDateTime);\n else if (this.char === CHAR_t || this.char === CHAR_f) return this.goto(this.parseBoolean);\n else if (this.char === CHAR_LSQB) return this.call(this.parseInlineList, this.recordValue);\n else if (this.char === CHAR_LCUB) return this.call(this.parseInlineTable, this.recordValue);\n else throw this.error(new TomlError(\"Unexpected character, expecting string, number, datetime, boolean, inline array or inline table\"));\n }\n recordValue(value) {\n return this.returnNow(value);\n }\n parseInf() {\n if (this.char === CHAR_n) return this.next(this.parseInf2);\n else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseInf2() {\n if (this.char === CHAR_f) {\n if (this.state.buf === \"-\") return this.return(-Infinity);\n else return this.return(Infinity);\n } else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseNan() {\n if (this.char === CHAR_a) return this.next(this.parseNan2);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n parseNan2() {\n if (this.char === CHAR_n) return this.return(NaN);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n /* KEYS, barewords or basic, literal, or dotted */ parseKeyword() {\n if (this.char === CHAR_QUOT) return this.next(this.parseBasicString);\n else if (this.char === CHAR_APOS) return this.next(this.parseLiteralString);\n else return this.goto(this.parseBareKey);\n }\n /* KEYS: barewords */ parseBareKey() {\n do {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key ended without value\"));\n else if (isAlphaNumHyphen(this.char)) this.consume();\n else if (this.state.buf.length === 0) throw this.error(new TomlError(\"Empty bare keys are not allowed\"));\n else return this.returnNow();\n }while (this.nextChar());\n }\n /* STRINGS, single quoted (literal) */ parseSingleString() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiStringMaybe);\n else return this.goto(this.parseLiteralString);\n }\n parseLiteralString() {\n do {\n if (this.char === CHAR_APOS) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiStringMaybe() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiString);\n else return this.returnNow();\n }\n parseLiteralMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseLiteralMultiStringContent);\n else return this.goto(this.parseLiteralMultiStringContent);\n }\n parseLiteralMultiStringContent() {\n do {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiEnd() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd2);\n else {\n this.state.buf += \"'\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n parseLiteralMultiEnd2() {\n if (this.char === CHAR_APOS) return this.return();\n else {\n this.state.buf += \"''\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n /* STRINGS double quoted */ parseDoubleString() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiStringMaybe);\n else return this.goto(this.parseBasicString);\n }\n parseBasicString() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseEscape, this.recordEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n recordEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseBasicString);\n }\n parseMultiStringMaybe() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiString);\n else return this.returnNow();\n }\n parseMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseMultiStringContent);\n else return this.goto(this.parseMultiStringContent);\n }\n parseMultiStringContent() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n errorControlCharInString() {\n let displayCode = \"\\\\u00\";\n if (this.char < 16) displayCode += \"0\";\n displayCode += this.char.toString(16);\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`));\n }\n recordMultiEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseMultiStringContent);\n }\n parseMultiEnd() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd2);\n else {\n this.state.buf += '\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEnd2() {\n if (this.char === CHAR_QUOT) return this.return();\n else {\n this.state.buf += '\"\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEscape() {\n if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else if (this.char === CHAR_SP || this.char === CTRL_I) return this.next(this.parsePreMultiTrim);\n else return this.goto(this.parseEscape);\n }\n parsePreMultiTrim() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else throw this.error(new TomlError(\"Can't escape whitespace\"));\n }\n parseMultiTrim() {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else return this.returnNow();\n }\n parseEscape() {\n if (this.char in escapes) return this.return(escapes[this.char]);\n else if (this.char === CHAR_u) return this.call(this.parseSmallUnicode, this.parseUnicodeReturn);\n else if (this.char === CHAR_U) return this.call(this.parseLargeUnicode, this.parseUnicodeReturn);\n else throw this.error(new TomlError(\"Unknown escape character: \" + this.char));\n }\n parseUnicodeReturn(char) {\n try {\n const codePoint = parseInt(char, 16);\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) throw this.error(new TomlError(\"Invalid unicode, character in range 0xD800 - 0xDFFF is reserved\"));\n return this.returnNow(String.fromCodePoint(codePoint));\n } catch (err) {\n throw this.error(TomlError.wrap(err));\n }\n }\n parseSmallUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 4) return this.return();\n }\n }\n parseLargeUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 8) return this.return();\n }\n }\n /* NUMBERS */ parseNumberSign() {\n this.consume();\n return this.next(this.parseMaybeSignedInfOrNan);\n }\n parseMaybeSignedInfOrNan() {\n if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart);\n }\n parseNumberIntegerStart() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberIntegerExponentOrDecimal);\n } else return this.goto(this.parseNumberInteger);\n }\n parseNumberIntegerExponentOrDecimal() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Integer(this.state.buf));\n }\n parseNumberInteger() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseNoUnder() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNoUnderHexOctBinLiteral() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNumberFloat() {\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberFloat);\n else if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Float(this.state.buf));\n }\n parseNumberExponentSign() {\n if (isDigit(this.char)) return this.goto(this.parseNumberExponent);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.call(this.parseNoUnder, this.parseNumberExponent);\n } else throw this.error(new TomlError(\"Unexpected character, expected -, + or digit\"));\n }\n parseNumberExponent() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else return this.returnNow(Float(this.state.buf));\n }\n /* NUMBERS or DATETIMES */ parseNumberOrDateTime() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberBaseOrDateTime);\n } else return this.goto(this.parseNumberOrDateTimeOnly);\n }\n parseNumberOrDateTimeOnly() {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberInteger);\n else if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseDateTimeOnly() {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) return this.consume();\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else throw this.error(new TomlError(\"Expected digit while parsing year part of a date\"));\n } else {\n if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else throw this.error(new TomlError(\"Expected hyphen (-) while parsing year part of date\"));\n }\n }\n parseNumberBaseOrDateTime() {\n if (this.char === CHAR_b) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin);\n } else if (this.char === CHAR_o) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct);\n } else if (this.char === CHAR_x) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex);\n } else if (this.char === CHAR_PERIOD) return this.goto(this.parseNumberInteger);\n else if (isDigit(this.char)) return this.goto(this.parseDateTimeOnly);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseIntegerHex() {\n if (isHexit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerOct() {\n if (isOctit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerBin() {\n if (isBit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n /* DATETIME */ parseDateTime() {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) throw this.error(new TomlError(\"Years less than 1000 must be zero padded to four characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateMonth);\n }\n parseDateMonth() {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Months less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateDay);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseDateDay() {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Days less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseStartTimeHour);\n } else if (this.atEndOfWord()) return this.returnNow($7EgKF(this.state.result + \"-\" + this.state.buf));\n else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseStartTimeHour() {\n if (this.atEndOfWord()) return this.returnNow($7EgKF(this.state.result));\n else return this.goto(this.parseTimeHour);\n }\n parseTimeHour() {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result += \"T\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeMin);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeSec);\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeZoneOrFraction);\n }\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseOnlyTimeHour() {\n /* istanbul ignore else */ if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeMin);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeSec);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) return this.next(this.parseOnlyTimeFractionMaybe);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeFractionMaybe() {\n this.state.result += \":\" + this.state.buf;\n if (this.char === CHAR_PERIOD) {\n this.state.buf = \"\";\n this.next(this.parseOnlyTimeFraction);\n } else return this.return($9WIdb(this.state.result));\n }\n parseOnlyTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n return this.returnNow($9WIdb(this.state.result + \".\" + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneOrFraction() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n this.next(this.parseDateTimeFraction);\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($8CCFi(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($5kLdF(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseDateTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 1) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($8CCFi(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($5kLdF(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneHour() {\n if (isDigit(this.char)) {\n this.consume();\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n parseTimeZoneSep() {\n if (this.char === CHAR_COLON) {\n this.consume();\n this.next(this.parseTimeZoneMin);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected colon\"));\n }\n parseTimeZoneMin() {\n if (isDigit(this.char)) {\n this.consume();\n if (/\\d\\d$/.test(this.state.buf)) return this.return($8CCFi(this.state.result + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n /* BOOLEAN */ parseBoolean() {\n /* istanbul ignore else */ if (this.char === CHAR_t) {\n this.consume();\n return this.next(this.parseTrue_r);\n } else if (this.char === CHAR_f) {\n this.consume();\n return this.next(this.parseFalse_a);\n }\n }\n parseTrue_r() {\n if (this.char === CHAR_r) {\n this.consume();\n return this.next(this.parseTrue_u);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_u() {\n if (this.char === CHAR_u) {\n this.consume();\n return this.next(this.parseTrue_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_e() {\n if (this.char === CHAR_e) return this.return(true);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_a() {\n if (this.char === CHAR_a) {\n this.consume();\n return this.next(this.parseFalse_l);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_l() {\n if (this.char === CHAR_l) {\n this.consume();\n return this.next(this.parseFalse_s);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_s() {\n if (this.char === CHAR_s) {\n this.consume();\n return this.next(this.parseFalse_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_e() {\n if (this.char === CHAR_e) return this.return(false);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n /* INLINE LISTS */ parseInlineList() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_RSQB) return this.return(this.state.resultArr || InlineList());\n else return this.callNow(this.parseValue, this.recordInlineListValue);\n }\n recordInlineListValue(value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType];\n const valueType = tomlType(value);\n if (listType !== valueType) throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`));\n } else this.state.resultArr = InlineList(tomlType(value));\n if (isFloat(value) || isInteger(value)) // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf());\n else this.state.resultArr.push(value);\n return this.goto(this.parseInlineListNext);\n }\n parseInlineListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineList);\n else if (this.char === CHAR_RSQB) return this.goto(this.parseInlineList);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n /* INLINE TABLE */ parseInlineTable() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_RCUB) return this.return(this.state.resultTable || InlineTable());\n else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable();\n return this.callNow(this.parseAssign, this.recordInlineTableValue);\n }\n }\n recordInlineTableValue(kv) {\n let target = this.state.resultTable;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseInlineTableNext);\n }\n parseInlineTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineTable);\n else if (this.char === CHAR_RCUB) return this.goto(this.parseInlineTable);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n }\n return TOMLParser;\n}\n\n});\nparcelRegister(\"aocLw\", function(module, exports) {\n\"use strict\";\nconst $79060c36a8d77c51$var$ParserEND = 0x110000;\nclass $79060c36a8d77c51$var$ParserError extends Error {\n /* istanbul ignore next */ constructor(msg, filename, linenumber){\n super(\"[ParserError] \" + msg, filename, linenumber);\n this.name = \"ParserError\";\n this.code = \"ParserError\";\n if (Error.captureStackTrace) Error.captureStackTrace(this, $79060c36a8d77c51$var$ParserError);\n }\n}\nclass $79060c36a8d77c51$var$State {\n constructor(parser){\n this.parser = parser;\n this.buf = \"\";\n this.returned = null;\n this.result = null;\n this.resultTable = null;\n this.resultArr = null;\n }\n}\nclass $79060c36a8d77c51$var$Parser {\n constructor(){\n this.pos = 0;\n this.col = 0;\n this.line = 0;\n this.obj = {};\n this.ctx = this.obj;\n this.stack = [];\n this._buf = \"\";\n this.char = null;\n this.ii = 0;\n this.state = new $79060c36a8d77c51$var$State(this.parseStart);\n }\n parse(str) {\n /* istanbul ignore next */ if (str.length === 0 || str.length == null) return;\n this._buf = String(str);\n this.ii = -1;\n this.char = -1;\n let getNext;\n while(getNext === false || this.nextChar())getNext = this.runOne();\n this._buf = null;\n }\n nextChar() {\n if (this.char === 0x0A) {\n ++this.line;\n this.col = -1;\n }\n ++this.ii;\n this.char = this._buf.codePointAt(this.ii);\n ++this.pos;\n ++this.col;\n return this.haveBuffer();\n }\n haveBuffer() {\n return this.ii < this._buf.length;\n }\n runOne() {\n return this.state.parser.call(this, this.state.returned);\n }\n finish() {\n this.char = $79060c36a8d77c51$var$ParserEND;\n let last;\n do {\n last = this.state.parser;\n this.runOne();\n }while (this.state.parser !== last);\n this.ctx = null;\n this.state = null;\n this._buf = null;\n return this.obj;\n }\n next(fn) {\n /* istanbul ignore next */ if (typeof fn !== \"function\") throw new $79060c36a8d77c51$var$ParserError(\"Tried to set state to non-existent state: \" + JSON.stringify(fn));\n this.state.parser = fn;\n }\n goto(fn) {\n this.next(fn);\n return this.runOne();\n }\n call(fn, returnWith) {\n if (returnWith) this.next(returnWith);\n this.stack.push(this.state);\n this.state = new $79060c36a8d77c51$var$State(fn);\n }\n callNow(fn, returnWith) {\n this.call(fn, returnWith);\n return this.runOne();\n }\n return(value) {\n /* istanbul ignore next */ if (this.stack.length === 0) throw this.error(new $79060c36a8d77c51$var$ParserError(\"Stack underflow\"));\n if (value === undefined) value = this.state.buf;\n this.state = this.stack.pop();\n this.state.returned = value;\n }\n returnNow(value) {\n this.return(value);\n return this.runOne();\n }\n consume() {\n /* istanbul ignore next */ if (this.char === $79060c36a8d77c51$var$ParserEND) throw this.error(new $79060c36a8d77c51$var$ParserError(\"Unexpected end-of-buffer\"));\n this.state.buf += this._buf[this.ii];\n }\n error(err) {\n err.line = this.line;\n err.col = this.col;\n err.pos = this.pos;\n return err;\n }\n /* istanbul ignore next */ parseStart() {\n throw new $79060c36a8d77c51$var$ParserError(\"Must declare a parseStart method\");\n }\n}\n$79060c36a8d77c51$var$Parser.END = $79060c36a8d77c51$var$ParserEND;\n$79060c36a8d77c51$var$Parser.Error = $79060c36a8d77c51$var$ParserError;\nmodule.exports = $79060c36a8d77c51$var$Parser;\n\n});\n\nparcelRegister(\"8CCFi\", function(module, exports) {\n\"use strict\";\nmodule.exports = (value)=>{\n const date = new Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"5kLdF\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nclass $3e2372c79680e78e$var$FloatingDateTime extends Date {\n constructor(value){\n super(value + \"Z\");\n this.isFloating = true;\n }\n toISOString() {\n const date = `${this.getUTCFullYear()}-${$d3FGN(2, this.getUTCMonth() + 1)}-${$d3FGN(2, this.getUTCDate())}`;\n const time = `${$d3FGN(2, this.getUTCHours())}:${$d3FGN(2, this.getUTCMinutes())}:${$d3FGN(2, this.getUTCSeconds())}.${$d3FGN(3, this.getUTCMilliseconds())}`;\n return `${date}T${time}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $3e2372c79680e78e$var$FloatingDateTime(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\nparcelRegister(\"d3FGN\", function(module, exports) {\n\"use strict\";\nmodule.exports = (d, num)=>{\n num = String(num);\n while(num.length < d)num = \"0\" + num;\n return num;\n};\n\n});\n\n\nparcelRegister(\"7EgKF\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nconst $5919435c8d2b17e6$var$DateTime = $parcel$global.Date;\nclass $5919435c8d2b17e6$var$Date extends $5919435c8d2b17e6$var$DateTime {\n constructor(value){\n super(value);\n this.isDate = true;\n }\n toISOString() {\n return `${this.getUTCFullYear()}-${$d3FGN(2, this.getUTCMonth() + 1)}-${$d3FGN(2, this.getUTCDate())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $5919435c8d2b17e6$var$Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"9WIdb\", function(module, exports) {\n\"use strict\";\n\nvar $d3FGN = parcelRequire(\"d3FGN\");\nclass $73dbd35bda5c16c1$var$Time extends Date {\n constructor(value){\n super(`0000-01-01T${value}Z`);\n this.isTime = true;\n }\n toISOString() {\n return `${$d3FGN(2, this.getUTCHours())}:${$d3FGN(2, this.getUTCMinutes())}:${$d3FGN(2, this.getUTCSeconds())}.${$d3FGN(3, this.getUTCMilliseconds())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $73dbd35bda5c16c1$var$Time(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\n\nparcelRegister(\"Prvkg\", function(module, exports) {\n\"use strict\";\nmodule.exports = $09aa194e99c5dc97$var$prettyError;\nfunction $09aa194e99c5dc97$var$prettyError(err, buf) {\n /* istanbul ignore if */ if (err.pos == null || err.line == null) return err;\n let msg = err.message;\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`;\n /* istanbul ignore else */ if (buf && buf.split) {\n const lines = buf.split(/\\n/);\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length;\n let linePadding = \" \";\n while(linePadding.length < lineNumWidth)linePadding += \" \";\n for(let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii){\n let lineNum = String(ii + 1);\n if (lineNum.length < lineNumWidth) lineNum = \" \" + lineNum;\n if (err.line === ii) {\n msg += lineNum + \"> \" + lines[ii] + \"\\n\";\n msg += linePadding + \" \";\n for(let hh = 0; hh < err.col; ++hh)msg += \" \";\n msg += \"^\\n\";\n } else msg += lineNum + \": \" + lines[ii] + \"\\n\";\n }\n }\n err.message = msg + \"\\n\";\n return err;\n}\n\n});\n\n\nparcelRegister(\"i9dxX\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d363935a68bc1532$var$parseAsync;\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\n\nvar $Prvkg = parcelRequire(\"Prvkg\");\nfunction $d363935a68bc1532$var$parseAsync(str, opts) {\n if (!opts) opts = {};\n const index = 0;\n const blocksize = opts.blocksize || 40960;\n const parser = new $5DS0I();\n return new Promise((resolve, reject)=>{\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject);\n });\n function parseAsyncNext(index, blocksize, resolve, reject) {\n if (index >= str.length) try {\n return resolve(parser.finish());\n } catch (err) {\n return reject($Prvkg(err, str));\n }\n try {\n parser.parse(str.slice(index, index + blocksize));\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject);\n } catch (err) {\n reject($Prvkg(err, str));\n }\n }\n}\n\n});\n\nparcelRegister(\"iDBjn\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d918cfcfdd82ba27$var$parseStream;\n\n\nvar $5DS0I = parcelRequire(\"5DS0I\");\nfunction $d918cfcfdd82ba27$var$parseStream(stm) {\n if (stm) return $d918cfcfdd82ba27$var$parseReadable(stm);\n else return $d918cfcfdd82ba27$var$parseTransform(stm);\n}\nfunction $d918cfcfdd82ba27$var$parseReadable(stm) {\n const parser = new $5DS0I();\n stm.setEncoding(\"utf8\");\n return new Promise((resolve, reject)=>{\n let readable;\n let ended = false;\n let errored = false;\n function finish() {\n ended = true;\n if (readable) return;\n try {\n resolve(parser.finish());\n } catch (err) {\n reject(err);\n }\n }\n function error(err) {\n errored = true;\n reject(err);\n }\n stm.once(\"end\", finish);\n stm.once(\"error\", error);\n readNext();\n function readNext() {\n readable = true;\n let data;\n while((data = stm.read()) !== null)try {\n parser.parse(data);\n } catch (err) {\n return error(err);\n }\n readable = false;\n /* istanbul ignore if */ if (ended) return finish();\n /* istanbul ignore if */ if (errored) return;\n stm.once(\"readable\", readNext);\n }\n });\n}\nfunction $d918cfcfdd82ba27$var$parseTransform() {\n const parser = new $5DS0I();\n return new $e2xck$stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding));\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n },\n flush (cb) {\n try {\n this.push(parser.finish());\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n }\n });\n}\n\n});\n\n\nparcelRegister(\"ZjZv7\", function(module, exports) {\n\"use strict\";\nmodule.exports = $0b853467f53125f6$var$stringify;\nmodule.exports.value = $0b853467f53125f6$var$stringifyInline;\nfunction $0b853467f53125f6$var$stringify(obj) {\n if (obj === null) throw $0b853467f53125f6$var$typeError(\"null\");\n if (obj === void 0) throw $0b853467f53125f6$var$typeError(\"undefined\");\n if (typeof obj !== \"object\") throw $0b853467f53125f6$var$typeError(typeof obj);\n if (typeof obj.toJSON === \"function\") obj = obj.toJSON();\n if (obj == null) return null;\n const type = $0b853467f53125f6$var$tomlType(obj);\n if (type !== \"table\") throw $0b853467f53125f6$var$typeError(type);\n return $0b853467f53125f6$var$stringifyObject(\"\", \"\", obj);\n}\nfunction $0b853467f53125f6$var$typeError(type) {\n return new Error(\"Can only stringify objects, not \" + type);\n}\nfunction $0b853467f53125f6$var$arrayOneTypeError() {\n return new Error(\"Array values can't have mixed types\");\n}\nfunction $0b853467f53125f6$var$getInlineKeys(obj) {\n return Object.keys(obj).filter((key)=>$0b853467f53125f6$var$isInline(obj[key]));\n}\nfunction $0b853467f53125f6$var$getComplexKeys(obj) {\n return Object.keys(obj).filter((key)=>!$0b853467f53125f6$var$isInline(obj[key]));\n}\nfunction $0b853467f53125f6$var$toJSON(obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, \"__proto__\") ? {\n [\"__proto__\"]: undefined\n } : {};\n for (let prop of Object.keys(obj))if (obj[prop] && typeof obj[prop].toJSON === \"function\" && !(\"toISOString\" in obj[prop])) nobj[prop] = obj[prop].toJSON();\n else nobj[prop] = obj[prop];\n return nobj;\n}\nfunction $0b853467f53125f6$var$stringifyObject(prefix, indent, obj) {\n obj = $0b853467f53125f6$var$toJSON(obj);\n var inlineKeys;\n var complexKeys;\n inlineKeys = $0b853467f53125f6$var$getInlineKeys(obj);\n complexKeys = $0b853467f53125f6$var$getComplexKeys(obj);\n var result = [];\n var inlineIndent = indent || \"\";\n inlineKeys.forEach((key)=>{\n var type = $0b853467f53125f6$var$tomlType(obj[key]);\n if (type !== \"undefined\" && type !== \"null\") result.push(inlineIndent + $0b853467f53125f6$var$stringifyKey(key) + \" = \" + $0b853467f53125f6$var$stringifyAnyInline(obj[key], true));\n });\n if (result.length > 0) result.push(\"\");\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + \" \" : \"\";\n complexKeys.forEach((key)=>{\n result.push($0b853467f53125f6$var$stringifyComplex(prefix, complexIndent, key, obj[key]));\n });\n return result.join(\"\\n\");\n}\nfunction $0b853467f53125f6$var$isInline(value) {\n switch($0b853467f53125f6$var$tomlType(value)){\n case \"undefined\":\n case \"null\":\n case \"integer\":\n case \"nan\":\n case \"float\":\n case \"boolean\":\n case \"string\":\n case \"datetime\":\n return true;\n case \"array\":\n return value.length === 0 || $0b853467f53125f6$var$tomlType(value[0]) !== \"table\";\n case \"table\":\n return Object.keys(value).length === 0;\n /* istanbul ignore next */ default:\n return false;\n }\n}\nfunction $0b853467f53125f6$var$tomlType(value) {\n if (value === undefined) return \"undefined\";\n else if (value === null) return \"null\";\n else if (typeof value === \"bigint\" || Number.isInteger(value) && !Object.is(value, -0)) return \"integer\";\n else if (typeof value === \"number\") return \"float\";\n else if (typeof value === \"boolean\") return \"boolean\";\n else if (typeof value === \"string\") return \"string\";\n else if (\"toISOString\" in value) return isNaN(value) ? \"undefined\" : \"datetime\";\n else if (Array.isArray(value)) return \"array\";\n else return \"table\";\n}\nfunction $0b853467f53125f6$var$stringifyKey(key) {\n var keyStr = String(key);\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) return keyStr;\n else return $0b853467f53125f6$var$stringifyBasicString(keyStr);\n}\nfunction $0b853467f53125f6$var$stringifyBasicString(str) {\n return '\"' + $0b853467f53125f6$var$escapeString(str).replace(/\"/g, '\\\\\"') + '\"';\n}\nfunction $0b853467f53125f6$var$stringifyLiteralString(str) {\n return \"'\" + str + \"'\";\n}\nfunction $0b853467f53125f6$var$numpad(num, str) {\n while(str.length < num)str = \"0\" + str;\n return str;\n}\nfunction $0b853467f53125f6$var$escapeString(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/[\\b]/g, \"\\\\b\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\f/g, \"\\\\f\").replace(/\\r/g, \"\\\\r\")/* eslint-disable no-control-regex */ .replace(/([\\u0000-\\u001f\\u007f])/, (c)=>\"\\\\u\" + $0b853467f53125f6$var$numpad(4, c.codePointAt(0).toString(16)));\n/* eslint-enable no-control-regex */ }\nfunction $0b853467f53125f6$var$stringifyMultilineString(str) {\n let escaped = str.split(/\\n/).map((str)=>{\n return $0b853467f53125f6$var$escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"');\n }).join(\"\\n\");\n if (escaped.slice(-1) === '\"') escaped += \"\\\\\\n\";\n return '\"\"\"\\n' + escaped + '\"\"\"';\n}\nfunction $0b853467f53125f6$var$stringifyAnyInline(value, multilineOk) {\n let type = $0b853467f53125f6$var$tomlType(value);\n if (type === \"string\") {\n if (multilineOk && /\\n/.test(value)) type = \"string-multiline\";\n else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) type = \"string-literal\";\n }\n return $0b853467f53125f6$var$stringifyInline(value, type);\n}\nfunction $0b853467f53125f6$var$stringifyInline(value, type) {\n /* istanbul ignore if */ if (!type) type = $0b853467f53125f6$var$tomlType(value);\n switch(type){\n case \"string-multiline\":\n return $0b853467f53125f6$var$stringifyMultilineString(value);\n case \"string\":\n return $0b853467f53125f6$var$stringifyBasicString(value);\n case \"string-literal\":\n return $0b853467f53125f6$var$stringifyLiteralString(value);\n case \"integer\":\n return $0b853467f53125f6$var$stringifyInteger(value);\n case \"float\":\n return $0b853467f53125f6$var$stringifyFloat(value);\n case \"boolean\":\n return $0b853467f53125f6$var$stringifyBoolean(value);\n case \"datetime\":\n return $0b853467f53125f6$var$stringifyDatetime(value);\n case \"array\":\n return $0b853467f53125f6$var$stringifyInlineArray(value.filter((_)=>$0b853467f53125f6$var$tomlType(_) !== \"null\" && $0b853467f53125f6$var$tomlType(_) !== \"undefined\" && $0b853467f53125f6$var$tomlType(_) !== \"nan\"));\n case \"table\":\n return $0b853467f53125f6$var$stringifyInlineTable(value);\n /* istanbul ignore next */ default:\n throw $0b853467f53125f6$var$typeError(type);\n }\n}\nfunction $0b853467f53125f6$var$stringifyInteger(value) {\n /* eslint-disable security/detect-unsafe-regex */ return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"_\");\n}\nfunction $0b853467f53125f6$var$stringifyFloat(value) {\n if (value === Infinity) return \"inf\";\n else if (value === -Infinity) return \"-inf\";\n else if (Object.is(value, NaN)) return \"nan\";\n else if (Object.is(value, -0)) return \"-0.0\";\n var chunks = String(value).split(\".\");\n var int = chunks[0];\n var dec = chunks[1] || 0;\n return $0b853467f53125f6$var$stringifyInteger(int) + \".\" + dec;\n}\nfunction $0b853467f53125f6$var$stringifyBoolean(value) {\n return String(value);\n}\nfunction $0b853467f53125f6$var$stringifyDatetime(value) {\n return value.toISOString();\n}\nfunction $0b853467f53125f6$var$isNumber(type) {\n return type === \"float\" || type === \"integer\";\n}\nfunction $0b853467f53125f6$var$arrayType(values) {\n var contentType = $0b853467f53125f6$var$tomlType(values[0]);\n if (values.every((_)=>$0b853467f53125f6$var$tomlType(_) === contentType)) return contentType;\n // mixed integer/float, emit as floats\n if (values.every((_)=>$0b853467f53125f6$var$isNumber($0b853467f53125f6$var$tomlType(_)))) return \"float\";\n return \"mixed\";\n}\nfunction $0b853467f53125f6$var$validateArray(values) {\n const type = $0b853467f53125f6$var$arrayType(values);\n if (type === \"mixed\") throw $0b853467f53125f6$var$arrayOneTypeError();\n return type;\n}\nfunction $0b853467f53125f6$var$stringifyInlineArray(values) {\n values = $0b853467f53125f6$var$toJSON(values);\n const type = $0b853467f53125f6$var$validateArray(values);\n var result = \"[\";\n var stringified = values.map((_)=>$0b853467f53125f6$var$stringifyInline(_, type));\n if (stringified.join(\", \").length > 60 || /\\n/.test(stringified)) result += \"\\n \" + stringified.join(\",\\n \") + \"\\n\";\n else result += \" \" + stringified.join(\", \") + (stringified.length > 0 ? \" \" : \"\");\n return result + \"]\";\n}\nfunction $0b853467f53125f6$var$stringifyInlineTable(value) {\n value = $0b853467f53125f6$var$toJSON(value);\n var result = [];\n Object.keys(value).forEach((key)=>{\n result.push($0b853467f53125f6$var$stringifyKey(key) + \" = \" + $0b853467f53125f6$var$stringifyAnyInline(value[key], false));\n });\n return \"{ \" + result.join(\", \") + (result.length > 0 ? \" \" : \"\") + \"}\";\n}\nfunction $0b853467f53125f6$var$stringifyComplex(prefix, indent, key, value) {\n var valueType = $0b853467f53125f6$var$tomlType(value);\n /* istanbul ignore else */ if (valueType === \"array\") return $0b853467f53125f6$var$stringifyArrayOfTables(prefix, indent, key, value);\n else if (valueType === \"table\") return $0b853467f53125f6$var$stringifyComplexTable(prefix, indent, key, value);\n else throw $0b853467f53125f6$var$typeError(valueType);\n}\nfunction $0b853467f53125f6$var$stringifyArrayOfTables(prefix, indent, key, values) {\n values = $0b853467f53125f6$var$toJSON(values);\n $0b853467f53125f6$var$validateArray(values);\n var firstValueType = $0b853467f53125f6$var$tomlType(values[0]);\n /* istanbul ignore if */ if (firstValueType !== \"table\") throw $0b853467f53125f6$var$typeError(firstValueType);\n var fullKey = prefix + $0b853467f53125f6$var$stringifyKey(key);\n var result = \"\";\n values.forEach((table)=>{\n if (result.length > 0) result += \"\\n\";\n result += indent + \"[[\" + fullKey + \"]]\\n\";\n result += $0b853467f53125f6$var$stringifyObject(fullKey + \".\", indent, table);\n });\n return result;\n}\nfunction $0b853467f53125f6$var$stringifyComplexTable(prefix, indent, key, value) {\n var fullKey = prefix + $0b853467f53125f6$var$stringifyKey(key);\n var result = \"\";\n if ($0b853467f53125f6$var$getInlineKeys(value).length > 0) result += indent + \"[\" + fullKey + \"]\\n\";\n return result + $0b853467f53125f6$var$stringifyObject(fullKey + \".\", indent, value);\n}\n\n});\n\n\n\nparcelRegister(\"4rCDr\", function(module, exports) {\n\n$parcel$export(module.exports, \"MANIFEST_URL\", () => $5b7f8d1087c8a57f$export$f3182c5cb60bb857);\n$parcel$export(module.exports, \"findReleaseFromManifest\", () => $5b7f8d1087c8a57f$export$45bea79befbd9a23);\n$parcel$export(module.exports, \"getManifest\", () => $5b7f8d1087c8a57f$export$39e873de56f329d8);\n$parcel$export(module.exports, \"installCpythonFromRelease\", () => $5b7f8d1087c8a57f$export$e1ffa7cd53152881);\n\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\nconst $5b7f8d1087c8a57f$var$TOKEN = $lUL8q.getInput(\"token\");\nconst $5b7f8d1087c8a57f$var$AUTH = !$5b7f8d1087c8a57f$var$TOKEN ? undefined : `token ${$5b7f8d1087c8a57f$var$TOKEN}`;\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER = \"actions\";\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME = \"python-versions\";\nconst $5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH = \"main\";\nconst $5b7f8d1087c8a57f$export$f3182c5cb60bb857 = `https://raw.githubusercontent.com/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH}/versions-manifest.json`;\nasync function $5b7f8d1087c8a57f$export$45bea79befbd9a23(semanticVersionSpec, architecture, manifest) {\n if (!manifest) manifest = await $5b7f8d1087c8a57f$export$39e873de56f329d8();\n const foundRelease = await $wMbNK.findFromManifest(semanticVersionSpec, false, manifest, architecture);\n return foundRelease;\n}\nfunction $5b7f8d1087c8a57f$export$39e873de56f329d8() {\n $lUL8q.debug(`Getting manifest from ${$5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER}/${$5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME}@${$5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH}`);\n return $wMbNK.getManifestFromRepo($5b7f8d1087c8a57f$var$MANIFEST_REPO_OWNER, $5b7f8d1087c8a57f$var$MANIFEST_REPO_NAME, $5b7f8d1087c8a57f$var$AUTH, $5b7f8d1087c8a57f$var$MANIFEST_REPO_BRANCH);\n}\nasync function $5b7f8d1087c8a57f$var$installPython(workingDirectory) {\n const options = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(0, $c6Y2q.IS_LINUX) && {\n LD_LIBRARY_PATH: $e2xck$path.join(workingDirectory, \"lib\")\n }\n },\n silent: true,\n listeners: {\n stdout: (data)=>{\n $lUL8q.info(data.toString().trim());\n },\n stderr: (data)=>{\n $lUL8q.error(data.toString().trim());\n }\n }\n };\n if (0, $c6Y2q.IS_WINDOWS) await $ioM8U.exec(\"powershell\", [\n \"./setup.ps1\"\n ], options);\n else await $ioM8U.exec(\"bash\", [\n \"./setup.sh\"\n ], options);\n}\nasync function $5b7f8d1087c8a57f$export$e1ffa7cd53152881(release) {\n const downloadUrl = release.files[0].download_url;\n $lUL8q.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = \"\";\n try {\n pythonPath = await $wMbNK.downloadTool(downloadUrl, undefined, $5b7f8d1087c8a57f$var$AUTH);\n $lUL8q.info(\"Extract downloaded archive\");\n let pythonExtractedFolder;\n if (0, $c6Y2q.IS_WINDOWS) pythonExtractedFolder = await $wMbNK.extractZip(pythonPath);\n else pythonExtractedFolder = await $wMbNK.extractTar(pythonPath);\n $lUL8q.info(\"Execute installation script\");\n await $5b7f8d1087c8a57f$var$installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof $wMbNK.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) $lUL8q.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $lUL8q.info(err.message);\n if (err.stack) $lUL8q.debug(err.stack);\n }\n throw err;\n }\n}\n\n});\nparcelRegister(\"wMbNK\", function(module, exports) {\n\nvar $06285eac7a7bb2d2$var$$parcel$__dirname = $e2xck$path.resolve(__dirname, \"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib\");\n\"use strict\";\nvar $06285eac7a7bb2d2$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $06285eac7a7bb2d2$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $06285eac7a7bb2d2$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $06285eac7a7bb2d2$var$__createBinding(result, mod, k);\n }\n $06285eac7a7bb2d2$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $06285eac7a7bb2d2$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $06285eac7a7bb2d2$var$__importDefault = module.exports && module.exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.evaluateVersions = module.exports.isExplicitVersion = module.exports.findFromManifest = module.exports.getManifestFromRepo = module.exports.findAllVersions = module.exports.find = module.exports.cacheFile = module.exports.cacheDir = module.exports.extractZip = module.exports.extractXar = module.exports.extractTar = module.exports.extract7z = module.exports.downloadTool = module.exports.HTTPError = void 0;\n\nconst $06285eac7a7bb2d2$var$core = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"lUL8q\")));\n\nconst $06285eac7a7bb2d2$var$io = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"jGHPG\")));\n\nconst $06285eac7a7bb2d2$var$fs = $06285eac7a7bb2d2$var$__importStar($e2xck$fs);\n\nconst $06285eac7a7bb2d2$var$mm = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"8YqHc\")));\n\nconst $06285eac7a7bb2d2$var$os = $06285eac7a7bb2d2$var$__importStar($e2xck$os);\n\nconst $06285eac7a7bb2d2$var$path = $06285eac7a7bb2d2$var$__importStar($e2xck$path);\n\nconst $06285eac7a7bb2d2$var$httpm = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"l6zH0\")));\n\nconst $06285eac7a7bb2d2$var$semver = $06285eac7a7bb2d2$var$__importStar((parcelRequire(\"bD1rN\")));\n\nconst $06285eac7a7bb2d2$var$stream = $06285eac7a7bb2d2$var$__importStar($e2xck$stream);\n\nconst $06285eac7a7bb2d2$var$util = $06285eac7a7bb2d2$var$__importStar($e2xck$util);\n\nconst $06285eac7a7bb2d2$var$v4_1 = $06285eac7a7bb2d2$var$__importDefault((parcelRequire(\"lctVY\")));\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\n\nvar $elhkM = parcelRequire(\"elhkM\");\nclass $06285eac7a7bb2d2$var$HTTPError extends Error {\n constructor(httpStatusCode){\n super(`Unexpected HTTP response: ${httpStatusCode}`);\n this.httpStatusCode = httpStatusCode;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nmodule.exports.HTTPError = $06285eac7a7bb2d2$var$HTTPError;\nconst $06285eac7a7bb2d2$var$IS_WINDOWS = process.platform === \"win32\";\nconst $06285eac7a7bb2d2$var$IS_MAC = process.platform === \"darwin\";\nconst $06285eac7a7bb2d2$var$userAgent = \"actions/tool-cache\";\n/**\n * Download a tool from an url and stream it into a file\n *\n * @param url url of tool to download\n * @param dest path to download tool\n * @param auth authorization header\n * @param headers other headers\n * @returns path to downloaded tool\n */ function $06285eac7a7bb2d2$var$downloadTool(url, dest, auth, headers) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n dest = dest || $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getTempDirectory(), $06285eac7a7bb2d2$var$v4_1.default());\n yield $06285eac7a7bb2d2$var$io.mkdirP($06285eac7a7bb2d2$var$path.dirname(dest));\n $06285eac7a7bb2d2$var$core.debug(`Downloading ${url}`);\n $06285eac7a7bb2d2$var$core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS\", 10);\n const maxSeconds = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS\", 20);\n const retryHelper = new $elhkM.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(()=>$06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n return yield $06285eac7a7bb2d2$var$downloadToolAttempt(url, dest || \"\", auth, headers);\n }), (err)=>{\n if (err instanceof $06285eac7a7bb2d2$var$HTTPError && err.httpStatusCode) {\n // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests\n if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false;\n }\n // Otherwise retry\n return true;\n });\n });\n}\nmodule.exports.downloadTool = $06285eac7a7bb2d2$var$downloadTool;\nfunction $06285eac7a7bb2d2$var$downloadToolAttempt(url, dest, auth, headers) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if ($06285eac7a7bb2d2$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`);\n // Get the response headers\n const http = new $06285eac7a7bb2d2$var$httpm.HttpClient($06285eac7a7bb2d2$var$userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n $06285eac7a7bb2d2$var$core.debug(\"set auth\");\n if (headers === undefined) headers = {};\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new $06285eac7a7bb2d2$var$HTTPError(response.message.statusCode);\n $06285eac7a7bb2d2$var$core.debug(`Failed to download from \"${url}\". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);\n throw err;\n }\n // Download the response body\n const pipeline = $06285eac7a7bb2d2$var$util.promisify($06285eac7a7bb2d2$var$stream.pipeline);\n const responseMessageFactory = $06285eac7a7bb2d2$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY\", ()=>response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, $06285eac7a7bb2d2$var$fs.createWriteStream(dest));\n $06285eac7a7bb2d2$var$core.debug(\"download complete\");\n succeeded = true;\n return dest;\n } finally{\n // Error, delete dest before retry\n if (!succeeded) {\n $06285eac7a7bb2d2$var$core.debug(\"download failed\");\n try {\n yield $06285eac7a7bb2d2$var$io.rmRF(dest);\n } catch (err) {\n $06285eac7a7bb2d2$var$core.debug(`Failed to delete '${dest}'. ${err.message}`);\n }\n }\n }\n });\n}\n/**\n * Extract a .7z file\n *\n * @param file path to the .7z file\n * @param dest destination directory. Optional.\n * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this\n * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will\n * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is\n * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line\n * interface, it is smaller than the full command line interface, and it does support long paths. At the\n * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.\n * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path\n * to 7zr.exe can be pass to this function.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extract7z(file, dest, _7zPath) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n $e2xck$assert.ok($06285eac7a7bb2d2$var$IS_WINDOWS, \"extract7z() not supported on current OS\");\n $e2xck$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) try {\n const logLevel = $06285eac7a7bb2d2$var$core.isDebug() ? \"-bb1\" : \"-bb0\";\n const args = [\n \"x\",\n logLevel,\n \"-bd\",\n \"-sccUTF-8\",\n file\n ];\n const options = {\n silent: true\n };\n yield $ioM8U.exec(`\"${_7zPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n else {\n const escapedScript = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$$parcel$__dirname, \"..\", \"scripts\", \"Invoke-7zdec.ps1\").replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const escapedTarget = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n command\n ];\n const options = {\n silent: true\n };\n try {\n const powershellPath = yield $06285eac7a7bb2d2$var$io.which(\"powershell\", true);\n yield $ioM8U.exec(`\"${powershellPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nmodule.exports.extract7z = $06285eac7a7bb2d2$var$extract7z;\n/**\n * Extract a compressed tar archive\n *\n * @param file path to the tar\n * @param dest destination directory. Optional.\n * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractTar(file, dest, flags = \"xz\") {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n // Create dest\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n // Determine whether GNU tar\n $06285eac7a7bb2d2$var$core.debug(\"Checking tar --version\");\n let versionOutput = \"\";\n yield $ioM8U.exec(\"tar --version\", [], {\n ignoreReturnCode: true,\n silent: true,\n listeners: {\n stdout: (data)=>versionOutput += data.toString(),\n stderr: (data)=>versionOutput += data.toString()\n }\n });\n $06285eac7a7bb2d2$var$core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes(\"GNU TAR\");\n // Initialize args\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n if ($06285eac7a7bb2d2$var$core.isDebug() && !flags.includes(\"v\")) args.push(\"-v\");\n let destArg = dest;\n let fileArg = file;\n if ($06285eac7a7bb2d2$var$IS_WINDOWS && isGnuTar) {\n args.push(\"--force-local\");\n destArg = dest.replace(/\\\\/g, \"/\");\n // Technically only the dest needs to have `/` but for aesthetic consistency\n // convert slashes in the file arg too.\n fileArg = file.replace(/\\\\/g, \"/\");\n }\n if (isGnuTar) {\n // Suppress warnings when using GNU tar to extract archives created by BSD tar\n args.push(\"--warning=no-unknown-keyword\");\n args.push(\"--overwrite\");\n }\n args.push(\"-C\", destArg, \"-f\", fileArg);\n yield $ioM8U.exec(`tar`, args);\n return dest;\n });\n}\nmodule.exports.extractTar = $06285eac7a7bb2d2$var$extractTar;\n/**\n * Extract a xar compatible archive\n *\n * @param file path to the archive\n * @param dest destination directory. Optional.\n * @param flags flags for the xar. Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractXar(file, dest, flags = []) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n $e2xck$assert.ok($06285eac7a7bb2d2$var$IS_MAC, \"extractXar() not supported on current OS\");\n $e2xck$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n args.push(\"-x\", \"-C\", dest, \"-f\", file);\n if ($06285eac7a7bb2d2$var$core.isDebug()) args.push(\"-v\");\n const xarPath = yield $06285eac7a7bb2d2$var$io.which(\"xar\", true);\n yield $ioM8U.exec(`\"${xarPath}\"`, $06285eac7a7bb2d2$var$_unique(args));\n return dest;\n });\n}\nmodule.exports.extractXar = $06285eac7a7bb2d2$var$extractXar;\n/**\n * Extract a zip\n *\n * @param file path to the zip\n * @param dest destination directory. Optional.\n * @returns path to the destination directory\n */ function $06285eac7a7bb2d2$var$extractZip(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n dest = yield $06285eac7a7bb2d2$var$_createExtractFolder(dest);\n if ($06285eac7a7bb2d2$var$IS_WINDOWS) yield $06285eac7a7bb2d2$var$extractZipWin(file, dest);\n else yield $06285eac7a7bb2d2$var$extractZipNix(file, dest);\n return dest;\n });\n}\nmodule.exports.extractZip = $06285eac7a7bb2d2$var$extractZip;\nfunction $06285eac7a7bb2d2$var$extractZipWin(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n // build the powershell command\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedDest = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const pwshPath = yield $06285eac7a7bb2d2$var$io.which(\"pwsh\", false);\n //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory\n //and the -Force flag for Expand-Archive as a fallback\n if (pwshPath) {\n //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive\n const pwshCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,\n `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,\n `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n pwshCommand\n ];\n $06285eac7a7bb2d2$var$core.debug(`Using pwsh at path: ${pwshPath}`);\n yield $ioM8U.exec(`\"${pwshPath}\"`, args);\n } else {\n const powershellCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,\n `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,\n `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n powershellCommand\n ];\n const powershellPath = yield $06285eac7a7bb2d2$var$io.which(\"powershell\", true);\n $06285eac7a7bb2d2$var$core.debug(`Using powershell at path: ${powershellPath}`);\n yield $ioM8U.exec(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction $06285eac7a7bb2d2$var$extractZipNix(file, dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n const unzipPath = yield $06285eac7a7bb2d2$var$io.which(\"unzip\", true);\n const args = [\n file\n ];\n if (!$06285eac7a7bb2d2$var$core.isDebug()) args.unshift(\"-q\");\n args.unshift(\"-o\"); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield $ioM8U.exec(`\"${unzipPath}\"`, args, {\n cwd: dest\n });\n });\n}\n/**\n * Caches a directory and installs it into the tool cacheDir\n *\n * @param sourceDir the directory to cache into tools\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $06285eac7a7bb2d2$var$cacheDir(sourceDir, tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n version = $06285eac7a7bb2d2$var$semver.clean(version) || version;\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n $06285eac7a7bb2d2$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $06285eac7a7bb2d2$var$core.debug(`source dir: ${sourceDir}`);\n if (!$06285eac7a7bb2d2$var$fs.statSync(sourceDir).isDirectory()) throw new Error(\"sourceDir is not a directory\");\n // Create the tool dir\n const destPath = yield $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch);\n // copy each child item. do not move. move can fail on Windows\n // due to anti-virus software having an open handle on a file.\n for (const itemName of $06285eac7a7bb2d2$var$fs.readdirSync(sourceDir)){\n const s = $06285eac7a7bb2d2$var$path.join(sourceDir, itemName);\n yield $06285eac7a7bb2d2$var$io.cp(s, destPath, {\n recursive: true\n });\n }\n // write .complete\n $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nmodule.exports.cacheDir = $06285eac7a7bb2d2$var$cacheDir;\n/**\n * Caches a downloaded file (GUID) and installs it\n * into the tool cache with a given targetName\n *\n * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.\n * @param targetFile the name of the file name in the tools directory\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $06285eac7a7bb2d2$var$cacheFile(sourceFile, targetFile, tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n version = $06285eac7a7bb2d2$var$semver.clean(version) || version;\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n $06285eac7a7bb2d2$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $06285eac7a7bb2d2$var$core.debug(`source file: ${sourceFile}`);\n if (!$06285eac7a7bb2d2$var$fs.statSync(sourceFile).isFile()) throw new Error(\"sourceFile is not a file\");\n // create the tool dir\n const destFolder = yield $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch);\n // copy instead of move. move can fail on Windows due to\n // anti-virus software having an open handle on a file.\n const destPath = $06285eac7a7bb2d2$var$path.join(destFolder, targetFile);\n $06285eac7a7bb2d2$var$core.debug(`destination file ${destPath}`);\n yield $06285eac7a7bb2d2$var$io.cp(sourceFile, destPath);\n // write .complete\n $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nmodule.exports.cacheFile = $06285eac7a7bb2d2$var$cacheFile;\n/**\n * Finds the path to a tool version in the local installed tool cache\n *\n * @param toolName name of the tool\n * @param versionSpec version of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $06285eac7a7bb2d2$var$find(toolName, versionSpec, arch) {\n if (!toolName) throw new Error(\"toolName parameter is required\");\n if (!versionSpec) throw new Error(\"versionSpec parameter is required\");\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n // attempt to resolve an explicit version\n if (!$06285eac7a7bb2d2$var$isExplicitVersion(versionSpec)) {\n const localVersions = $06285eac7a7bb2d2$var$findAllVersions(toolName, arch);\n const match = $06285eac7a7bb2d2$var$evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = \"\";\n if (versionSpec) {\n versionSpec = $06285eac7a7bb2d2$var$semver.clean(versionSpec) || \"\";\n const cachePath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), toolName, versionSpec, arch);\n $06285eac7a7bb2d2$var$core.debug(`checking cache: ${cachePath}`);\n if ($06285eac7a7bb2d2$var$fs.existsSync(cachePath) && $06285eac7a7bb2d2$var$fs.existsSync(`${cachePath}.complete`)) {\n $06285eac7a7bb2d2$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n } else $06285eac7a7bb2d2$var$core.debug(\"not found\");\n }\n return toolPath;\n}\nmodule.exports.find = $06285eac7a7bb2d2$var$find;\n/**\n * Finds the paths to all versions of a tool that are installed in the local tool cache\n *\n * @param toolName name of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $06285eac7a7bb2d2$var$findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || $06285eac7a7bb2d2$var$os.arch();\n const toolPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), toolName);\n if ($06285eac7a7bb2d2$var$fs.existsSync(toolPath)) {\n const children = $06285eac7a7bb2d2$var$fs.readdirSync(toolPath);\n for (const child of children)if ($06285eac7a7bb2d2$var$isExplicitVersion(child)) {\n const fullPath = $06285eac7a7bb2d2$var$path.join(toolPath, child, arch || \"\");\n if ($06285eac7a7bb2d2$var$fs.existsSync(fullPath) && $06285eac7a7bb2d2$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child);\n }\n }\n return versions;\n}\nmodule.exports.findAllVersions = $06285eac7a7bb2d2$var$findAllVersions;\nfunction $06285eac7a7bb2d2$var$getManifestFromRepo(owner, repo, auth, branch = \"master\") {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n let releases = [];\n const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;\n const http = new $06285eac7a7bb2d2$var$httpm.HttpClient(\"tool-cache\");\n const headers = {};\n if (auth) {\n $06285eac7a7bb2d2$var$core.debug(\"set auth\");\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) return releases;\n let manifestUrl = \"\";\n for (const item of response.result.tree)if (item.path === \"versions-manifest.json\") {\n manifestUrl = item.url;\n break;\n }\n headers[\"accept\"] = \"application/vnd.github.VERSION.raw\";\n let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody();\n if (versionsRaw) {\n // shouldn't be needed but protects against invalid json saved with BOM\n versionsRaw = versionsRaw.replace(/^\\uFEFF/, \"\");\n try {\n releases = JSON.parse(versionsRaw);\n } catch (_a) {\n $06285eac7a7bb2d2$var$core.debug(\"Invalid json\");\n }\n }\n return releases;\n });\n}\nmodule.exports.getManifestFromRepo = $06285eac7a7bb2d2$var$getManifestFromRepo;\nfunction $06285eac7a7bb2d2$var$findFromManifest(versionSpec, stable, manifest, archFilter = $06285eac7a7bb2d2$var$os.arch()) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n // wrap the internal impl\n const match = yield $06285eac7a7bb2d2$var$mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nmodule.exports.findFromManifest = $06285eac7a7bb2d2$var$findFromManifest;\nfunction $06285eac7a7bb2d2$var$_createExtractFolder(dest) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n if (!dest) // create a temp dir\n dest = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getTempDirectory(), $06285eac7a7bb2d2$var$v4_1.default());\n yield $06285eac7a7bb2d2$var$io.mkdirP(dest);\n return dest;\n });\n}\nfunction $06285eac7a7bb2d2$var$_createToolPath(tool, version, arch) {\n return $06285eac7a7bb2d2$var$__awaiter(this, void 0, void 0, function*() {\n const folderPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), tool, $06285eac7a7bb2d2$var$semver.clean(version) || version, arch || \"\");\n $06285eac7a7bb2d2$var$core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield $06285eac7a7bb2d2$var$io.rmRF(folderPath);\n yield $06285eac7a7bb2d2$var$io.rmRF(markerPath);\n yield $06285eac7a7bb2d2$var$io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction $06285eac7a7bb2d2$var$_completeToolPath(tool, version, arch) {\n const folderPath = $06285eac7a7bb2d2$var$path.join($06285eac7a7bb2d2$var$_getCacheDirectory(), tool, $06285eac7a7bb2d2$var$semver.clean(version) || version, arch || \"\");\n const markerPath = `${folderPath}.complete`;\n $06285eac7a7bb2d2$var$fs.writeFileSync(markerPath, \"\");\n $06285eac7a7bb2d2$var$core.debug(\"finished caching tool\");\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */ function $06285eac7a7bb2d2$var$isExplicitVersion(versionSpec) {\n const c = $06285eac7a7bb2d2$var$semver.clean(versionSpec) || \"\";\n $06285eac7a7bb2d2$var$core.debug(`isExplicit: ${c}`);\n const valid = $06285eac7a7bb2d2$var$semver.valid(c) != null;\n $06285eac7a7bb2d2$var$core.debug(`explicit? ${valid}`);\n return valid;\n}\nmodule.exports.isExplicitVersion = $06285eac7a7bb2d2$var$isExplicitVersion;\n/**\n * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec`\n *\n * @param versions array of versions to evaluate\n * @param versionSpec semantic version spec to satisfy\n */ function $06285eac7a7bb2d2$var$evaluateVersions(versions, versionSpec) {\n let version = \"\";\n $06285eac7a7bb2d2$var$core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b)=>{\n if ($06285eac7a7bb2d2$var$semver.gt(a, b)) return 1;\n return -1;\n });\n for(let i = versions.length - 1; i >= 0; i--){\n const potential = versions[i];\n const satisfied = $06285eac7a7bb2d2$var$semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) $06285eac7a7bb2d2$var$core.debug(`matched: ${version}`);\n else $06285eac7a7bb2d2$var$core.debug(\"match not found\");\n return version;\n}\nmodule.exports.evaluateVersions = $06285eac7a7bb2d2$var$evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */ function $06285eac7a7bb2d2$var$_getCacheDirectory() {\n const cacheDirectory = process.env[\"RUNNER_TOOL_CACHE\"] || \"\";\n $e2xck$assert.ok(cacheDirectory, \"Expected RUNNER_TOOL_CACHE to be defined\");\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */ function $06285eac7a7bb2d2$var$_getTempDirectory() {\n const tempDirectory = process.env[\"RUNNER_TEMP\"] || \"\";\n $e2xck$assert.ok(tempDirectory, \"Expected RUNNER_TEMP to be defined\");\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */ function $06285eac7a7bb2d2$var$_getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */ function $06285eac7a7bb2d2$var$_unique(values) {\n return Array.from(new Set(values));\n}\n\n});\nparcelRegister(\"8YqHc\", function(module, exports) {\n\"use strict\";\nvar $6888a29219fb1109$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $6888a29219fb1109$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $6888a29219fb1109$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $6888a29219fb1109$var$__createBinding(result, mod, k);\n }\n $6888a29219fb1109$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $6888a29219fb1109$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $6888a29219fb1109$var$semver = $6888a29219fb1109$var$__importStar((parcelRequire(\"bD1rN\")));\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nfunction $6888a29219fb1109$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $6888a29219fb1109$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $e2xck$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $lUL8q.debug(`check ${version} satisfies ${versionSpec}`);\n if ($6888a29219fb1109$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $lUL8q.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $6888a29219fb1109$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $lUL8q.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $6888a29219fb1109$var$_findMatch;\nfunction $6888a29219fb1109$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $e2xck$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $e2xck$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $6888a29219fb1109$var$_getOsVersion;\nfunction $6888a29219fb1109$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($e2xck$fs.existsSync(lsbReleaseFile)) contents = $e2xck$fs.readFileSync(lsbReleaseFile).toString();\n else if ($e2xck$fs.existsSync(osReleaseFile)) contents = $e2xck$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $6888a29219fb1109$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"bD1rN\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"lctVY\", function(module, exports) {\n\nvar $jzaSY = parcelRequire(\"jzaSY\");\n\nvar $jGQv3 = parcelRequire(\"jGQv3\");\nfunction $f6f1f03a6ff46dc1$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $jzaSY)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $jGQv3(rnds);\n}\nmodule.exports = $f6f1f03a6ff46dc1$var$v4;\n\n});\nparcelRegister(\"jzaSY\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $e2xck$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"jGQv3\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $e55aa9f22cc79472$var$byteToHex = [];\nfor(var $e55aa9f22cc79472$var$i = 0; $e55aa9f22cc79472$var$i < 256; ++$e55aa9f22cc79472$var$i)$e55aa9f22cc79472$var$byteToHex[$e55aa9f22cc79472$var$i] = ($e55aa9f22cc79472$var$i + 0x100).toString(16).substr(1);\nfunction $e55aa9f22cc79472$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $e55aa9f22cc79472$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $e55aa9f22cc79472$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"elhkM\", function(module, exports) {\n\"use strict\";\nvar $a710790bc80709cf$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $a710790bc80709cf$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $a710790bc80709cf$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $a710790bc80709cf$var$__createBinding(result, mod, k);\n }\n $a710790bc80709cf$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $a710790bc80709cf$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $a710790bc80709cf$var$core = $a710790bc80709cf$var$__importStar((parcelRequire(\"lUL8q\")));\n/**\n * Internal class for retries\n */ class $a710790bc80709cf$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $a710790bc80709cf$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $a710790bc80709cf$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $a710790bc80709cf$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $a710790bc80709cf$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $a710790bc80709cf$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"j3bdl\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $1759792e09a4a347$export$43d689d19c89c31d);\n\n\nvar $fujKW = parcelRequire(\"fujKW\");\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\nasync function $1759792e09a4a347$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $1759792e09a4a347$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $fujKW.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $fujKW.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $lUL8q.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $lUL8q.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $1759792e09a4a347$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $fujKW.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $c6Y2q.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $e2xck$path.join(installDir, pipDir);\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $e2xck$path.join((0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $fujKW.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $lUL8q.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $lUL8q.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $lUL8q.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $lUL8q.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $lUL8q.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $lUL8q.addPath(pythonLocation);\n $lUL8q.addPath(_binDir);\n }\n $lUL8q.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $lUL8q.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $1759792e09a4a347$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $c6Y2q.IS_WINDOWS) ? $1759792e09a4a347$export$139298be7eb2bd(pythonVersion) : $wMbNK.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $c6Y2q.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $c6Y2q.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $24j9d.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $lUL8q.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $1759792e09a4a347$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $fujKW.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $c6Y2q.validateVersion)(pythonVersion) || !(0, $c6Y2q.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $c6Y2q.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $1759792e09a4a347$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $c6Y2q.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $wMbNK.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"fujKW\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $93b2da48e4863ac9$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $93b2da48e4863ac9$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $93b2da48e4863ac9$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $93b2da48e4863ac9$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $93b2da48e4863ac9$export$4e25ef8c836002b9);\n\n\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $wMbNK = parcelRequire(\"wMbNK\");\n\nvar $24j9d = parcelRequire(\"24j9d\");\n\nvar $l6zH0 = parcelRequire(\"l6zH0\");\n\nvar $ioM8U = parcelRequire(\"ioM8U\");\n\n\nvar $c6Y2q = parcelRequire(\"c6Y2q\");\nasync function $93b2da48e4863ac9$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases ?? await $93b2da48e4863ac9$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $lUL8q.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($e2xck$os.EOL));\n releaseData = $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $lUL8q.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $wMbNK.downloadTool(downloadUrl);\n $lUL8q.info(\"Extracting downloaded archive...\");\n if (0, $c6Y2q.IS_WINDOWS) downloadDir = await $wMbNK.extractZip(pypyPath);\n else downloadDir = await $wMbNK.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($e2xck$fs))).readdirSync(downloadDir)[0];\n const toolDir = $e2xck$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $c6Y2q.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $wMbNK.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $c6Y2q.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $93b2da48e4863ac9$export$a053ce7a690fbb2e(installDir);\n await $93b2da48e4863ac9$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $93b2da48e4863ac9$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $wMbNK.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $lUL8q.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $lUL8q.info(err.message);\n if (err.stack !== undefined) $lUL8q.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $93b2da48e4863ac9$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $l6zH0.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $93b2da48e4863ac9$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $24j9d.coerce(pythonVersion);\n const pythonBinaryPostfix = $24j9d.major(version);\n const pythonMinor = $24j9d.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $c6Y2q.IS_WINDOWS) ? \".exe\" : \"\";\n $lUL8q.info(\"Creating symlinks...\");\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $c6Y2q.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $93b2da48e4863ac9$var$installPip(pythonLocation) {\n $lUL8q.info(\"Installing and updating pip\");\n const pythonBinary = $e2xck$path.join(pythonLocation, \"python\");\n await $ioM8U.exec(`${pythonBinary} -m ensurepip`);\n await $ioM8U.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $93b2da48e4863ac9$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $24j9d.satisfies($24j9d.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $c6Y2q.isNightlyKeyword)(pypyVersion) && (0, $c6Y2q.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $24j9d.satisfies($93b2da48e4863ac9$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $c6Y2q.IS_WINDOWS) ? $93b2da48e4863ac9$export$652444ba12a0c7bb(item, architecture) : $93b2da48e4863ac9$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $24j9d.compare($24j9d.coerce($93b2da48e4863ac9$export$4e25ef8c836002b9(current.pypy_version)), $24j9d.coerce($93b2da48e4863ac9$export$4e25ef8c836002b9(previous.pypy_version))) || $24j9d.compare($24j9d.coerce(current.python_version), $24j9d.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $c6Y2q.IS_WINDOWS) ? $93b2da48e4863ac9$export$672a33957a3c888(foundRelease, architecture) : $93b2da48e4863ac9$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $93b2da48e4863ac9$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $e2xck$path.join(installDir, \"bin\");\n return (0, $c6Y2q.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $93b2da48e4863ac9$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $93b2da48e4863ac9$export$652444ba12a0c7bb(item, architecture) {\n architecture = $93b2da48e4863ac9$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $c6Y2q.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $93b2da48e4863ac9$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $93b2da48e4863ac9$export$672a33957a3c888(releases, architecture) {\n architecture = $93b2da48e4863ac9$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $c6Y2q.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $93b2da48e4863ac9$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $93b2da48e4863ac9$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.f93740c6.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/dist/actions/setup-cpp.js b/dist/actions/setup-cpp.js index 1e283f89..937f30d2 100644 --- a/dist/actions/setup-cpp.js +++ b/dist/actions/setup-cpp.js @@ -1,18 +1,18 @@ #!/usr/bin/env node -let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rK({env:n})],pathExt:t?n6.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=n6.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return iQ&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return rQ.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function w({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function y(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return y(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r4(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r2.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oq(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oB());});}),n.getBufferedValue();}function S(e,t,r){let n;let i=aa(e,t,r),o=o5(e,t),a=o4(e,t);ai(a,i.options),ok(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o0(e,Promise.reject(ou({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o1(n),l=oP(n,i.options,s),u=oU(n,i.options,l),c={isCanceled:!1};n.kill=oR.bind(null,n.kill.bind(n)),n.cancel=oL.bind(null,n,c);let d=rZ(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await oJ(n,i.options,u),f=as(i.options,l),h=as(i.options,p),m=as(i.options,d);if(e||0!==t||null!==r){let l=ou({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oz(n,i.options),n.all=oK(n,i.options),oF(n),o0(n,d),n;}function D(e,t,r){let n;let i=aa(e,t,r),o=o5(e,t),a=o4(e,t);ai(a,i.options);let s=oV(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw ou({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=as(i.options,n.stdout,n.error),u=as(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=ou({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){return(process.getuid?.()===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return D(r,n,t);}(R(e,t),r):D(e,O(t),r);}function I(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return S(r,n,t);}(R(e,t),r):S(e,O(t),r);}function R(e,t){return"sudo "+O([e,...t]).join(" ");}function O(e){return e.map(e=>`'${e}'`);}async function C(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(n8).statSync(e).isDirectory();await I("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ac);}}function A(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,n6.join)("/Users/",process.env.SUDO_USER):(0,n6.join)("/home/",process.env.SUDO_USER);{let e=(0,n4.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(ap,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function L(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aM(n,i.options,u),f=a2(i.options,l),h=a2(i.options,p),m=a2(i.options,d);if(e||0!==t||null!==r){let l=af({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return a$(n,i.options),n.all=aP(n,i.options),aO(n),aq(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function M(e,t,r=a7){let n=function(e,t=!1){let r=t?p(nv)(e):e;return p(nE)(r,'"',"\\");}(t??"",r.shouldEscapeSpace);try{if(rO.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,ng.exportVariable)(e,n);}catch(t){(0,rC.error)(t),await F(e,n,r);}else await F(e,n,r);}catch(t){(0,rC.error)(t),(0,ng.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function j(e){if(!(se.some(t=>t.test(e))&&(process.env.PATH?.split(n6.delimiter)??[]).includes(e))){process.env.PATH=`${e}${n6.delimiter}${process.env.PATH}`;try{if(rO.GITHUB_ACTIONS)try{(0,ng.addPath)(e);}catch(t){(0,rC.error)(t),await q(e);}else await q(e);}catch(t){(0,rC.error)(t),(0,ng.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function F(e,t,r){let n=t??"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,ng.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,n8.appendFileSync)(st,` +let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rK({env:n})],pathExt:t?ie.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=ie.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return i3&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return r0.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function w({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function y(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return y(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r8(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r4.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oV(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oX());});}),n.getBufferedValue();}function S(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options),oF(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o5(e,Promise.reject(of({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o4(n),l=oj(n,i.options,s),u=oq(n,i.options,l),c={isCanceled:!1};n.kill=o_.bind(null,n.kill.bind(n)),n.cancel=oU.bind(null,n,c);let d=r1(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await o1(n,i.options,u),f=ap(i.options,l),h=ap(i.options,p),m=ap(i.options,d);if(e||0!==t||null!==r){let l=of({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oJ(n,i.options),n.all=oQ(n,i.options),oH(n),o5(n,d),n;}function D(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options);let s=oY(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw of({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=ap(i.options,n.stdout,n.error),u=ap(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=of({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){return(process.getuid?.()===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return D(r,n,t);}(R(e,t),r):D(e,O(t),r);}function I(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return S(r,n,t);}(R(e,t),r):S(e,O(t),r);}function R(e,t){return"sudo "+O([e,...t]).join(" ");}function O(e){return e.map(e=>`'${e}'`);}async function C(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(it).statSync(e).isDirectory();await I("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ah);}}function A(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,ie.join)("/Users/",process.env.SUDO_USER):(0,ie.join)("/home/",process.env.SUDO_USER);{let e=(0,n7.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(am,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function L(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aB(n,i.options,u),f=a8(i.options,l),h=a8(i.options,p),m=a8(i.options,d);if(e||0!==t||null!==r){let l=av({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return aM(n,i.options),n.all=aj(n,i.options),aL(n),aV(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function M(e,t,r=sn){let n=function(e,t=!1){let r=t?p(nb)(e):e;return p(nx)(r,'"',"\\");}(t??"",r.shouldEscapeSpace);try{if(rO.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ny.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,ny.exportVariable)(e,n);}catch(t){(0,rC.error)(t),await F(e,n,r);}else await F(e,n,r);}catch(t){(0,rC.error)(t),(0,ny.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function j(e){if(!(si.some(t=>t.test(e))&&(process.env.PATH?.split(ie.delimiter)??[]).includes(e))){process.env.PATH=`${e}${ie.delimiter}${process.env.PATH}`;try{if(rO.GITHUB_ACTIONS)try{(0,ny.addPath)(e);}catch(t){(0,rC.error)(t),await q(e);}else await q(e);}catch(t){(0,rC.error)(t),(0,ny.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function F(e,t,r){let n=t??"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ny.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,ny.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,it.appendFileSync)(so,` if [ -z "\${${e}}" ]; then export ${e}="${n}"; fi -`),(0,ng.info)(`if not defined ${e} then ${e}="${n}" was added to "${st}`)):((0,n8.appendFileSync)(st,` +`),(0,ny.info)(`if not defined ${e} then ${e}="${n}" was added to "${so}`)):((0,it.appendFileSync)(so,` export ${e}="${n}" -`),(0,ng.info)(`${e}="${n}" was added to "${st}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,ng.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,n8.appendFileSync)(st,` +`),(0,ny.info)(`${e}="${n}" was added to "${so}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,ny.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,it.appendFileSync)(so,` export PATH="${e}:$PATH" -`),(0,ng.info)(`"${e}" was added to "${st}"`);return;default:return;}}async function B(){if(sr)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,nw.pathExists)(st))&&(0,n8.readFileSync)(st,"utf8").includes(e))return;(0,n8.appendFileSync)(st,` +`),(0,ny.info)(`"${e}" was added to "${so}"`);return;default:return;}}async function B(){if(sa)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,nS.pathExists)(so))&&(0,it.readFileSync)(so,"utf8").includes(e))return;(0,it.appendFileSync)(so,` ${e} -`),(0,ng.info)(`Added ${e} to ${st}`);let t=` +`),(0,ny.info)(`Added ${e} to ${so}`);let t=` # source .cpprc if SOURCE_CPPRC is not set to 0 -if [[ "$SOURCE_CPPRC" != 0 && -f "${st}" ]]; then source "${st}"; fi -`;try{let e=A("~/.profile");(0,n8.appendFileSync)(e,t),(0,ng.info)(`${t} was added to ${e}`);let r=A("~/.bashrc");(0,n8.appendFileSync)(r,t),(0,ng.info)(`${t} was added to ${r}`);}catch(e){(0,rC.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sr=!0;}async function G(){if(await(0,nw.pathExists)(st)){let e=(0,n8.readFileSync)(st,"utf-8").split("\n"),t=[...new Set(e.reverse())].reverse();(0,n8.writeFileSync)(st,t.join("\n")),await C(st);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rC.info)(`Installing ${t} ${r??""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!si||t)&&(K(n),si=!0),so||(await Y(n),so=!0);let i=[...new Set(e.flatMap(e=>e.repositories??[]))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);K(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sa.some(e=>t.includes(e))&&((0,rC.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await S("apt-cache",["search","--names-only",`^${(0,ny.default)(e)}-${(0,ny.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await S("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await S("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${t??""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function K(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function Y(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[J(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),J(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(M("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),M("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function W(){N("gpg",["-k"]);}async function J(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,nw.pathExists)(n))||(W(),await Promise.all(e.map(async e=>{await I("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await I("chmod",["644",n]);}))),n;}catch(e){(0,rC.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function Q(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,nw.pathExists)(r))||(W(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await S("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rO.GITHUB_ACTIONS?I("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),sn(st,` +if [[ "$SOURCE_CPPRC" != 0 && -f "${so}" ]]; then source "${so}"; fi +`;try{let e=A("~/.profile");(0,it.appendFileSync)(e,t),(0,ny.info)(`${t} was added to ${e}`);let r=A("~/.bashrc");(0,it.appendFileSync)(r,t),(0,ny.info)(`${t} was added to ${r}`);}catch(e){(0,rC.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sa=!0;}async function G(){if(await(0,nS.pathExists)(so)){let e=[...new Set((0,it.readFileSync)(so,"utf-8").split("\n").reverse())].reverse();(0,it.writeFileSync)(so,e.join("\n")),await C(so);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rC.info)(`Installing ${t} ${r??""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!sl||t)&&(K(n),sl=!0),su||(await Y(n),su=!0);let i=[...new Set(e.flatMap(e=>e.repositories??[]))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);K(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sc.some(e=>t.includes(e))&&((0,rC.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await S("apt-cache",["search","--names-only",`^${(0,nD.default)(e)}-${(0,nD.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await S("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await S("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${t??""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function K(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function Y(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[J(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),J(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(M("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),M("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function W(){N("gpg",["-k"]);}async function J(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,nS.pathExists)(n))||(W(),await Promise.all(e.map(async e=>{await I("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await I("chmod",["644",n]);}))),n;}catch(e){(0,rC.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function Q(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,nS.pathExists)(r))||(W(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await S("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rO.GITHUB_ACTIONS?I("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),ss(so,` if [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${e} ${e} ${t} ${r}; fi -`));}async function ee(e){try{let{stdout:t}=await S("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nx.dirname)(i)};let o=p(n6).join((0,n4.tmpdir)(),"setup-cpp","brew");await(0,nS.mkdirP)(o),D("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,n6.join)(o,"install.sh");return"linux"===process.platform&&(0,n8.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),D("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await j(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,ng.info)(`Installing ${e} ${t??""} via brew`),ss&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),ss=!0);let n=er();return D((0,nx.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let i=p(rP).sync("choco",{nothrow:!0});if(null!==i)return{binDir:r=(0,nx.dirname)(i)};let o="powershell.exe",a=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==a&&(o=a),D(o,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let s=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await j(s);let l=p(rP).sync("choco",{nothrow:!0});if(r=null!==l?(0,nx.dirname)(l):`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`,await(0,nw.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){(0,rC.info)(`Installing ${e} ${t??""} via chocolatey`),sl&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sl=!0);let n=process.env.PATH,i={...process.env};if(delete i.TMP,delete i.TEMP,delete i.Path,i.PATH=n,void 0!==t&&""!==t)D("choco",["install","-y",e,"--version="+t,...r],{env:i,extendEnv:!1,stdio:"inherit"});else try{D("choco",["install","-y",e,...r],{env:i,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rC.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let o=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`;return await j(o),{binDir:o};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rC.info)(`Installing ${t} ${r??""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await S("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await S("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rC.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await Q("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rC.info)(`Installing ${e} ${t??""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);su||"yay"===r||(N(n,["-Sy","--noconfirm"]),su=!0),sc||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sc=!0);let i=e=>"yay"===r?D(r,["-S","--noconfirm",e]):N(r??n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rC.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await S(e,["-Si",t]);for(let e of n.matchAll(sp))r.push(e[1]);}catch(e){(0,rC.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sg.arch();let n=sv.join(ey(),e);if(sh.existsSync(n)){for(let e of sh.readdirSync(n))if(eE(e)){let i=sv.join(n,e,t||"");sh.existsSync(i)&&sh.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nO(this,void 0,void 0,function*(){return e||(e=sv.join(eb(),sx.default())),yield sf.mkdirP(e),e;});}function eg(e,t,r){return nO(this,void 0,void 0,function*(){let n=sv.join(ey(),e,sw.clean(t)||t,r||"");sd.debug("destination "+n);let i=`${n}.complete`;return yield sf.rmRF(n),yield sf.rmRF(i),yield sf.mkdirP(n),n;});}function ev(e,t,r){let n=sv.join(ey(),e,sw.clean(t)||t,r||""),i=`${n}.complete`;sh.writeFileSync(i,""),sd.debug("finished caching tool");}function eE(e){let t=sw.clean(e)||"";sd.debug("isExplicit: "+t);let r=null!=sw.valid(t);return sd.debug("explicit? "+r),r;}function ew(e,t){let r="";sd.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sw.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sw.satisfies(i,t)){r=i;break;}}return r?sd.debug("matched: "+r):sd.debug("match not found"),r;}function ey(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rD[e];return void 0!==r?r:t;}function eS(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sI(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nD.downloadTool)(o),{name:o,max:4,backoffBase:2e3,report:e=>(0,rC.info)(e)});sR||((0,rC.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),sR=!0),(0,rC.info)(`Extracting ${r} to ${n}`),await u?.(r,n);}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${o}: ${r}`);}return(0,rC.info)(`Add ${d} to PATH`),await j(d),rO.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nD.cacheDir)(n,e,t)),{installDir:c,binDir:d};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await S(await eI(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await C(t),t;}async function eI(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eR(e,t){return eN(e,t);}function eO(e,t){return eN(e,t);}async function eC(e,t,r=["--strip-components=0"]){try{await(0,nS.mkdirP)(t);}catch{}try{await S("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rC.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return C(t),t;}function eA(e,t,r){let n=p(nM)(e)??e;switch(t){case"win32":{let t;let i=p(nU)(n,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?i?"win32-x86":"windows-i386":i?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eO,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nU)(n,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nD.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let i=p(nU)(n,"v3.19.8");t=["aarch64"].includes(r)?i?"Linux-aarch64":"linux-aarch64":i?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nD.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eD("cmake",e,eA,t,r);}function eL(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nq.call(e,0):[];}function e$(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?e$:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nF[r]||(t[r]=e[r]);return t;}(t)),d=new nB(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,w=d.shouldUpdateOnHit,y=function(){var t=g?eL(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)w&&u(d,p,y),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,y));else{var n=e.apply(this,arguments),i=g?t:eL(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(y),v&&s(d,p,y),E&&l(d,p,y);}return h[0];};return y.cache=d,y.fn=e,y.isMemoized=!0,y.options=p,y;}function eU(e,t){return new Promise(r=>{try{let n=(0,ie.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eM(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nV)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function ej(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nH(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eM(e,r)){let e=await n(t,o);if(null!==e){if(await nH(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function eF(e,t=sO){try{let r=await(0,nA.getExecOutput)(e,["--version"]),n=r.stdout||r.stderr||"",i=n.trim().match(t)?.[1];return p(nM)(i)??void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sO){let n=await eF(e,r);return void 0!==n&&""!==t&&-1!==p(nV)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eW(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await S(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rC.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rC.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eK(t);if(void 0!==i){let e=(0,nx.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rO.GITHUB_ACTIONS)try{(0,rC.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rI("kqI8i");await o(e,t,r),i=await eK(t);let a=(0,nx.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rC.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eK(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eK(e),i=(0,nx.dirname)(n);await j(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await S("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nx.join)(e.stdout,"libexec","bin");await j(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eK(e){for(let t of["python3","python"]){let r=await eY(t,e);if(void 0!==r)return r;}}async function eY(e,t){try{if(void 0!==t){let r=(0,nx.join)(t,(0,nx.addExeExt)(e));if((await(0,nw.pathExists)(r))&&(await eq(r,sA.python)))return r;}for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(await eq(t,sA.python))return t;}catch{}}async function eW(e){let t=await eJ();return void 0===t?((0,rC.info)("pip was not found. Installing pip"),await eZ(e),eJ()):t;}async function eJ(){for(let e of["pip3","pip"]){let t=await eQ(e);if(void 0!==t)return t;}}async function eQ(e){try{for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(null!==t&&(await eq(t,sA.pip)))return t;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await S(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rC.info)(t.toString());try{return await S(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rC.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nA.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nx.join)(r,"Scripts"),(0,nx.join)(r,"Scripts","bin"),(0,nx.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in s_?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,s_[e]):e2(t)&&e in sC?sC[e]:"true"===t?"":t??"";}function e2(e){return"true"===e||void 0===e;}async function e5(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e4(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nz.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rC.warning)(e.toString()),null;}}function e6(){let e=p(n4).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await sQ(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,ng.info)(`Installing ${t} ${r??""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await sW(),i.PIPX_BIN_DIR=await sJ()),D(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,ng.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await sL(e),p=await ti(c,t);return await j(p),{binDir:p};}async function e7(e){return 0===(await S(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=A("~/.local/pipx");if(await(0,nw.pathExists)(t))return t;switch(process.platform){case"win32":e=A("~/AppData/Local/pipx");break;case"darwin":e=A("~/Library/Application Support/pipx");break;default:e=A("~/.local/share/pipx");}return await sY(e),await sY((0,nx.join)(e,"trash")),await sY((0,nx.join)(e,"shared")),await sY((0,nx.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=A("~/.local/bin");return await j(e),await sY(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await s$()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await S(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,nw.pathExists)((0,nx.join)(e,(0,nx.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nx.addExeExt)(t),{nothrow:!0});return null!==n?(0,nx.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,ng.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await j(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await j(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nK({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s3[s>>18]+s3[s>>12&s1]+s3[null===o?64:s>>6&s1]+s3[null===a?64:s&s1];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lo(),{devices:n,eject:i}=await r.attach(e),o=n[0];await I("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nD.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eO,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nj)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rC.info)(e)});let t=await tw();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eD("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s0()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eD("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rC.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rC.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await s$()),"",r),n;}default:throw Error("Unsupported platform");}}async function tw(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,nw.pathExists)((0,nx.join)(e,"doxygen.exe")))return await j(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function ty(){if("darwin"===process.platform)try{let e=await(0,nA.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await M("SDKROOT",t.trim()):(0,rC.error)("SDKROOT not set");}catch(e){(0,rC.error)(e);}}function tb(e,t,r){if("win32"===t){let t=la[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eD("g++",e,tb,t,r);}catch(t){(0,rC.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tD(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rC.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tS(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tD(e,t){let r;if(await eo("mingw",e),"x64"===t&&(await(0,nw.pathExists)("C:/tools/mingw64/bin"))?(r="C:/tools/mingw64/bin",await j(r)):"ia32"===t&&(await(0,nw.pathExists)("C:/tools/mingw32/bin"))?(r="C:/tools/mingw32/bin",await j(r)):(await(0,nw.pathExists)(`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(r=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`),void 0!==r)return{binDir:r};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(M("CC",(0,nx.addExeExt)(`${t}/gcc`)),M("CXX",(0,nx.addExeExt)(`${t}/g++`)));else{let i=p(nW)(p(nM)(e)??e);i>=5?(n.push(M("CC",`${t}/gcc-${i}`),M("CXX",`${t}/g++-${i}`)),ec()&&n.push(Z("cc",`${t}/gcc-${i}`,r),Z("cxx",`${t}/g++-${i}`,r),Z("gcc",`${t}/gcc-${i}`,r),Z("g++",`${t}/g++-${i}`,r))):(n.push(M("CC",`${t}/gcc-${e}`),M("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(ty()),rO.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nx.join)(nJ,"gcc_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rC.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}function tI(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eO,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tR(e,t,r){return eD("ninja",e,tI,t,r);}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:eC};}function tC(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:tA};}async function tA(e,t){let r=await eC(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nx.join)(nQ,"gcc13.patch");await S("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rC.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nx.join)(r,"build");return await S(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await S(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await s$()),(0,nx.join)(A("~"),"cmake"),"");e=(0,nx.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tR(e3("ninja",void 0,await s$()),(0,nx.join)(A("~"),"ninja"),"")),e;}async function tL(e,t,r){var n;let i;if("linux"!==process.platform){(0,rC.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eD("kcov",a,tO,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eD("kcov",a,tC,t,r),i;}function t$(e){if(Object.values(lp).includes(e));else if(e in lp)return lp[e];return e;}function tP(e){let t;let r=t$(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){ng.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&n8.existsSync(n))return ng.info("Found with vswhere: "+n),n;ng.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lp).includes(e));else for(let[t,r]of Object.entries(lp))if(r===e)return t;return e;}(e)]:lc;for(let e of ll)for(let t of i)for(let r of lu)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,ng.info("Trying standard location: "+n),n8.existsSync(n))return ng.info("Found standard location: "+n),n;if(ng.info("Not found in standard locations"),n=`${ls}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,n8.existsSync(n))return ng.info("Found VS 2015: "+n),n;throw ng.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,nw.pathExists)(t))&&((0,rC.info)(`Adding ${t} to PATH`),await M("VCTargetsPath",t)),n1(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lv){(0,ng.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(lg(e)),e.addEventListener("abort",()=>{l(lg(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lf();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=o??`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tM(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rC.error)(t),a.push(`${e} failed to install`);}return(0,ng.endGroup)(),l;}async function tM(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lA[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nx.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tj(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await S("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tF("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await ly("/tmp/llvm-setup-cpp.sh","755"),await I("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lv}),await j(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tF(e,t,r,n){var i,o,a,s,l;let u=await lE(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await lw(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rS.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lx.has(e))return null;let r="LLVM-",n=p(nU)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nU)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nH(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lS.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nU)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lD.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lb.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eM(lb,e)[0];}else""!==n&&n in lT?t=lT[n]:(t=lT[lN],(0,rC.warning)(`Falling back to LLVM version ${lN} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nU)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await ej(lb,t,e,tV);return(0,rC.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nx.addExeExt)("clang"),extractFunction:"win32"===t?eR:(e,t)=>eC(e,t,["--strip-components=1"])};}async function tz(e,t,r){let n=await lI(e,t,r);return await tQ(n.installDir??t),n;}async function tK(e,t,r){let[n,i,o]=await Promise.all([tY(e,t,r),lO(r),tZ()]);return n;}async function tY(e,t,r,n=n3.All){let i=parseInt(function(e){if(null===p(nX)(e))try{let t=p(nM)(e);if(null!==t)return(0,rC.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tj(i,n);}catch(e){(0,rC.info)("Failed to install llvm via system package manager "+e);}let o=await eD("llvm",e,tX,t,r);return await lR(i),o;}async function tW(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tJ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await s$()),"",e,40));}async function tQ(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[M("LLVM_PATH",e),M("LD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${t}`),M("DYLD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${r}`),M("LDFLAGS",`-L"${e}/lib"`),M("CPPFLAGS",`-I"${e}/include"`),M("CC",(0,nx.addExeExt)(`${e}/bin/clang`)),M("CXX",(0,nx.addExeExt)(`${e}/bin/clang++`)),M("LIBRARY_PATH",`${e}/lib`),ty()];ec()&&n.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(n);}async function tZ(){if(rO.GITHUB_ACTIONS){let e=(0,nx.join)(n2,"llvm_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rC.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await j("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=nZ(e);(0,rC.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n0(l);u=!0,(0,rC.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rC.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rC.error)(e);}await tk(l,s,r,a,n,i,o),rO.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nx.join)(n5,"msvc_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rC.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nx.dirname)(n)};let i=await Q("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t5(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t4()};}async function t4(){let e="C:/Program Files/OpenCppCoverage";return await j(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await j(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await s$(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eO:eC,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return lC&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nx.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,nw.pathExists)((0,nx.join)(t,(0,nx.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rC.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):D("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nx.dirname)(t),stdio:"inherit"}),D((0,nx.addShExt)((0,nx.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await C(t),await j(t),lC=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nX)(e)||(0,rC.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,ng.startGroup)(`Installing ${s} ${l??""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,n6.join)(r,"llvm"),n);await M("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tS(e,(0,n6.join)(r,"gcc"),n):await tx(e,(0,n6.join)(r,"gcc"),n);o&&(await M("CPPFLAGS","")),await function(e){let t=p(nX)(e),r=null!==t?p(nW)(t):e;return M("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,n6.join)(r,"msvc"),n);o&&(await M("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,ng.notice)("Assuming apple-clang is already installed"),await Promise.all([M("CC","clang"),M("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rC.error)(t),a.push("Failed to install the "+e);}(0,ng.endGroup)();}async function rt(e){let t,r,n=Promise.resolve();rO.GITHUB_ACTIONS||(n=$(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let i=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...lL,"timeout"],default:Object.fromEntries(lL.map(e=>[e,function(e){let t=(0,ng.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});i.help&&((0,rC.info)(` +`));}async function ee(e){try{let{stdout:t}=await S("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nN.dirname)(i)};let o=p(ie).join((0,n7.tmpdir)(),"setup-cpp","brew");await(0,nI.mkdirP)(o),D("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,ie.join)(o,"install.sh");return"linux"===process.platform&&(0,it.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),D("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await j(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,ny.info)(`Installing ${e} ${t??""} via brew`),sp&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),sp=!0);let n=er();return D((0,nN.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let i=p(rP).sync("choco",{nothrow:!0});if(null!==i)return{binDir:r=(0,nN.dirname)(i)};let o="powershell.exe",a=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==a&&(o=a),D(o,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let s=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await j(s);let l=p(rP).sync("choco",{nothrow:!0});if(r=null!==l?(0,nN.dirname)(l):`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`,await(0,nS.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){(0,rC.info)(`Installing ${e} ${t??""} via chocolatey`),sd&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sd=!0);let n=process.env.PATH,i={...process.env};if(delete i.TMP,delete i.TEMP,delete i.Path,i.PATH=n,void 0!==t&&""!==t)D("choco",["install","-y",e,"--version="+t,...r],{env:i,extendEnv:!1,stdio:"inherit"});else try{D("choco",["install","-y",e,...r],{env:i,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rC.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let o=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`;return await j(o),{binDir:o};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rC.info)(`Installing ${t} ${r??""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await S("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await S("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rC.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await Q("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rC.info)(`Installing ${e} ${t??""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);sf||"yay"===r||(N(n,["-Sy","--noconfirm"]),sf=!0),sh||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sh=!0);let i=e=>"yay"===r?D(r,["-S","--noconfirm",e]):N(r??n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rC.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await S(e,["-Si",t]);for(let e of n.matchAll(sm))r.push(e[1]);}catch(e){(0,rC.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sy.arch();let n=sb.join(ey(),e);if(sE.existsSync(n)){for(let e of sE.readdirSync(n))if(eE(e)){let i=sb.join(n,e,t||"");sE.existsSync(i)&&sE.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nL(this,void 0,void 0,function*(){return e||(e=sb.join(eb(),sN.default())),yield sv.mkdirP(e),e;});}function eg(e,t,r){return nL(this,void 0,void 0,function*(){let n=sb.join(ey(),e,sS.clean(t)||t,r||"");sg.debug("destination "+n);let i=`${n}.complete`;return yield sv.rmRF(n),yield sv.rmRF(i),yield sv.mkdirP(n),n;});}function ev(e,t,r){let n=sb.join(ey(),e,sS.clean(t)||t,r||""),i=`${n}.complete`;sE.writeFileSync(i,""),sg.debug("finished caching tool");}function eE(e){let t=sS.clean(e)||"";sg.debug("isExplicit: "+t);let r=null!=sS.valid(t);return sg.debug("explicit? "+r),r;}function ew(e,t){let r="";sg.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sS.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sS.satisfies(i,t)){r=i;break;}}return r?sg.debug("matched: "+r):sg.debug("match not found"),r;}function ey(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rD[e];return void 0!==r?r:t;}function eS(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sA(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nR.downloadTool)(o),{name:o,max:4,backoffBase:2e3,report:e=>(0,rC.info)(e)});s_||((0,rC.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),s_=!0),(0,rC.info)(`Extracting ${r} to ${n}`),await u?.(r,n);}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${o}: ${r}`);}return(0,rC.info)(`Add ${d} to PATH`),await j(d),rO.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nR.cacheDir)(n,e,t)),{installDir:c,binDir:d};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await S(await eI(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await C(t),t;}async function eI(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eR(e,t){return eN(e,t);}function eO(e,t){return eN(e,t);}async function eC(e,t,r=["--strip-components=0"]){try{await(0,nI.mkdirP)(t);}catch{}try{await S("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rC.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return C(t),t;}function eA(e,t,r){let n=p(nB)(e)??e;switch(t){case"win32":{let t;let i=p(nq)(n,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?i?"win32-x86":"windows-i386":i?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eO,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nq)(n,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nR.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let i=p(nq)(n,"v3.19.8");t=["aarch64"].includes(r)?i?"Linux-aarch64":"linux-aarch64":i?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nR.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eD("cmake",e,eA,t,r);}function eL(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nV.call(e,0):[];}function e$(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?e$:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nH[r]||(t[r]=e[r]);return t;}(t)),d=new nX(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,w=d.shouldUpdateOnHit,y=function(){var t=g?eL(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)w&&u(d,p,y),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,y));else{var n=e.apply(this,arguments),i=g?t:eL(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(y),v&&s(d,p,y),E&&l(d,p,y);}return h[0];};return y.cache=d,y.fn=e,y.isMemoized=!0,y.options=p,y;}function eU(e,t){return new Promise(r=>{try{let n=(0,io.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eM(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nY)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function ej(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nK(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eM(e,r)){let e=await n(t,o);if(null!==e){if(await nK(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function eF(e,t=sL){try{let r=await(0,nP.getExecOutput)(e,["--version"]),n=r.stdout||r.stderr||"",i=n.trim().match(t)?.[1];return p(nB)(i)??void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sL){let n=await eF(e,r);return void 0!==n&&""!==t&&-1!==p(nY)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eW(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await S(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rC.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rC.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eK(t);if(void 0!==i){let e=(0,nN.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rO.GITHUB_ACTIONS)try{(0,rC.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rI("kqI8i");await o(e,t,r),i=await eK(t);let a=(0,nN.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rC.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eK(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eK(e),i=(0,nN.dirname)(n);await j(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await S("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nN.join)(e.stdout,"libexec","bin");await j(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eK(e){for(let t of["python3","python"]){let r=await eY(t,e);if(void 0!==r)return r;}}async function eY(e,t){try{if(void 0!==t){let r=(0,nN.join)(t,(0,nN.addExeExt)(e));if((await(0,nS.pathExists)(r))&&(await eq(r,sP.python)))return r;}for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(await eq(t,sP.python))return t;}catch{}}async function eW(e){let t=await eJ();return void 0===t?((0,rC.info)("pip was not found. Installing pip"),await eZ(e),eJ()):t;}async function eJ(){for(let e of["pip3","pip"]){let t=await eQ(e);if(void 0!==t)return t;}}async function eQ(e){try{for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(null!==t&&(await eq(t,sP.pip)))return t;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await S(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rC.info)(t.toString());try{return await S(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rC.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nP.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nN.join)(r,"Scripts"),(0,nN.join)(r,"Scripts","bin"),(0,nN.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in sk?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,sk[e]):e2(t)&&e in s$?s$[e]:"true"===t?"":t??"";}function e2(e){return"true"===e||void 0===e;}async function e5(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e4(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nJ.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rC.warning)(e.toString()),null;}}function e6(){let e=p(n7).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await s3(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,ny.info)(`Installing ${t} ${r??""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await s0(),i.PIPX_BIN_DIR=await s1()),D(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,ny.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await sU(e),p=await ti(c,t);return await j(p),{binDir:p};}async function e7(e){return 0===(await S(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=A("~/.local/pipx");if(await(0,nS.pathExists)(t))return t;switch(process.platform){case"win32":e=A("~/AppData/Local/pipx");break;case"darwin":e=A("~/Library/Application Support/pipx");break;default:e=A("~/.local/share/pipx");}return await sZ(e),await sZ((0,nN.join)(e,"trash")),await sZ((0,nN.join)(e,"shared")),await sZ((0,nN.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=A("~/.local/bin");return await j(e),await sZ(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await sM()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await S(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,nS.pathExists)((0,nN.join)(e,(0,nN.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nN.addExeExt)(t),{nothrow:!0});return null!==n?(0,nN.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,ny.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await j(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await j(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nQ({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s6[s>>18]+s6[s>>12&s4]+s6[null===o?64:s>>6&s4]+s6[null===a?64:s&s4];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lu(),{devices:n,eject:i}=await r.attach(e),o=n[0];await I("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nR.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eO,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nG)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rC.info)(e)});let t=await tw();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eD("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s5()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eD("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rC.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rC.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await sM()),"",r),n;}default:throw Error("Unsupported platform");}}async function tw(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,nS.pathExists)((0,nN.join)(e,"doxygen.exe")))return await j(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function ty(){if("darwin"===process.platform)try{let e=await(0,nP.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await M("SDKROOT",t.trim()):(0,rC.error)("SDKROOT not set");}catch(e){(0,rC.error)(e);}}function tb(e,t,r){if("win32"===t){let t=lc[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eD("g++",e,tb,t,r);}catch(t){(0,rC.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tD(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rC.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tS(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tD(e,t){let r;if(await eo("mingw",e),"x64"===t&&(await(0,nS.pathExists)("C:/tools/mingw64/bin"))?(r="C:/tools/mingw64/bin",await j(r)):"ia32"===t&&(await(0,nS.pathExists)("C:/tools/mingw32/bin"))?(r="C:/tools/mingw32/bin",await j(r)):(await(0,nS.pathExists)(`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(r=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`),void 0!==r)return{binDir:r};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(M("CC",(0,nN.addExeExt)(`${t}/gcc`)),M("CXX",(0,nN.addExeExt)(`${t}/g++`)));else{let i=p(n0)(p(nB)(e)??e);i>=5?(n.push(M("CC",`${t}/gcc-${i}`),M("CXX",`${t}/g++-${i}`)),ec()&&n.push(Z("cc",`${t}/gcc-${i}`,r),Z("cxx",`${t}/g++-${i}`,r),Z("gcc",`${t}/gcc-${i}`,r),Z("g++",`${t}/g++-${i}`,r))):(n.push(M("CC",`${t}/gcc-${e}`),M("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(ty()),rO.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nN.join)(n1,"gcc_matcher.json");if(!(await(0,nS.pathExists)(e)))return(0,rC.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}function tI(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eO,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tR(e,t,r){return eD("ninja",e,tI,t,r);}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:eC};}function tC(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:tA};}async function tA(e,t){let r=await eC(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nN.join)(n3,"gcc13.patch");await S("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rC.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nN.join)(r,"build");return await S(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await S(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await sM()),(0,nN.join)(A("~"),"cmake"),"");e=(0,nN.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tR(e3("ninja",void 0,await sM()),(0,nN.join)(A("~"),"ninja"),"")),e;}async function tL(e,t,r){var n;let i;if("linux"!==process.platform){(0,rC.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eD("kcov",a,tO,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eD("kcov",a,tC,t,r),i;}function t$(e){if(Object.values(lm).includes(e));else if(e in lm)return lm[e];return e;}function tP(e){let t;let r=t$(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){ny.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&it.existsSync(n))return ny.info("Found with vswhere: "+n),n;ny.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lm).includes(e));else for(let[t,r]of Object.entries(lm))if(r===e)return t;return e;}(e)]:lh;for(let e of ld)for(let t of i)for(let r of lf)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,ny.info("Trying standard location: "+n),it.existsSync(n))return ny.info("Found standard location: "+n),n;if(ny.info("Not found in standard locations"),n=`${lp}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,it.existsSync(n))return ny.info("Found VS 2015: "+n),n;throw ny.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,nS.pathExists)(t))&&((0,rC.info)(`Adding ${t} to PATH`),await M("VCTargetsPath",t)),n4(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lb){(0,ny.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(ly(e)),e.addEventListener("abort",()=>{l(ly(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lv();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=o??`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tM(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rC.error)(t),a.push(`${e} failed to install`);}return(0,ny.endGroup)(),l;}async function tM(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lP[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nN.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tj(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await S("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tF("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await lD("/tmp/llvm-setup-cpp.sh","755"),await I("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lb}),await j(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tF(e,t,r,n){var i,o,a,s,l;let u=await lx(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await lS(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rS.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lN.has(e))return null;let r="LLVM-",n=p(nq)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nq)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nK(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lI.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nq)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lR.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lT.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eM(lT,e)[0];}else""!==n&&n in lO?t=lO[n]:(t=lO[lC],(0,rC.warning)(`Falling back to LLVM version ${lC} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nq)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await ej(lT,t,e,tV);return(0,rC.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nN.addExeExt)("clang"),extractFunction:"win32"===t?eR:(e,t)=>eC(e,t,["--strip-components=1"])};}async function tz(e,t,r){let n=await lA(e,t,r);return await tQ(n.installDir??t),n;}async function tK(e,t,r){let[n,i,o]=await Promise.all([tY(e,t,r),lL(r),tZ()]);return n;}async function tY(e,t,r,n=n6.All){let i=parseInt(function(e){if(null===p(nW)(e))try{let t=p(nB)(e);if(null!==t)return(0,rC.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tj(i,n);}catch(e){(0,rC.info)("Failed to install llvm via system package manager "+e);}let o=await eD("llvm",e,tX,t,r);return await l_(i),o;}async function tW(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tJ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await sM()),"",e,40));}async function tQ(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[M("LLVM_PATH",e),M("LD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${t}`),M("DYLD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${r}`),M("LDFLAGS",`-L"${e}/lib"`),M("CPPFLAGS",`-I"${e}/include"`),M("CC",(0,nN.addExeExt)(`${e}/bin/clang`)),M("CXX",(0,nN.addExeExt)(`${e}/bin/clang++`)),M("LIBRARY_PATH",`${e}/lib`),ty()];ec()&&n.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(n);}async function tZ(){if(rO.GITHUB_ACTIONS){let e=(0,nN.join)(n8,"llvm_matcher.json");if(!(await(0,nS.pathExists)(e)))return(0,rC.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await j("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=n2(e);(0,rC.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n5(l);u=!0,(0,rC.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rC.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rC.error)(e);}await tk(l,s,r,a,n,i,o),rO.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nN.join)(n9,"msvc_matcher.json");if(!(await(0,nS.pathExists)(e)))return(0,rC.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rC.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nN.dirname)(n)};let i=await Q("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t5(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t4()};}async function t4(){let e="C:/Program Files/OpenCppCoverage";return await j(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await j(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await sM(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eO:eC,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return l$&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nN.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,nS.pathExists)((0,nN.join)(t,(0,nN.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rC.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):D("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nN.dirname)(t),stdio:"inherit"}),D((0,nN.addShExt)((0,nN.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await C(t),await j(t),l$=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nW)(e)||(0,rC.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,ny.startGroup)(`Installing ${s} ${l??""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,ie.join)(r,"llvm"),n);await M("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tS(e,(0,ie.join)(r,"gcc"),n):await tx(e,(0,ie.join)(r,"gcc"),n);o&&(await M("CPPFLAGS","")),await function(e){let t=p(nW)(e),r=null!==t?p(n0)(t):e;return M("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,ie.join)(r,"msvc"),n);o&&(await M("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,ny.notice)("Assuming apple-clang is already installed"),await Promise.all([M("CC","clang"),M("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rC.error)(t),a.push("Failed to install the "+e);}(0,ny.endGroup)();}async function rt(e){let t,r,n=Promise.resolve();rO.GITHUB_ACTIONS||(n=$(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let i=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...lU,"timeout"],default:Object.fromEntries(lU.map(e=>[e,function(e){let t=(0,ny.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});i.help&&((0,rC.info)(` setup-cpp [options] setup-cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true @@ -25,15 +25,15 @@ Install all the tools required for building and testing C++/C projects. --$tool_name pass "true" or pass the you would like to install for this tool. e.g. --conan true or --conan "1.42.1" All the available tools: -`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let o=i.architecture??process.arch,a=process.env.SETUP_CPP_DIR??A("~"),s=[],l=[],u=rL.create({autoloadLocales:!0});rL.addLocale(p(r$)),rA.addLocale(p(r_));let c=await s$();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(i,["llvm","clangtidy","clangformat"]))return(0,rC.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rC.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let d=!1,f=!1;for(let e of l_){if(rO.isCI&&0!==l.length){f=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),d=await tU(e,n,c,o,a,s,l,6e4*parseFloat(i.timeout??"20")),r=Date.now(),(0,rC.info)("took "+(u.format(t,r)||"0 seconds")));}if(!f){let e=i.compiler;if(void 0!==e){let t=Date.now();await re(e,c,a,o,s,d,l);let r=Date.now();(0,rC.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await G(),0===s.length&&0===l.length)return(0,rC.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(s.forEach(e=>(0,rC.success)(e)),l.forEach(e=>(0,rC.error)(e)),(0,rC.info)("setup-cpp finished"),!rO.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rC.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rC.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await n,0===l.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,rw,ry,rb,rx,rS,rD,rT,rN,rI,rR,rO,rC,rA,r_,rL,r$,rP,rk,rU,rM,rj,rF,rq,rB,rG,rH,rV,rX,rz,rK,rY,rW,rJ,rQ,rZ,r0,r1,r3,r2,r5,r4,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,nw,ny,nb,nx,nS,nD,nT,nN,nI,nR,nO,nC,nA,n_,nL,n$,nP,nk,nU,nM,nj,nF,nq,nB,nG,nH,nV,nX,nz,nK,nY,nW,nJ,nQ,nZ,n0,n1,n3,n2,n5,n4=require("os"),n6=require("path"),n8=require("fs"),n9=require("crypto"),n7=require("http"),ie=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),rw=require("stream"),ry=require("util"),rb=require("process"),rx=require("url"),rS=require("console"),rT={},rN={},null==(rI=(rD=globalThis).parcelRequire810d)&&((rI=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rD.parcelRequire810d=rI),(rR=rI.register)("l5aZl",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rI("48im1");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rR("48im1",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rR("g0Mwp",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rI("lUL8q"),n=rI("l5aZl");}),rR("lUL8q",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rI("87j2H"),s=rI("7Dlql"),l=rI("gYkCt");let E=i(n4),w=i(n6);u=rI("5oMT9"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${w.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} -Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rI("jaLnB"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rI("jaLnB"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rI("eCzrY"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rR("87j2H",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n4);o=rI("gYkCt"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rR("gYkCt",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rR("7Dlql",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(n8),l=i(n4);o=rI("hpOkk"),a=rI("gYkCt"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rR("hpOkk",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rI("g7JSE"),n=rI("jSP38"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rR("g7JSE",function(e,t){function r(){return i>n.length-16&&(p(n9).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rR("jSP38",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("2OgOb");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rR("2OgOb",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("2UMly"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rR("2UMly",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rR("5oMT9",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rI("l6zH0"),i=rI("5civ3"),o=rI("lUL8q");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. +`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let o=i.architecture??process.arch,a=process.env.SETUP_CPP_DIR??A("~"),s=[],l=[],u=rL.create({autoloadLocales:!0});rL.addLocale(p(r$)),rA.addLocale(p(r_));let c=await sM();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(i,["llvm","clangtidy","clangformat"]))return(0,rC.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rC.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let d=!1,f=!1;for(let e of lk){if(rO.isCI&&0!==l.length){f=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),d=await tU(e,n,c,o,a,s,l,6e4*parseFloat(i.timeout??"20")),r=Date.now(),(0,rC.info)("took "+(u.format(t,r)||"0 seconds")));}if(!f){let e=i.compiler;if(void 0!==e){let t=Date.now();await re(e,c,a,o,s,d,l);let r=Date.now();(0,rC.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await G(),0===s.length&&0===l.length)return(0,rC.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(s.forEach(e=>(0,rC.success)(e)),l.forEach(e=>(0,rC.error)(e)),(0,rC.info)("setup-cpp finished"),!rO.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rC.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rC.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await n,0===l.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,rw,ry,rb,rx,rS,rD,rT,rN,rI,rR,rO,rC,rA,r_,rL,r$,rP,rk,rU,rM,rj,rF,rq,rB,rG,rH,rV,rX,rz,rK,rY,rW,rJ,rQ,rZ,r0,r1,r3,r2,r5,r4,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,nw,ny,nb,nx,nS,nD,nT,nN,nI,nR,nO,nC,nA,n_,nL,n$,nP,nk,nU,nM,nj,nF,nq,nB,nG,nH,nV,nX,nz,nK,nY,nW,nJ,nQ,nZ,n0,n1,n3,n2,n5,n4,n6,n8,n9,n7=require("os"),ie=require("path"),it=require("fs"),ir=require("crypto"),ii=require("http"),io=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),rw=require("stream"),ry=require("util"),rb=require("process"),rx=require("url"),rS=require("console"),rT={},rN={},null==(rI=(rD=globalThis).parcelRequire810d)&&((rI=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rD.parcelRequire810d=rI),(rR=rI.register)("l5aZl",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rI("48im1");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rR("48im1",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rR("g0Mwp",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rI("lUL8q"),n=rI("l5aZl");}),rR("lUL8q",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rI("87j2H"),s=rI("7Dlql"),l=rI("gYkCt");let E=i(n7),w=i(ie);u=rI("5oMT9"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${w.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rI("jaLnB"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rI("jaLnB"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rI("eCzrY"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rR("87j2H",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n7);o=rI("gYkCt"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rR("gYkCt",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rR("7Dlql",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(it),l=i(n7);o=rI("hpOkk"),a=rI("gYkCt"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rR("hpOkk",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rI("g7JSE"),n=rI("jSP38"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rR("g7JSE",function(e,t){function r(){return i>n.length-16&&(p(ir).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rR("jSP38",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("2OgOb");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rR("2OgOb",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("2UMly"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rR("2UMly",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rR("5oMT9",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rI("l6zH0"),i=rI("5civ3"),o=rI("lUL8q");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. Error Code : ${e.statusCode} - Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rR("l6zH0",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(n7),d=i(ie),f=i(rI("40WgE")),h=i(rI("3zxaw"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class w{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=w,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new w(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},y(this.requestOptions.headers),y(e||{})):y(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=y(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let y=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rR("40WgE",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rR("3zxaw",function(e,t){e.exports=rI("zoNP8");}),rR("zoNP8",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||n7.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=n7.request,t;},n=function(e){var t=new l(e);return t.request=n7.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=ie.request,t;},o=function(e){var t=new l(e);return t.request=ie.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},a=s=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:function(){};}),rR("5civ3",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rR("jaLnB",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=n8.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,n8.constants.R_OK|n8.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n4.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rR("eCzrY",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(n6);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rR("kspKY",function(e,t){var r=n6.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rR("dl3mv",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rI("hapVv"),i=rI("joCBa");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){var t;let r=s[e.locale],n=e.unitTypeLookupOrder.slice();n.unshift(e.unitType),t=n;let i=null;if((n=Array.from(new Set(t))).some(function(e){if(void 0!==r[e])return i=r[e],!0;}),null===i)throw Error("Can not find any unit type data for locale: "+e.locale);return i;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rR("hapVv",function(e,t){e.exports=rI("kspKY");}),rR("joCBa",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rR("ipr2f",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),m("COERCERTL",u[c.COERCE],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rR("84nXv",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rR("dc2zw",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rR("bmedX",function(e,t){var r=rI("dc2zw"),n=rI("84nXv"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rI("aYJ5s"),s=a.safeRe,l=a.t,u=rI("9rxnK"),c=rI("lG7j5").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rR("9rxnK",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rR("lG7j5",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rR("9fZKy",function(e,t){var r=rI("bmedX");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rR("SUO5C",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rR("5UYbM",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rR("g4dmV",function(e,t){var r=rI("bmedX");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rR("avNOz",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rR("3nHUu",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).major;}),rR("dYfT7",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).minor;}),rR("9h5Uk",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).patch;}),rR("1oG7j",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rR("dKY2K",function(e,t){var r=rI("bmedX");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rR("9fB4n",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(t,e,n);}),rR("b7w7T",function(e,t){var r=rI("dKY2K");e.exports=(e,t)=>r(e,t,!0);}),rR("4Cdie",function(e,t){var r=rI("bmedX");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rR("4Jb5D",function(e,t){var r=rI("4Cdie");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rR("hhi7M",function(e,t){var r=rI("4Cdie");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rR("cmfRl",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(e,t,n)>0;}),rR("9cmQV",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0>r(e,t,n);}),rR("dLLSg",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0===r(e,t,n);}),rR("7CMva",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0!==r(e,t,n);}),rR("8dSFQ",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rR("eekMY",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0>=r(e,t,n);}),rR("3ktqT",function(e,t){var r=rI("dLLSg"),n=rI("7CMva"),i=rI("cmfRl"),o=rI("8dSFQ"),a=rI("9cmQV"),s=rI("eekMY");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rR("h5EpL",function(e,t){var r=rI("bmedX"),n=rI("9fZKy"),i=rI("aYJ5s"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let t;for(;(t=o[a.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&t.index+t[0].length===i.index+i[0].length||(i=t),o[a.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[a.COERCERTL].lastIndex=-1;}else i=e.match(o[a.COERCE]);return null===i?null:n(`${i[2]}.${i[3]||"0"}.${i[4]||"0"}`,t);};}),rR("hf4vi",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rI("9rxnK"),o=rI("aYJ5s"),a=o.safeRe,s=o.t,l=rI("3ktqT"),u=rI("dc2zw"),c=rI("bmedX"),p=rI("3ZIKH");}),rR("3ZIKH",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,C(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>y(e,this.options)).join(" ").split(/\s+/).map(e=>O(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>w(r,t)&&e.set.some(e=>w(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,w=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},y=(e,t)=>(a("comp",e,t),a("caret",e=D(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=R(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>S(e,t)).join(" "),S=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},D=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>I(e,t)).join(" ")),I=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},R=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),O=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),C=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),A=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rR("tPjHU",function(e,t){var r=rI("8VtHa");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let w=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;w(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;w(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rR("8VtHa",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rR("iGUY3",function(e,t){var r=rI("3ZIKH");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rR("jpWIo",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rR("dJyj1",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rR("9inVR",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH"),i=rI("cmfRl");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rR("5wxvo",function(e,t){var r=rI("3ZIKH");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rR("16OoL",function(e,t){var r=rI("bmedX"),n=rI("hf4vi");let{ANY:i}=n;var o=rI("3ZIKH"),a=rI("h0AH5"),s=rI("cmfRl"),l=rI("9cmQV"),u=rI("eekMY"),c=rI("8dSFQ");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rR("aNIaY",function(e,t){var r=rI("16OoL");e.exports=(e,t,n)=>r(e,t,">",n);}),rR("huA22",function(e,t){var r=rI("16OoL");e.exports=(e,t,n)=>r(e,t,"<",n);}),rR("hRcmf",function(e,t){var r=rI("3ZIKH");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rR("fnXJa",function(e,t){var r=rI("h0AH5"),n=rI("dKY2K");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,w=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!w&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rR("fQ0Jj",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rR("6afW1",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rR("e19ul",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function w(e,t=!0){return t?(0,n6.basename)(e):(0,n6.basename)(e,(0,n6.extname)(e));}function y(e){return(0,n6.normalize)(e).replace(RegExp((0,r.default)(n6.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,n6.extname)(e),n=`${t}${(0,n6.basename)(e,r)}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function S(e,t){let r=(0,n6.extname)(e),n=`${(0,n6.basename)(e,r)}${t}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function D(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,n6.extname)(e).length;return e.slice(0,-t);}function I(e,t){return p(n)(e,t);}function R(e,t){let r=(0,n6.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+n6.sep)||r===(0,n6.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>D),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>n6.dirname),c(e.exports,"join",()=>n6.join),r=rI("hImoI"),n=rI("f2mBC"),i={},E(o={},"name",()=>w),E(a={},"normalizeTrim",()=>y),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>S),E(d={},"addShExt",()=>D),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>I),E(g={},"isPathInside",()=>R),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rR("hImoI",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rR("f2mBC",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=n6.basename(e,n6.extname(e))+t,i=n6.join(n6.dirname(e),n);return(r=e.slice(0,2))==="."+n6.sep||"./"===r?"."+n6.sep+i:i;};}),rR("jGHPG",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(n6),p=i(rI("akQoU"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rR("akQoU",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(n8),u=i(n6);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rR("aUW7f",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rI("1mmqj"));a=rI("lUL8q"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n4.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n4.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return n8.existsSync(e)?r=n8.readFileSync(e).toString():n8.existsSync(t)&&(r=n8.readFileSync(t).toString()),r;};}),rR("1mmqj",function(e,t){function r(e){O[e]=C++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>S||!(t.loose?I[O.LOOSE]:I[O.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>S)throw TypeError("version is longer than "+S+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?I[O.LOOSE]:I[O.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>D||this.major<0)throw TypeError("Invalid major version");if(this.minor>D||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>D||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===$?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function w(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function y(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(y(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,w=w||e,i(e.semver,E.semver,n)?E=e:s(e.semver,w.semver,n)&&(w=e);}),E.operator===c||E.operator===p||(!w.operator||w.operator===c)&&a(e,w.semver)||w.operator===p&&s(e,w.semver))return!1;}return!0;}t=e.exports=o,x="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",S=256,D=Number.MAX_SAFE_INTEGER||9007199254740991,T=S-6,N=t.re=[],I=t.safeRe=[],R=t.src=[],O=t.tokens={},C=0,_=[["\\s",1],["\\d",S],[A="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),R[O.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),R[O.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),R[O.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+A+"*",r("MAINVERSION"),R[O.MAINVERSION]="("+R[O.NUMERICIDENTIFIER]+")\\.("+R[O.NUMERICIDENTIFIER]+")\\.("+R[O.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),R[O.MAINVERSIONLOOSE]="("+R[O.NUMERICIDENTIFIERLOOSE]+")\\.("+R[O.NUMERICIDENTIFIERLOOSE]+")\\.("+R[O.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),R[O.PRERELEASEIDENTIFIER]="(?:"+R[O.NUMERICIDENTIFIER]+"|"+R[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),R[O.PRERELEASEIDENTIFIERLOOSE]="(?:"+R[O.NUMERICIDENTIFIERLOOSE]+"|"+R[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),R[O.PRERELEASE]="(?:-("+R[O.PRERELEASEIDENTIFIER]+"(?:\\."+R[O.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),R[O.PRERELEASELOOSE]="(?:-?("+R[O.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+R[O.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),R[O.BUILDIDENTIFIER]=A+"+",r("BUILD"),R[O.BUILD]="(?:\\+("+R[O.BUILDIDENTIFIER]+"(?:\\."+R[O.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),R[O.FULLPLAIN]="v?"+R[O.MAINVERSION]+R[O.PRERELEASE]+"?"+R[O.BUILD]+"?",R[O.FULL]="^"+R[O.FULLPLAIN]+"$",r("LOOSEPLAIN"),R[O.LOOSEPLAIN]="[v=\\s]*"+R[O.MAINVERSIONLOOSE]+R[O.PRERELEASELOOSE]+"?"+R[O.BUILD]+"?",r("LOOSE"),R[O.LOOSE]="^"+R[O.LOOSEPLAIN]+"$",r("GTLT"),R[O.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),R[O.XRANGEIDENTIFIERLOOSE]=R[O.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),R[O.XRANGEIDENTIFIER]=R[O.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),R[O.XRANGEPLAIN]="[v=\\s]*("+R[O.XRANGEIDENTIFIER]+")(?:\\.("+R[O.XRANGEIDENTIFIER]+")(?:\\.("+R[O.XRANGEIDENTIFIER]+")(?:"+R[O.PRERELEASE]+")?"+R[O.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),R[O.XRANGEPLAINLOOSE]="[v=\\s]*("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:"+R[O.PRERELEASELOOSE]+")?"+R[O.BUILD]+"?)?)?",r("XRANGE"),R[O.XRANGE]="^"+R[O.GTLT]+"\\s*"+R[O.XRANGEPLAIN]+"$",r("XRANGELOOSE"),R[O.XRANGELOOSE]="^"+R[O.GTLT]+"\\s*"+R[O.XRANGEPLAINLOOSE]+"$",r("COERCE"),R[O.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[O.COERCERTL]=RegExp(R[O.COERCE],"g"),I[O.COERCERTL]=RegExp(n(R[O.COERCE]),"g"),r("LONETILDE"),R[O.LONETILDE]="(?:~>?)",r("TILDETRIM"),R[O.TILDETRIM]="(\\s*)"+R[O.LONETILDE]+"\\s+",N[O.TILDETRIM]=RegExp(R[O.TILDETRIM],"g"),I[O.TILDETRIM]=RegExp(n(R[O.TILDETRIM]),"g"),r("TILDE"),R[O.TILDE]="^"+R[O.LONETILDE]+R[O.XRANGEPLAIN]+"$",r("TILDELOOSE"),R[O.TILDELOOSE]="^"+R[O.LONETILDE]+R[O.XRANGEPLAINLOOSE]+"$",r("LONECARET"),R[O.LONECARET]="(?:\\^)",r("CARETTRIM"),R[O.CARETTRIM]="(\\s*)"+R[O.LONECARET]+"\\s+",N[O.CARETTRIM]=RegExp(R[O.CARETTRIM],"g"),I[O.CARETTRIM]=RegExp(n(R[O.CARETTRIM]),"g"),r("CARET"),R[O.CARET]="^"+R[O.LONECARET]+R[O.XRANGEPLAIN]+"$",r("CARETLOOSE"),R[O.CARETLOOSE]="^"+R[O.LONECARET]+R[O.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),R[O.COMPARATORLOOSE]="^"+R[O.GTLT]+"\\s*("+R[O.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),R[O.COMPARATOR]="^"+R[O.GTLT]+"\\s*("+R[O.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),R[O.COMPARATORTRIM]="(\\s*)"+R[O.GTLT]+"\\s*("+R[O.LOOSEPLAIN]+"|"+R[O.XRANGEPLAIN]+")",N[O.COMPARATORTRIM]=RegExp(R[O.COMPARATORTRIM],"g"),I[O.COMPARATORTRIM]=RegExp(n(R[O.COMPARATORTRIM]),"g"),r("HYPHENRANGE"),R[O.HYPHENRANGE]="^\\s*("+R[O.XRANGEPLAIN]+")\\s+-\\s+("+R[O.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),R[O.HYPHENRANGELOOSE]="^\\s*("+R[O.XRANGEPLAINLOOSE]+")\\s+-\\s+("+R[O.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),R[O.STAR]="(<|>)?=?\\s*\\*";for(var x,S,D,T,N,I,R,O,C,A,_,L,$,P=0;P=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,L=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,$={},m.prototype.parse=function(e){var t=this.options.loose?I[O.COMPARATORLOOSE]:I[O.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=$;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===$||e===$)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),y(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),y(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?I[O.HYPHENRANGELOOSE]:I[O.HYPHENRANGE];e=e.replace(r,w),x("hyphen replace",e),e=e.replace(I[O.COMPARATORTRIM],"$1$2$3"),x("comparator trim",e,I[O.COMPARATORTRIM]),e=(e=(e=e.replace(I[O.TILDETRIM],"$1~")).replace(I[O.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?I[O.COMPARATORLOOSE]:I[O.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?I[O.CARETLOOSE]:I[O.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?I[O.TILDELOOSE]:I[O.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?I[O.XRANGELOOSE]:I[O.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(I[O.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=y,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=I[O.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),I[O.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;I[O.COERCERTL].lastIndex=-1;}else n=e.match(I[O.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rR("b4HqL",function(e,t){var r=rI("djHKf"),n=rI("CMWjw");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rR("djHKf",function(e,t){e.exports=function(){return n9.randomBytes(16);};}),rR("CMWjw",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rR("ioM8U",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rI("7Ee0q"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rR("7Ee0q",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n4),s=i(ro),l=i(ru),u=i(n6),c=i(rI("jGHPG")),p=i(rI("akQoU")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rR("kqI8i",function(e,t){e.exports=Promise.resolve(require("./actions_python.f93740c6.js")).then(()=>rI("i1n7v"));}),rR("9KKJA",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rI("4u2Un"),i=rI("1cH1m"),o=rI("hPwcE"),a=rI("4t75f"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rR("4u2Un",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new A(D,Error(e.tagName+"@"+r));}function j(){}function F(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===F.DOCUMENT_TYPE_NODE;}function K(e){return e&&e.nodeType===F.ELEMENT_NODE;}function Y(e){return e&&e.nodeType===F.TEXT_NODE;}function W(e,t){var r=e.childNodes||[];if(o(r,K)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function J(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return K(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function Q(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===F.DOCUMENT_FRAGMENT_NODE){var a=i.filter(K);if(a.length>1||o(i,Y))throw new A(S,"More than one element or text in fragment");if(1===a.length&&!J(e,r))throw new A(S,"Element in fragment can not be inserted before doctype");}if(K(t)&&!J(e,r))throw new A(S,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new A(S,"Only one doctype is allowed");var s=o(n,K);if(r&&n.indexOf(s)1||o(i,Y))throw new A(S,"More than one element or text in fragment");if(1===a.length&&!W(e,r))throw new A(S,"Element in fragment can not be inserted before doctype");}if(K(t)&&!W(e,r))throw new A(S,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new A(S,"Only one doctype is allowed");var s=o(n,K);if(r&&n.indexOf(s)=0;S--){var D=i[S];if(""===D.prefix&&D.namespace===e.namespaceURI){o=D.namespace;break;}}if(o!==e.namespaceURI)for(var S=i.length-1;S>=0;S--){var D=i[S];if(D.namespace===e.namespaceURI){D.prefix&&(b=D.prefix+":"+y);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var I=N.prefix||"",R=N.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",R),i.push({prefix:I,namespace:R});}eg(N,t,r,n,i);}if(y===b&&eh(e,r,i)){var I=e.prefix||"",R=e.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",R),i.push({prefix:I,namespace:R});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(y)){if(t.push(">"),r&&/^script$/i.test(y))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case w:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var O=e.publicId,C=e.systemId;if(t.push("");else if(C&&"."!=C)t.push(" SYSTEM ",C,">");else{var A=e.internalSubset;A&&t.push(" [",A,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rI("4u2Un")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,w=s.DOCUMENT_FRAGMENT_NODE=11,y=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),S=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),D=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),A.prototype=Error.prototype,O(b,A),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},O(s,F),O(s,F.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==w){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),K(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case w:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=R(e);return new L(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=R(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},C(G,F),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===w?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new L(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new L(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,C(ee,F),et.prototype.nodeType=u,C(et,F),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[S]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},C(er,F),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},C(en,er),ei.prototype={nodeName:"#comment",nodeType:g},C(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},C(eo,er),ea.prototype.nodeType=E,C(ea,F),es.prototype.nodeType=y,C(es,F),el.prototype.nodeType=h,C(el,F),eu.prototype.nodeType=f,C(eu,F),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=w,C(ec,F),ep.prototype.nodeType=m,C(ep,F),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},F.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty(L.prototype,"length",{get:function(){return $(this),this.$$length;}}),Object.defineProperty(F.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case w:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=j,n=ed;}),rR("hPwcE",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rI("4u2Un").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rR("4t75f",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rI("4u2Un").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$340f5d84067e3062$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>w){var r=e.substring(w,t).replace(/&#?\w+;/g,a);g&&c(w),n.characters(r,0,t-w),w=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},w=0;;){try{var y=e.indexOf("<",w);if(y<0){if(!e.substr(w).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(w));b.appendChild(x),n.currentElement=x;}return;}switch(y>w&&l(y),e.charAt(y+1)){case"/":var S=e.indexOf(">",y+3),D=e.substring(y+2,S).replace(/[ \t\n\r]+$/g,""),T=v.pop();S<0?(D=e.substring(y+2).replace(/[\s<].*/,""),o.error("end tag name: "+D+" is not complete:"+T.tagName),S=y+1+D.length):D.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,y,n);break;case"!":g&&c(y),S=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,y,n,o);break;default:g&&c(y);var O=new f(),C=v[v.length-1].currentNSMap,S=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,y,O,C,a,o),A=O.length;if(!O.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))L;L++){var $=O[L];c($.offset),$.locator=u(g,{});}n.locator=_,p(O,n,C)&&v.push(O),n.locator=g;}else p(O,n,C)&&v.push(O);i.isHTML(O.uri)&&!O.closed?S=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,S,O.tagName,a,n):S++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),S=-1;}S>w?w=S:l(Math.max(y,w)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rO=rI("l5aZl"),rC=rI("g0Mwp"),rA=rI("hapVv"),function(){rI("kspKY").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),rL={},rL=rI("dl3mv"),r$={},r$={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iI),c(rk,"sync",()=>iR),n8.promises;const{access:it,appendFile:ir,chmod:ii,chown:io,copyFile:ia,lchmod:is,lchown:il,link:iu,lstat:ic,mkdir:ip,mkdtemp:id,open:ih,readdir:im,readFile:ig,readlink:iv,realpath:iE,rename:iw,rmdir:iy,stat:ib,symlink:ix,truncate:iS,unlink:iD,utimes:iT,writeFile:iN}=n8.promises,iI=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iO(await ib(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iR=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iO((0,n8.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iO=(e,t)=>e.isFile()&&iC(e,t),iC=(e,t)=>{let r=t.uid??process.getuid?.(),n=t.groups??process.getgroups?.()??[],i=t.gid??process.getgid?.()??n[0];if(void 0===r||void 0===i)throw Error("cannot get uid or gid");let o=new Set([i,...n]),a=e.mode,s=e.uid,l=e.gid,u=parseInt("100",8),c=parseInt("010",8);return!!(a&parseInt("001",8)||a&c&&o.has(l)||a&u&&s===r||a&(u|c)&&0===r);};c(rU={},"isexe",()=>iA),c(rU,"sync",()=>i_);const iA=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return i$(await ib(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return i$((0,n8.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iL=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&iL(t,r),iP="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,ik=iP.isexe,iU=iP.sync;rM=n6.join,rj=n6.delimiter,rF=n6.sep,rq=n6.posix;const iM="win32"===process.platform,ij=new RegExp(`[${rq.sep}${rF===rq.sep?"":rF}]`.replace(/(\\)/g,"\\$1")),iF=RegExp("^\\."+ij.source),iq=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iB=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rj})=>{let i=e.match(ij)?[""]:[...(iM?[process.cwd()]:[]),...(t||"").split(n)];if(iM){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iG=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&iF.test(t)?t.slice(0,2):"")+rM(r,t);},iH=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(await ik(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);};rP=iH,iH.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(iU(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);},rB={},rG={},rH={},rV={};const iV="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iX=iV?";":":";rX={},rz="win32"===process.platform||rD.TESTING_WINDOWS?rI("ipr2f"):rI("bn5RY"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iz=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iK=(e,t)=>{let r=t.colon||iX,n=e.match(/\//)||iV&&e.match(/\\/)?[""]:[...(iV?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iV?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iV?i.split(r):[""];return iV&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iY=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iK(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iz(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=n6.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iY,iY.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iK(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rK=iW).default=iW,rH=function(e){return f(e)||f(e,!0);};rY={},rW={},rJ={},rJ=/^#!(.*)/,rW=(e="")=>{let t=e.match(rJ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rY=function(e){let t;let r=Buffer.alloc(150);try{t=n8.openSync(e,"r"),n8.readSync(t,r,0,150,0),n8.closeSync(t);}catch(e){}return rW(r.toString());};const iJ="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!iJ)return e;let t=function(e){e.file=rH(e);let t=e.file&&rY(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){var n;let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=n6.normalize(e.command),e.command=n=(n=e.command).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),e.args=e.args.map(e=>{var t,n;return t=e,n=r,t=(t=(t=""+t).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),t=(t=`"${t}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),n&&(t=t.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),t;});let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},rQ={};const iQ="win32"===process.platform;rQ={hookChildProcess:function(e,t){if(!iQ)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return iQ&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||rQ.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=rQ;const iZ=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i0(i,o)||!n)&&Object.defineProperty(e,r,o);},i0=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i1=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i3=(e,t)=>`/* Wrapped ${e}*/ -${t}`,i2=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i5=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i4=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i3.bind(null,n,t.toString());Object.defineProperty(i,"name",i5),Object.defineProperty(e,"toString",{...i2,value:i});},i6=new WeakMap(),i8=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(i6.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))iZ(e,t,n,r);i1(e,t),i4(e,t,n);}(o,e),i6.set(o,n),o;};i8.callCount=e=>{if(!i6.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i6.get(e);},rZ=i8;const i9=()=>Array.from({length:ot-oe+1},i7),i7=(e,t)=>({name:"SIGRT"+(t+1),number:oe+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oe=34,ot=64,or=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],on=()=>[...or,...i9()].map(oi),oi=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},oo=Object.fromEntries(on().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oa=(e,t)=>{let r=os(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},os=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=on();return Object.assign({},...Array.from({length:ot+1},(t,r)=>oa(r,e)));})();const ol=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",ou=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,m=ol({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} -${n.message}`:g,w=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=w):n=Error(w),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oc=["stdin","stdout","stderr"],op=e=>oc.some(t=>void 0!==e[t]),od=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oc.map(t=>e[t]);if(op(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oc.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oc.length)},(e,r)=>t[r]);};r0={};const of=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(of(r1=rD.process)){var oh,om=ra,og=rI("97KW0"),ov=/^win/i.test(r1.platform),oE=ro;"function"!=typeof oE&&(oE=oE.EventEmitter),r1.__signal_exit_emitter__?oh=r1.__signal_exit_emitter__:((oh=r1.__signal_exit_emitter__=new oE()).count=0,oh.emitted={}),oh.infinite||(oh.setMaxListeners(1/0),oh.infinite=!0);var ow=function(){ox&&of(rD.process)&&(ox=!1,og.forEach(function(e){try{r1.removeListener(e,ob[e]);}catch(e){}}),r1.emit=oN,r1.reallyExit=oD,oh.count-=1);};(r0=function(e,t){if(!of(rD.process))return function(){};om.equal(typeof e,"function","a callback must be provided for exit handler"),!1===ox&&oS();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oh.on(r,e),function(){oh.removeListener(r,e),0===oh.listeners("exit").length&&0===oh.listeners("afterexit").length&&ow();};}).unload=ow;var oy=function(e,t,r){oh.emitted[e]||(oh.emitted[e]=!0,oh.emit(e,t,r));},ob={};og.forEach(function(e){ob[e]=function(){of(rD.process)&&r1.listeners(e).length===oh.count&&(ow(),oy("exit",null,e),oy("afterexit",null,e),ov&&"SIGHUP"===e&&(e="SIGINT"),r1.kill(r1.pid,e));};}),r0.signals=function(){return og;};var ox=!1,oS=function(){!ox&&of(rD.process)&&(ox=!0,oh.count+=1,og=og.filter(function(e){try{return r1.on(e,ob[e]),!0;}catch(e){return!1;}}),r1.emit=oI,r1.reallyExit=oT);};r0.load=oS;var oD=r1.reallyExit,oT=function(e){of(rD.process)&&(r1.exitCode=e||0,oy("exit",r1.exitCode,null),oy("afterexit",r1.exitCode,null),oD.call(r1,r1.exitCode));},oN=r1.emit,oI=function(e,t){if(!("exit"===e&&of(rD.process)))return oN.apply(this,arguments);void 0!==t&&(r1.exitCode=t);var r=oN.apply(this,arguments);return oy("exit",r1.exitCode,null),oy("afterexit",r1.exitCode,null),r;};}else r0=function(){return function(){};};const oR=(e,t="SIGTERM",r={})=>{let n=e(t);return oO(e,t,r,n),n;},oO=(e,t,r,n)=>{if(!oC(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},o_(r));i.unref&&i.unref();},oC=(e,{forceKillAfterTimeout:t},r)=>oA(e)&&!1!==t&&r,oA=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),o_=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oL=(e,t)=>{e.kill()&&(t.isCanceled=!0);},o$=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oP=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{o$(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},ok=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oU=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},oM=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oj=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oM(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oF=e=>{null!==e.stdout&&(e.pipeStdout=oj.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oj.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oj.bind(void 0,e,"all"));};r3={},r2=rE.constants,r5=rs.promisify,r4={},r6=rw.PassThrough,r4=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r6({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oq=r5(rw.pipeline);class oB extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r3=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r3.array=(e,t)=>x(e,{...t,array:!0}),r3.MaxBufferError=oB,r8={},r9=rw.PassThrough,r8=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new r9({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oG=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oH=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.readFileSync)(t)),oV=e=>{let t=oH(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oX=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.createReadStream)(t)),oz=(e,t)=>{let r=oX(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},oK=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oY=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},oW=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},oJ=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=oW(e,{encoding:n,buffer:i,maxBuffer:o}),l=oW(t,{encoding:n,buffer:i,maxBuffer:o}),u=oW(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oY(e,s),oY(t,l),oY(r,u)]);}},oQ=(async()=>{})().constructor.prototype,oZ=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(oQ,e)]),o0=(e,t)=>{for(let[r,n]of oZ){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o1=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o3=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o2=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o5=(e,t)=>o3(e,t).join(" "),o4=(e,t)=>o3(e,t).map(e=>o2(e)).join(" "),o6=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},o8=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},o9=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],o7=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=o9(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return o9(a,Array.isArray(s)?s.map(e=>o8(e)):[o8(s)],o.endsWith(" "));},ae=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=o7({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},at=(0,ry.debuglog)("execa").enabled,ar=(e,t)=>(e+"").padStart(t,"0"),an=()=>{let e=new Date();return`${ar(e.getHours(),2)}:${ar(e.getMinutes(),2)}:${ar(e.getSeconds(),2)}.${ar(e.getMilliseconds(),3)}`;},ai=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${an()}] ${e} -`);},ao=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},aa=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:at,...r}).env=ao(r),r.stdio=od(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},as=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",al=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},au=(e={})=>({preferLocal:!0,...al(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ae(n,i);return S(o,a,au(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ae(e,r);return D(n,i,au(t));},r;}();const ac={stdio:"inherit",shell:!0},ap=/^~(?=$|\/|\\)/;rC=rI("g0Mwp"),r7={},ne=rI("24j9d"),nt=rb.env.npm_package_json,nn=!!((nr=rb.env.npm_config_user_agent)&&nr.startsWith("npm")),ni=!!(nt&&nt.endsWith("package.json")),no=!!(nr&&nr.startsWith("yarn")),na=nn||ni||no,ns=n4.homedir(),nl=process.env.XDG_CONFIG_HOME||n6.join(ns,".config","simple-update-notifier"),nu=function(e){return n6.join(nl,"".concat(e.replace("@","").replace("/","__"),".json"));},nc=function(){n8.existsSync(nl)||n8.mkdirSync(nl,{recursive:!0});},np=function(e){var t=nu(e);try{if(!n8.existsSync(t))return;return JSON.parse(n8.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nd=function(e){var t=nu(e);n8.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},nf=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return L(this,function(i){switch(i.label){case 0:var l;if(nc(),e=np(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",af=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,f=ad({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} -${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},ah=["stdin","stdout","stderr"],am=e=>ah.some(t=>void 0!==e[t]),ag=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ah.map(t=>e[t]);if(am(e))throw Error("It's not possible to provide `stdio` in combination with one of "+ah.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,ah.length)},(e,r)=>t[r]);},av=(e,t="SIGTERM",r={})=>{let n=e(t);return aE(e,t,r,n),n;},aE=(e,t,r,n)=>{if(!aw(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ab(r));i.unref&&i.unref();},aw=(e,{forceKillAfterTimeout:t},r)=>ay(e)&&!1!==t&&r,ay=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ab=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},ax=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aS=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aD=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aS(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aT=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aN=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},aI=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,aR=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aI(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aO=e=>{null!==e.stdout&&(e.pipeStdout=aR.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=aR.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=aR.bind(void 0,e,"all"));},aC=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aA=({input:e,inputFile:t})=>"string"!=typeof t?e:(aC(e),(0,rl.readFileSync)(t)),a_=e=>{let t=aA(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},aL=({input:e,inputFile:t})=>"string"!=typeof t?e:(aC(e),(0,rl.createReadStream)(t)),a$=(e,t)=>{let r=aL(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},aP=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},ak=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aU=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},aM=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aU(e,{encoding:n,buffer:i,maxBuffer:o}),l=aU(t,{encoding:n,buffer:i,maxBuffer:o}),u=aU(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},ak(e,s),ak(t,l),ak(r,u)]);}},aj=(async()=>{})().constructor.prototype,aF=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aj,e)]),aq=(e,t)=>{for(let[r,n]of aF){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aB=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),aG=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aH=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aV=(e,t)=>aG(e,t).join(" "),aX=(e,t)=>aG(e,t).map(e=>aH(e)).join(" "),az=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aK=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aY=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=aK(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aK(a,Array.isArray(s)?s.map(e=>az(e)):[az(s)],o.endsWith(" "));},aW=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aY({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},aJ=(0,ry.debuglog)("execa").enabled,aQ=(e,t)=>(e+"").padStart(t,"0"),aZ=()=>{let e=new Date();return`${aQ(e.getHours(),2)}:${aQ(e.getMinutes(),2)}:${aQ(e.getSeconds(),2)}.${aQ(e.getMilliseconds(),3)}`;},a0=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${aZ()}] ${e} -`);},a1=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},a3=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:aJ,...r}).env=a1(r),r.stdio=ag(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a2=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a5=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a4=(e={})=>({preferLocal:!0,...a5(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=aW(n,i);return k(o,a,a4(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=aW(e,r);return function(e,t,r){let n;let i=a3(e,t,r),o=aV(e,t),a=aX(e,t);a0(a,i.options);let s=a_(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw af({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a2(i.options,n.stdout,n.error),u=a2(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=af({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a4(t));},r;}(),nv={};const a6="win32"!==n4.platform(),a8=n4.release(),a9=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nv=function(e){return a6?e.replace(/(\s+)/g,"\\$1"):a9(.../(\d+\.\d+)\.(\d+)/.exec(a8).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rI("fQ0Jj"),t=function(e){return e.split("").reverse().join("");},nE=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nE={}),nw=rI("6afW1");const a7={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},se=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],st=A("~/.cpprc");let sr=!1;nw=rI("6afW1"),ny=rI("hImoI"),rC=rI("g0Mwp");const{appendFile:sn}=n8.promises;let si=!1,so=!1;const sa=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nb||(nb={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",ng=rI("lUL8q"),nx=rI("e19ul"),nx=rI("e19ul"),nS=rI("jGHPG");let ss=!1;nw=rI("6afW1"),nx=rI("e19ul"),rC=rI("g0Mwp");let sl=!1;rC=rI("g0Mwp"),rC=rI("g0Mwp");let su=!1,sc=!1;const sp=/Version\s*:\s*(.*)/g;nD={},nT=n6.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nN=nD&&nD.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nI=nD&&nD.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nR=nD&&nD.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nN(t,e,r);return nI(t,e),t;},nO=nD&&nD.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},nC=nD&&nD.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nD,"__esModule",{value:!0}),nD.evaluateVersions=nD.isExplicitVersion=nD.findFromManifest=nD.getManifestFromRepo=nD.findAllVersions=nD.find=nD.cacheFile=nD.cacheDir=nD.extractZip=nD.extractXar=nD.extractTar=nD.extract7z=nD.downloadTool=nD.HTTPError=void 0;const sd=nR(rI("lUL8q")),sf=nR(rI("jGHPG")),sh=nR(n8),sm=nR(rI("aUW7f")),sg=nR(n4),sv=nR(n6),sE=nR(rI("l6zH0")),sw=nR(rI("1mmqj")),sy=nR(rw),sb=nR(rs),sx=nC(rI("b4HqL"));nA=rI("ioM8U"),nL=(n_={},n_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),n$=n_&&n_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nP=n_&&n_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nL(t,e,r);return n$(t,e),t;},nk=n_&&n_.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(n_,"__esModule",{value:!0}),n_.RetryHelper=void 0;const sS=nP(rI("lUL8q"));n_.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nk(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sD extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nD.HTTPError=sD;const sT="win32"===process.platform,sN="darwin"===process.platform;nD.downloadTool=function(e,t,r,n){return nO(this,void 0,void 0,function*(){t=t||sv.join(eb(),sx.default()),yield sf.mkdirP(sv.dirname(t)),sd.debug("Downloading "+e),sd.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new n_.RetryHelper(3,i,o);return yield a.execute(()=>nO(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nO(this,void 0,void 0,function*(){if(sh.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sE.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sd.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sD(o.message.statusCode);throw sd.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sb.promisify(sy.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sh.createWriteStream(t)),sd.debug("download complete"),l=!0,t;}finally{if(!l){sd.debug("download failed");try{yield sf.rmRF(t);}catch(e){sd.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sD)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nD.extract7z=function(e,t,r){return nO(this,void 0,void 0,function*(){ra.ok(sT,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sd.isDebug()?"-bb1":"-bb0";yield nA.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sv.join(nT,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sf.which("powershell",!0);yield nA.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nD.extractTar=function(e,t,r="xz"){return nO(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sd.debug("Checking tar --version");let i="";yield nA.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sd.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sd.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sT&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nA.exec("tar",n),t;});},nD.extractXar=function(e,t,r=[]){return nO(this,void 0,void 0,function*(){var n;let i;ra.ok(sN,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sd.isDebug()&&i.push("-v");let o=yield sf.which("xar",!0);return yield nA.exec(`"${o}"`,(n=i,Array.from(new Set(n)))),t;});},nD.extractZip=function(e,t){return nO(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sT?yield function(e,t){return nO(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sf.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sd.debug("Using pwsh at path: "+i),yield nA.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sf.which("powershell",!0);sd.debug("Using powershell at path: "+t),yield nA.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nO(this,void 0,void 0,function*(){let r=yield sf.which("unzip",!0),n=[e];sd.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nA.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nD.cacheDir=function(e,t,r,n){return nO(this,void 0,void 0,function*(){if(r=sw.clean(r)||r,n=n||sg.arch(),sd.debug(`Caching tool ${t} ${r} ${n}`),sd.debug("source dir: "+e),!sh.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sh.readdirSync(e)){let r=sv.join(e,t);yield sf.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nD.cacheFile=function(e,t,r,n,i){return nO(this,void 0,void 0,function*(){if(n=sw.clean(n)||n,i=i||sg.arch(),sd.debug(`Caching tool ${r} ${n} ${i}`),sd.debug("source file: "+e),!sh.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sv.join(o,t);return sd.debug("destination file "+a),yield sf.cp(e,a),ev(r,n,i),o;});},nD.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sg.arch(),eE(t)||(t=ew(eh(e,r),t));let n="";if(t){t=sw.clean(t)||"";let i=sv.join(ey(),e,t,r);sd.debug("checking cache: "+i),sh.existsSync(i)&&sh.existsSync(`${i}.complete`)?(sd.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sd.debug("not found");}return n;},nD.findAllVersions=eh,nD.getManifestFromRepo=function(e,t,r,n="master"){return nO(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sE.HttpClient("tool-cache"),s={};r&&(sd.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sd.debug("Invalid json");}}return i;});},nD.findFromManifest=function(e,t,r,n=sg.arch()){return nO(this,void 0,void 0,function*(){return yield sm._findMatch(e,t,r,n);});},nD.isExplicitVersion=eE,nD.evaluateVersions=ew,nU=rI("eekMY"),nM=rI("h5EpL"),nx=rI("e19ul"),rC=rI("g0Mwp"),rO=rI("l5aZl"),nw=rI("6afW1"),Object.defineProperty(nj={},"__esModule",{value:!0}),nj.retryAsPromised=nj.TimeoutError=void 0;class sI extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nj.TimeoutError=sI,nj.retryAsPromised=eS,nj.default=eS;let sR=!1;nx=rI("e19ul"),nS=rI("jGHPG"),rC=rI("g0Mwp"),ng=rI("lUL8q"),nw=rI("6afW1"),nx=rI("e19ul"),nA=rI("ioM8U"),rO=rI("l5aZl"),rC=rI("g0Mwp"),nF={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nq=Array.prototype.slice,nB=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:eL(this.keys),size:this.size,values:eL(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nx=rI("e19ul"),nG=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nH=async e=>{if(!nG(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nV=rI("dKY2K"),nM=rI("h5EpL"),nX=rI("SUO5C"),nA=rI("ioM8U"),rC=rI("g0Mwp");const sO=/v?(\d\S*)/,sC={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sA={pip:"22.2.0",python:"3.7.9"},s_={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};nw=rI("6afW1");const sL=ek(e1,{isPromise:!0});rC=rI("g0Mwp"),Object.defineProperty(nz={},"__esModule",{value:!0}),nz.getUbuntuVersion=void 0,nz.getUbuntuVersion=e5;const s$=ek(e4,{isPromise:!0}),sP=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||n8.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||n8.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||n8.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||n8.mkdirSync,t;},sk=(e,t,r)=>{let n=(0,n6.dirname)(e),i={...sP(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,i,sk(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sU=Object.assign(async(e,t,r)=>{let n=sP(t);n.recursive=!1;let i=(0,n6.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sU(i,n).then(t=>sU(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sk}),sM=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sM(e,(0,n6.dirname)(t),t):void 0);},sj=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sj(e,(0,n6.dirname)(t),t):void 0;}},sF=(e,t)=>{let r=sP(t);if(r.recursive=!0,(0,n6.dirname)(e)===e)return r.mkdirSync(e,r);let n=sj(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,r);throw t;}},sq=Object.assign(async(e,t)=>{let r={...sP(t),recursive:!0};return(0,n6.dirname)(e)===e?await r.mkdirAsync(e,r):sM(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sU(e,r);throw t;}));},{sync:sF}),sB=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sG=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,n6.resolve)(e),"win32"===sB){let{root:t}=(0,n6.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sH=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sV=+sH[0]>10||10==+sH[0]&&+sH[1]>=12,sX=sV?e=>sP(e).mkdirSync===n8.mkdirSync:()=>!1,sz=Object.assign(sV?e=>sP(e).mkdir===n8.mkdir:()=>!1,{sync:sX}),sK=(e,t)=>{e=sG(e);let r=sP(t);return sX(r)?sF(e,r):sk(e,r);},sY=Object.assign(async(e,t)=>{e=sG(e);let r=sP(t);return sz(r)?sq(e,r):sU(e,r);},{mkdirpSync:sK,mkdirpNative:sq,mkdirpNativeSync:sF,mkdirpManual:sU,mkdirpManualSync:sk,sync:sK,native:sq,nativeSync:sF,manual:sU,manualSync:sk,useNative:sz,useNativeSync:sX}),sW=ek(te,{isPromise:!0}),sJ=ek(tt,{isPromise:!0}),sQ=ek(tr,{isPromise:!0});nx=rI("e19ul"),rC=rI("g0Mwp"),nw=rI("6afW1");const sZ=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s0=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=sZ.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nY=rI("1cH1m")).DOMImplementation,nY.XMLSerializer,nK=rI("9KKJA").DOMParser;const s1=63,s3="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s2=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s5{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s4 extends s5{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t);return this.value?`${r}`:`${r}`;}}class s6 extends s5{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){tf(e,"data");let t=td(e)?.nodeValue||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s2[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s1)<<18|(i&s1)<<12|(o&s1)<<6|a&s1,o>s1?a>s1?2:0:a>s1?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(t);}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=e?.dataColumns??68,i=(e?.indentString??" ").repeat(t),o=`${i}`;if(n>0)for(let e=th(this.value);e;e=e.substring(n))o+=`${r}${i}${e.substring(0,n)}`;else o+=`${r}${i}${th(this.value)}`;return o+`${r}${i}`;}}class s8 extends s5{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){tf(e,"integer");let t=td(e)?.nodeValue||"";if(!/^[-+]?[0-9]+$/.test(t))throw Error("Invalid integer data: "+t);let r=+t;this.value=r>9007199254740991||r<-9007199254740991?BigInt(t):r;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return tm(n),`${r}${n}`;}}class s9 extends s5{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){tf(e,"real");let t=td(e)?.nodeValue||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(t))throw Error("Invalid real data: "+t);this.value=+t;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return`${r}${n}`;}}class s7 extends s5{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){tf(e,"string"),this.value=td(e)?.nodeValue||"";}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${r}${n}`;}}class le extends s5{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[le,s4,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=(e?.indentString??" ").repeat(t),i=this.value;if(!i.length)return`${n}`;let o=`${n}`;for(let n of i)o+=`${r}${n.toXml(e,t+1)}`;return o+`${r}${n}`;}}class lt extends s5{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[le,s4,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){let r=t[e],i=t[e+1];tf(r,"key");let o=td(r)?.nodeValue||"",a=this.childFromXmlElement(i);n.set(o,a);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.indentString??" ",n=e?.newlineString??"\n",i=r.repeat(t),o=this.value;if(!o.size)return`${i}`;let a=r.repeat(t+1),s=`${i}`;for(let[r,i]of o){let o=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");s+=`${n}${a}${o}${n}${i.toXml(e,t+1)}`;}return s+`${n}${i}`;}}const lr='',ln='';class li{static XML_DECLARATION=lr;static XML_DOCTYPE=ln;xmlDeclaration=lr;xmlDoctype=ln;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lt().childFromXmlElement(e);}toXml(e=null){let t=e?.indentRoot??!1,r=e?.newlineString??"\n",n=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(n?[n.toXml(e,t?1:0)]:[]),"",""].join(r);}}class lo{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new li();t.fromXml(e);let r=t.valueCastAs(lt).getValue("system-entities").castAs(le),n=[];for(let e of r.value){let t=e.castAs(lt),r=t.getValue("dev-entry").castAs(s7).value,i=t.getValue("potentially-mountable").castAs(s4).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(s7).value),a&&(u.unmappedContentHint=a.castAs(s7).value),s&&(u.volumeKind=s.castAs(s7).value),l&&(u.mountPoint=l.castAs(s7).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){let r=this._findRootDevice(e)?.devEntry,n=null,i={eject:async(e=null)=>{r&&(await this.eject(r,e),r="",n&&process.off("exit",n));},ejectSync:(e=null)=>{r&&(this.ejectSync(r,e),r="",n&&process.off("exit",n));}};return t&&(n=()=>{i.ejectSync(t);},process.once("exit",n)),i;}}nW=rI("3nHUu"),nM=rI("h5EpL"),nA=rI("ioM8U"),rC=rI("g0Mwp"),nx=rI("e19ul"),rC=rI("g0Mwp"),rO=rI("l5aZl"),nw=rI("6afW1"),nJ=n6.resolve(__dirname,"../../src/gcc");const la={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nX=rI("SUO5C"),nW=rI("3nHUu"),nx=rI("e19ul"),rC=rI("g0Mwp"),nx=rI("e19ul"),nQ=n6.resolve(__dirname,"../../src/kcov"),rO=rI("l5aZl"),rC=rI("g0Mwp"),nw=rI("6afW1"),nx=rI("e19ul"),ng=rI("lUL8q"),rC=rI("g0Mwp"),nx=rI("e19ul"),ng=rI("lUL8q");const ls=rb.env["ProgramFiles(x86)"],ll=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lu=["Enterprise","Professional","Community","BuildTools"],lc=["2022","2019","2017"],lp={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};nZ=t$;const ld=`${ls}\\Microsoft Visual Studio\\Installer`;n0=tP,n1=function(e,t,r,n,i,o){if("win32"!=rb.platform){ng.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=n6.delimiter+ld;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;ng.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(ng.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(ng.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),ng.exportVariable(t,r));}ng.endGroup(),ng.info("Configured Developer Command Prompt");},rC=rI("g0Mwp"),nw=rI("6afW1");class lf extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lh extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const lm=e=>void 0===globalThis.DOMException?new lh(e):new DOMException(e),lg=e=>{let t=void 0===e.reason?lm("This operation was aborted."):e.reason;return t instanceof Error?t:lm(t);},lv=12e5,{readFile:lE,writeFile:lw,chmod:ly}=n8.promises;(rn=n3||(n3={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nU=rI("eekMY"),rC=rI("g0Mwp"),nx=rI("e19ul");const lb=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lx=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lS=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lD=new Map(),lT={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lN="17.0.6";n2=n6.resolve(__dirname,"../../src/llvm");const lI=ek(tK,{isPromise:!0}),lR=ek(tW,{isPromise:!0}),lO=ek(tJ,{isPromise:!0});rO=rI("l5aZl"),nx=rI("e19ul"),rC=rI("g0Mwp"),nw=rI("6afW1"),n5=n6.resolve(__dirname,"../../src/msvc"),nx=rI("e19ul"),nx=rI("e19ul"),rC=rI("g0Mwp"),nw=rI("6afW1"),nx=rI("e19ul");let lC=!1;const lA={nala:t2,cmake:e_,ninja:tR,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t5,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tY(e,t,r);},clangformat:function(e,t,r){return tY(e,t,r,n3.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:tL,make:t0,task:function(e,t,r){return eD("task",e,t8,t,r);},sevenzip:eT},l_=Object.keys(lA),lL=["compiler","architecture","timeout",...l_];ng=rI("lUL8q"),rC=rI("g0Mwp"),nX=rI("SUO5C"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rC.error)("main() panicked!"),(0,rC.error)(e),process.exitCode=1;}); + Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rR("l6zH0",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(ii),d=i(io),f=i(rI("40WgE")),h=i(rI("3zxaw"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class w{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=w,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new w(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},y(this.requestOptions.headers),y(e||{})):y(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=y(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let y=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rR("40WgE",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rR("3zxaw",function(e,t){e.exports=rI("zoNP8");}),rR("zoNP8",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||ii.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=ii.request,t;},n=function(e){var t=new l(e);return t.request=ii.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=io.request,t;},o=function(e){var t=new l(e);return t.request=io.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?s=function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:s=function(){},a=s;}),rR("5civ3",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rR("jaLnB",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=it.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,it.constants.R_OK|it.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n7.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rR("eCzrY",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(ie);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rR("kspKY",function(e,t){var r=ie.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rR("dl3mv",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rI("hapVv"),i=rI("joCBa");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){let t=s[e.locale],r=e.unitTypeLookupOrder.slice();r.unshift(e.unitType);let n=null;if((r=Array.from(new Set(r))).some(function(e){if(void 0!==t[e])return n=t[e],!0;}),null===n)throw Error("Can not find any unit type data for locale: "+e.locale);return n;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rR("hapVv",function(e,t){e.exports=rI("kspKY");}),rR("joCBa",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rR("ipr2f",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${u[c.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",u[c.COERCEPLAIN]+`(?:${u[c.PRERELEASE]})?`+`(?:${u[c.BUILD]})?`+"(?:$|[^\\d])"),m("COERCERTL",u[c.COERCE],!0),m("COERCERTLFULL",u[c.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rR("84nXv",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rR("dc2zw",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rR("bmedX",function(e,t){var r=rI("dc2zw"),n=rI("84nXv"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rI("aYJ5s"),s=a.safeRe,l=a.t,u=rI("9rxnK"),c=rI("lG7j5").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rR("9rxnK",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rR("lG7j5",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rR("9fZKy",function(e,t){var r=rI("bmedX");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rR("SUO5C",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rR("5UYbM",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rR("g4dmV",function(e,t){var r=rI("bmedX");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rR("avNOz",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rR("3nHUu",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).major;}),rR("dYfT7",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).minor;}),rR("9h5Uk",function(e,t){var r=rI("bmedX");e.exports=(e,t)=>new r(e,t).patch;}),rR("1oG7j",function(e,t){var r=rI("9fZKy");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rR("dKY2K",function(e,t){var r=rI("bmedX");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rR("9fB4n",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(t,e,n);}),rR("b7w7T",function(e,t){var r=rI("dKY2K");e.exports=(e,t)=>r(e,t,!0);}),rR("4Cdie",function(e,t){var r=rI("bmedX");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rR("4Jb5D",function(e,t){var r=rI("4Cdie");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rR("hhi7M",function(e,t){var r=rI("4Cdie");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rR("cmfRl",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(e,t,n)>0;}),rR("9cmQV",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0>r(e,t,n);}),rR("dLLSg",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0===r(e,t,n);}),rR("7CMva",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0!==r(e,t,n);}),rR("8dSFQ",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rR("eekMY",function(e,t){var r=rI("dKY2K");e.exports=(e,t,n)=>0>=r(e,t,n);}),rR("3ktqT",function(e,t){var r=rI("dLLSg"),n=rI("7CMva"),i=rI("cmfRl"),o=rI("8dSFQ"),a=rI("9cmQV"),s=rI("eekMY");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rR("h5EpL",function(e,t){var r=rI("bmedX"),n=rI("9fZKy"),i=rI("aYJ5s"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let r;let n=t.includePrerelease?o[a.COERCERTLFULL]:o[a.COERCERTL];for(;(r=n.exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1;}else i=e.match(t.includePrerelease?o[a.COERCEFULL]:o[a.COERCE]);if(null===i)return null;let s=i[2],l=i[3]||"0",u=i[4]||"0",c=t.includePrerelease&&i[5]?"-"+i[5]:"",p=t.includePrerelease&&i[6]?"+"+i[6]:"";return n(`${s}.${l}.${u}${c}${p}`,t);};}),rR("hf4vi",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rI("9rxnK"),o=rI("aYJ5s"),a=o.safeRe,s=o.t,l=rI("3ktqT"),u=rI("dc2zw"),c=rI("bmedX"),p=rI("3ZIKH");}),rR("3ZIKH",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,C(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>y(e,this.options)).join(" ").split(/\s+/).map(e=>O(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>w(r,t)&&e.set.some(e=>w(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,w=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},y=(e,t)=>(a("comp",e,t),a("caret",e=D(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=R(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>S(e,t)).join(" "),S=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},D=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>I(e,t)).join(" ")),I=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},R=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),O=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),C=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),A=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rR("tPjHU",function(e,t){var r=rI("8VtHa");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let w=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;w(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;w(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rR("8VtHa",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rR("iGUY3",function(e,t){var r=rI("3ZIKH");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rR("jpWIo",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rR("dJyj1",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rR("9inVR",function(e,t){var r=rI("bmedX"),n=rI("3ZIKH"),i=rI("cmfRl");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rR("5wxvo",function(e,t){var r=rI("3ZIKH");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rR("16OoL",function(e,t){var r=rI("bmedX"),n=rI("hf4vi");let{ANY:i}=n;var o=rI("3ZIKH"),a=rI("h0AH5"),s=rI("cmfRl"),l=rI("9cmQV"),u=rI("eekMY"),c=rI("8dSFQ");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rR("aNIaY",function(e,t){var r=rI("16OoL");e.exports=(e,t,n)=>r(e,t,">",n);}),rR("huA22",function(e,t){var r=rI("16OoL");e.exports=(e,t,n)=>r(e,t,"<",n);}),rR("hRcmf",function(e,t){var r=rI("3ZIKH");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rR("fnXJa",function(e,t){var r=rI("h0AH5"),n=rI("dKY2K");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,w=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!w&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rR("fQ0Jj",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rR("6afW1",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rR("e19ul",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function w(e,t=!0){return t?(0,ie.basename)(e):(0,ie.basename)(e,(0,ie.extname)(e));}function y(e){return(0,ie.normalize)(e).replace(RegExp((0,r.default)(ie.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,ie.extname)(e),n=`${t}${(0,ie.basename)(e,r)}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function S(e,t){let r=(0,ie.extname)(e),n=`${(0,ie.basename)(e,r)}${t}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function D(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,ie.extname)(e).length;return e.slice(0,-t);}function I(e,t){return p(n)(e,t);}function R(e,t){let r=(0,ie.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+ie.sep)||r===(0,ie.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>D),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>ie.dirname),c(e.exports,"join",()=>ie.join),r=rI("hImoI"),n=rI("f2mBC"),i={},E(o={},"name",()=>w),E(a={},"normalizeTrim",()=>y),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>S),E(d={},"addShExt",()=>D),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>I),E(g={},"isPathInside",()=>R),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rR("hImoI",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rR("f2mBC",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=ie.basename(e,ie.extname(e))+t,i=ie.join(ie.dirname(e),n);return(r=e.slice(0,2))==="."+ie.sep||"./"===r?"."+ie.sep+i:i;};}),rR("jGHPG",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(ie),p=i(rI("akQoU"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rR("akQoU",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(it),u=i(ie);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rR("aUW7f",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rI("1mmqj"));a=rI("lUL8q"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n7.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n7.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return it.existsSync(e)?r=it.readFileSync(e).toString():it.existsSync(t)&&(r=it.readFileSync(t).toString()),r;};}),rR("1mmqj",function(e,t){function r(e){O[e]=C++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>S||!(t.loose?I[O.LOOSE]:I[O.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>S)throw TypeError("version is longer than "+S+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?I[O.LOOSE]:I[O.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>D||this.major<0)throw TypeError("Invalid major version");if(this.minor>D||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>D||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===P?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function w(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function y(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(y(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,w=w||e,i(e.semver,E.semver,n)?E=e:s(e.semver,w.semver,n)&&(w=e);}),E.operator===c||E.operator===p||(!w.operator||w.operator===c)&&a(e,w.semver)||w.operator===p&&s(e,w.semver))return!1;}return!0;}t=e.exports=o,"object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?x=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:x=function(){},t.SEMVER_SPEC_VERSION="2.0.0",S=256,D=Number.MAX_SAFE_INTEGER||9007199254740991,T=S-6,N=t.re=[],I=t.safeRe=[],R=t.src=[],O=t.tokens={},C=0,_=[["\\s",1],["\\d",S],[A="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),R[O.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),R[O.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),R[O.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+A+"*",r("MAINVERSION"),R[O.MAINVERSION]="("+R[O.NUMERICIDENTIFIER]+")\\.("+R[O.NUMERICIDENTIFIER]+")\\.("+R[O.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),R[O.MAINVERSIONLOOSE]="("+R[O.NUMERICIDENTIFIERLOOSE]+")\\.("+R[O.NUMERICIDENTIFIERLOOSE]+")\\.("+R[O.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),R[O.PRERELEASEIDENTIFIER]="(?:"+R[O.NUMERICIDENTIFIER]+"|"+R[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),R[O.PRERELEASEIDENTIFIERLOOSE]="(?:"+R[O.NUMERICIDENTIFIERLOOSE]+"|"+R[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),R[O.PRERELEASE]="(?:-("+R[O.PRERELEASEIDENTIFIER]+"(?:\\."+R[O.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),R[O.PRERELEASELOOSE]="(?:-?("+R[O.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+R[O.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),R[O.BUILDIDENTIFIER]=A+"+",r("BUILD"),R[O.BUILD]="(?:\\+("+R[O.BUILDIDENTIFIER]+"(?:\\."+R[O.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),R[O.FULLPLAIN]="v?"+R[O.MAINVERSION]+R[O.PRERELEASE]+"?"+R[O.BUILD]+"?",R[O.FULL]="^"+R[O.FULLPLAIN]+"$",r("LOOSEPLAIN"),R[O.LOOSEPLAIN]="[v=\\s]*"+R[O.MAINVERSIONLOOSE]+R[O.PRERELEASELOOSE]+"?"+R[O.BUILD]+"?",r("LOOSE"),R[O.LOOSE]="^"+R[O.LOOSEPLAIN]+"$",r("GTLT"),R[O.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),R[O.XRANGEIDENTIFIERLOOSE]=R[O.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),R[O.XRANGEIDENTIFIER]=R[O.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),R[O.XRANGEPLAIN]="[v=\\s]*("+R[O.XRANGEIDENTIFIER]+")(?:\\.("+R[O.XRANGEIDENTIFIER]+")(?:\\.("+R[O.XRANGEIDENTIFIER]+")(?:"+R[O.PRERELEASE]+")?"+R[O.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),R[O.XRANGEPLAINLOOSE]="[v=\\s]*("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+R[O.XRANGEIDENTIFIERLOOSE]+")(?:"+R[O.PRERELEASELOOSE]+")?"+R[O.BUILD]+"?)?)?",r("XRANGE"),R[O.XRANGE]="^"+R[O.GTLT]+"\\s*"+R[O.XRANGEPLAIN]+"$",r("XRANGELOOSE"),R[O.XRANGELOOSE]="^"+R[O.GTLT]+"\\s*"+R[O.XRANGEPLAINLOOSE]+"$",r("COERCE"),R[O.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[O.COERCERTL]=RegExp(R[O.COERCE],"g"),I[O.COERCERTL]=RegExp(n(R[O.COERCE]),"g"),r("LONETILDE"),R[O.LONETILDE]="(?:~>?)",r("TILDETRIM"),R[O.TILDETRIM]="(\\s*)"+R[O.LONETILDE]+"\\s+",N[O.TILDETRIM]=RegExp(R[O.TILDETRIM],"g"),I[O.TILDETRIM]=RegExp(n(R[O.TILDETRIM]),"g"),r("TILDE"),R[O.TILDE]="^"+R[O.LONETILDE]+R[O.XRANGEPLAIN]+"$",r("TILDELOOSE"),R[O.TILDELOOSE]="^"+R[O.LONETILDE]+R[O.XRANGEPLAINLOOSE]+"$",r("LONECARET"),R[O.LONECARET]="(?:\\^)",r("CARETTRIM"),R[O.CARETTRIM]="(\\s*)"+R[O.LONECARET]+"\\s+",N[O.CARETTRIM]=RegExp(R[O.CARETTRIM],"g"),I[O.CARETTRIM]=RegExp(n(R[O.CARETTRIM]),"g"),r("CARET"),R[O.CARET]="^"+R[O.LONECARET]+R[O.XRANGEPLAIN]+"$",r("CARETLOOSE"),R[O.CARETLOOSE]="^"+R[O.LONECARET]+R[O.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),R[O.COMPARATORLOOSE]="^"+R[O.GTLT]+"\\s*("+R[O.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),R[O.COMPARATOR]="^"+R[O.GTLT]+"\\s*("+R[O.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),R[O.COMPARATORTRIM]="(\\s*)"+R[O.GTLT]+"\\s*("+R[O.LOOSEPLAIN]+"|"+R[O.XRANGEPLAIN]+")",N[O.COMPARATORTRIM]=RegExp(R[O.COMPARATORTRIM],"g"),I[O.COMPARATORTRIM]=RegExp(n(R[O.COMPARATORTRIM]),"g"),L="$1$2$3",r("HYPHENRANGE"),R[O.HYPHENRANGE]="^\\s*("+R[O.XRANGEPLAIN]+")\\s+-\\s+("+R[O.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),R[O.HYPHENRANGELOOSE]="^\\s*("+R[O.XRANGEPLAINLOOSE]+")\\s+-\\s+("+R[O.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),R[O.STAR]="(<|>)?=?\\s*\\*";for(var x,S,D,T,N,I,R,O,C,A,_,L,$,P,k=0;k=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,$=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,P={},m.prototype.parse=function(e){var t=this.options.loose?I[O.COMPARATORLOOSE]:I[O.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=P;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===P||e===P)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),y(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),y(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?I[O.HYPHENRANGELOOSE]:I[O.HYPHENRANGE];e=e.replace(r,w),x("hyphen replace",e),e=e.replace(I[O.COMPARATORTRIM],L),x("comparator trim",e,I[O.COMPARATORTRIM]),e=(e=(e=e.replace(I[O.TILDETRIM],"$1~")).replace(I[O.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?I[O.COMPARATORLOOSE]:I[O.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?I[O.CARETLOOSE]:I[O.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?I[O.TILDELOOSE]:I[O.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?I[O.XRANGELOOSE]:I[O.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(I[O.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=y,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=I[O.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),I[O.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;I[O.COERCERTL].lastIndex=-1;}else n=e.match(I[O.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rR("b4HqL",function(e,t){var r=rI("djHKf"),n=rI("CMWjw");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rR("djHKf",function(e,t){e.exports=function(){return ir.randomBytes(16);};}),rR("CMWjw",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rR("ioM8U",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rI("7Ee0q"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rR("7Ee0q",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n7),s=i(ro),l=i(ru),u=i(ie),c=i(rI("jGHPG")),p=i(rI("akQoU")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rR("kqI8i",function(e,t){e.exports=Promise.resolve(require("./actions_python.10530df8.js")).then(()=>rI("i1n7v"));}),rR("9KKJA",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rI("4u2Un"),i=rI("1cH1m"),o=rI("hPwcE"),a=rI("4t75f"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rR("4u2Un",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new A(D,Error(e.tagName+"@"+r));}function j(){}function F(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===F.DOCUMENT_TYPE_NODE;}function K(e){return e&&e.nodeType===F.ELEMENT_NODE;}function Y(e){return e&&e.nodeType===F.TEXT_NODE;}function W(e,t){var r=e.childNodes||[];if(o(r,K)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function J(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return K(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function Q(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===F.DOCUMENT_FRAGMENT_NODE){var a=i.filter(K);if(a.length>1||o(i,Y))throw new A(S,"More than one element or text in fragment");if(1===a.length&&!J(e,r))throw new A(S,"Element in fragment can not be inserted before doctype");}if(K(t)&&!J(e,r))throw new A(S,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new A(S,"Only one doctype is allowed");var s=o(n,K);if(r&&n.indexOf(s)1||o(i,Y))throw new A(S,"More than one element or text in fragment");if(1===a.length&&!W(e,r))throw new A(S,"Element in fragment can not be inserted before doctype");}if(K(t)&&!W(e,r))throw new A(S,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new A(S,"Only one doctype is allowed");var s=o(n,K);if(r&&n.indexOf(s)=0;S--){var D=i[S];if(""===D.prefix&&D.namespace===e.namespaceURI){o=D.namespace;break;}}if(o!==e.namespaceURI)for(var S=i.length-1;S>=0;S--){var D=i[S];if(D.namespace===e.namespaceURI){D.prefix&&(b=D.prefix+":"+y);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var I=N.prefix||"",R=N.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",R),i.push({prefix:I,namespace:R});}eg(N,t,r,n,i);}if(y===b&&eh(e,r,i)){var I=e.prefix||"",R=e.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",R),i.push({prefix:I,namespace:R});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(y)){if(t.push(">"),r&&/^script$/i.test(y))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case w:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var O=e.publicId,C=e.systemId;if(t.push("");else if(C&&"."!=C)t.push(" SYSTEM ",C,">");else{var A=e.internalSubset;A&&t.push(" [",A,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rI("4u2Un")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,w=s.DOCUMENT_FRAGMENT_NODE=11,y=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),S=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),D=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),A.prototype=Error.prototype,O(b,A),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},O(s,F),O(s,F.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==w){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),K(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case w:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=R(e);return new L(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=R(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},C(G,F),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===w?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new L(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new L(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,C(ee,F),et.prototype.nodeType=u,C(et,F),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[S]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},C(er,F),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},C(en,er),ei.prototype={nodeName:"#comment",nodeType:g},C(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},C(eo,er),ea.prototype.nodeType=E,C(ea,F),es.prototype.nodeType=y,C(es,F),el.prototype.nodeType=h,C(el,F),eu.prototype.nodeType=f,C(eu,F),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=w,C(ec,F),ep.prototype.nodeType=m,C(ep,F),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},F.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty(L.prototype,"length",{get:function(){return $(this),this.$$length;}}),Object.defineProperty(F.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case w:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=j,n=ed;}),rR("hPwcE",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rI("4u2Un").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rR("4t75f",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rI("4u2Un").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$340f5d84067e3062$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>w){var r=e.substring(w,t).replace(/&#?\w+;/g,a);g&&c(w),n.characters(r,0,t-w),w=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},w=0;;){try{var y=e.indexOf("<",w);if(y<0){if(!e.substr(w).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(w));b.appendChild(x),n.currentElement=x;}return;}switch(y>w&&l(y),e.charAt(y+1)){case"/":var S=e.indexOf(">",y+3),D=e.substring(y+2,S).replace(/[ \t\n\r]+$/g,""),T=v.pop();S<0?(D=e.substring(y+2).replace(/[\s<].*/,""),o.error("end tag name: "+D+" is not complete:"+T.tagName),S=y+1+D.length):D.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,y,n);break;case"!":g&&c(y),S=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,y,n,o);break;default:g&&c(y);var O=new f(),C=v[v.length-1].currentNSMap,S=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,y,O,C,a,o),A=O.length;if(!O.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))L;L++){var $=O[L];c($.offset),$.locator=u(g,{});}n.locator=_,p(O,n,C)&&v.push(O),n.locator=g;}else p(O,n,C)&&v.push(O);i.isHTML(O.uri)&&!O.closed?S=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,S,O.tagName,a,n):S++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),S=-1;}S>w?w=S:l(Math.max(y,w)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rO=rI("l5aZl"),rC=rI("g0Mwp"),rA=rI("hapVv"),function(){rI("kspKY").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),rL={},rL=rI("dl3mv"),r$={},r$={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iA),c(rk,"sync",()=>i_),it.promises;const{access:ia,appendFile:is,chmod:il,chown:iu,copyFile:ic,lchmod:ip,lchown:id,link:ih,lstat:im,mkdir:ig,mkdtemp:iv,open:iE,readdir:iw,readFile:iy,readlink:ib,realpath:ix,rename:iS,rmdir:iD,stat:iT,symlink:iN,truncate:iI,unlink:iR,utimes:iO,writeFile:iC}=it.promises,iA=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL(await iT(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL((0,it.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iL=(e,t)=>e.isFile()&&i$(e,t),i$=(e,t)=>{let r=t.uid??process.getuid?.(),n=t.groups??process.getgroups?.()??[],i=t.gid??process.getgid?.()??n[0];if(void 0===r||void 0===i)throw Error("cannot get uid or gid");let o=new Set([i,...n]),a=e.mode,s=e.uid,l=e.gid,u=parseInt("100",8),c=parseInt("010",8);return!!(a&parseInt("001",8)||a&c&&o.has(l)||a&u&&s===r||a&(u|c)&&0===r);};c(rU={},"isexe",()=>iP),c(rU,"sync",()=>ik);const iP=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iM(await iT(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},ik=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iM((0,it.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iU=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&iU(t,r),ij="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,iF=ij.isexe,iq=ij.sync;rM=ie.join,rj=ie.delimiter,rF=ie.sep,rq=ie.posix;const iB="win32"===process.platform,iG=new RegExp(`[${rq.sep}${rF===rq.sep?"":rF}]`.replace(/(\\)/g,"\\$1")),iH=RegExp("^\\."+iG.source),iV=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iX=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rj})=>{let i=e.match(iG)?[""]:[...(iB?[process.cwd()]:[]),...(t||"").split(n)];if(iB){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iz=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&iH.test(t)?t.slice(0,2):"")+rM(r,t);},iK=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(await iF(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);};rP=iK,iK.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(iq(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);},rB={},rG={},rH={},rV={};const iY="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iW=iY?";":":";rX={},"win32"===process.platform||rD.TESTING_WINDOWS?rz=rI("ipr2f"):rz=rI("bn5RY"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iJ=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iQ=(e,t)=>{let r=t.colon||iW,n=e.match(/\//)||iY&&e.match(/\\/)?[""]:[...(iY?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iY?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iY?i.split(r):[""];return iY&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iZ=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iQ(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iJ(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=ie.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iZ,iZ.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iQ(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rK=i0).default=i0,rH=function(e){return f(e)||f(e,!0);};rY=function(e){return e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1");},rW=function(e,t){return e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),e=(e=`"${e}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),t&&(e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),e;},rJ={},rQ={},rZ={},rZ=/^#!(.*)/,rQ=(e="")=>{let t=e.match(rZ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rJ=function(e){let t;let r=Buffer.alloc(150);try{t=it.openSync(e,"r"),it.readSync(t,r,0,150,0),it.closeSync(t);}catch(e){}return rQ(r.toString());};const i1="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!i1)return e;let t=function(e){e.file=rH(e);let t=e.file&&rJ(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=ie.normalize(e.command),e.command=rY(e.command),e.args=e.args.map(e=>rW(e,r));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},r0={};const i3="win32"===process.platform;r0={hookChildProcess:function(e,t){if(!i3)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return i3&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||r0.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=r0;const i2=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i5(i,o)||!n)&&Object.defineProperty(e,r,o);},i5=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i4=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i6=(e,t)=>`/* Wrapped ${e}*/ +${t}`,i8=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i9=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i7=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i6.bind(null,n,t.toString());Object.defineProperty(i,"name",i9),Object.defineProperty(e,"toString",{...i8,value:i});},oe=new WeakMap(),ot=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(oe.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))i2(e,t,n,r);i4(e,t),i7(e,t,n);}(o,e),oe.set(o,n),o;};ot.callCount=e=>{if(!oe.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return oe.get(e);},r1=ot;const or=()=>Array.from({length:oo-oi+1},on),on=(e,t)=>({name:"SIGRT"+(t+1),number:oi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oi=34,oo=64,oa=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],os=()=>[...oa,...or()].map(ol),ol=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},ou=Object.fromEntries(os().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oc=(e,t)=>{let r=op(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},op=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=os();return Object.assign({},...Array.from({length:oo+1},(t,r)=>oc(r,e)));})();const od=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",of=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,m=od({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} +${n.message}`:g,w=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=w):n=Error(w),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oh=["stdin","stdout","stderr"],om=e=>oh.some(t=>void 0!==e[t]),og=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oh.map(t=>e[t]);if(om(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oh.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oh.length)},(e,r)=>t[r]);};r3={};const ov=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(ov(r2=rD.process)){var oE,ow=ra,oy=rI("97KW0"),ob=/^win/i.test(r2.platform),ox=ro;"function"!=typeof ox&&(ox=ox.EventEmitter),r2.__signal_exit_emitter__?oE=r2.__signal_exit_emitter__:((oE=r2.__signal_exit_emitter__=new ox()).count=0,oE.emitted={}),oE.infinite||(oE.setMaxListeners(1/0),oE.infinite=!0);var oS=function(){oN&&ov(rD.process)&&(oN=!1,oy.forEach(function(e){try{r2.removeListener(e,oT[e]);}catch(e){}}),r2.emit=oC,r2.reallyExit=oR,oE.count-=1);};(r3=function(e,t){if(!ov(rD.process))return function(){};ow.equal(typeof e,"function","a callback must be provided for exit handler"),!1===oN&&oI();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oE.on(r,e),function(){oE.removeListener(r,e),0===oE.listeners("exit").length&&0===oE.listeners("afterexit").length&&oS();};}).unload=oS;var oD=function(e,t,r){oE.emitted[e]||(oE.emitted[e]=!0,oE.emit(e,t,r));},oT={};oy.forEach(function(e){oT[e]=function(){ov(rD.process)&&r2.listeners(e).length===oE.count&&(oS(),oD("exit",null,e),oD("afterexit",null,e),ob&&"SIGHUP"===e&&(e="SIGINT"),r2.kill(r2.pid,e));};}),r3.signals=function(){return oy;};var oN=!1,oI=function(){!oN&&ov(rD.process)&&(oN=!0,oE.count+=1,oy=oy.filter(function(e){try{return r2.on(e,oT[e]),!0;}catch(e){return!1;}}),r2.emit=oA,r2.reallyExit=oO);};r3.load=oI;var oR=r2.reallyExit,oO=function(e){ov(rD.process)&&(r2.exitCode=e||0,oD("exit",r2.exitCode,null),oD("afterexit",r2.exitCode,null),oR.call(r2,r2.exitCode));},oC=r2.emit,oA=function(e,t){if(!("exit"===e&&ov(rD.process)))return oC.apply(this,arguments);void 0!==t&&(r2.exitCode=t);var r=oC.apply(this,arguments);return oD("exit",r2.exitCode,null),oD("afterexit",r2.exitCode,null),r;};}else r3=function(){return function(){};};const o_=(e,t="SIGTERM",r={})=>{let n=e(t);return oL(e,t,r,n),n;},oL=(e,t,r,n)=>{if(!o$(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ok(r));i.unref&&i.unref();},o$=(e,{forceKillAfterTimeout:t},r)=>oP(e)&&!1!==t&&r,oP=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ok=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oU=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oM=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oj=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{oM(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},oF=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oq=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},oB=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oG=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oB(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oH=e=>{null!==e.stdout&&(e.pipeStdout=oG.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oG.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oG.bind(void 0,e,"all"));};r5={},r4=rE.constants,r6=rs.promisify,r8={},r9=rw.PassThrough,r8=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r9({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oV=r6(rw.pipeline);class oX extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r5=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r5.array=(e,t)=>x(e,{...t,array:!0}),r5.MaxBufferError=oX,r7={},ne=rw.PassThrough,r7=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new ne({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oz=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oK=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.readFileSync)(t)),oY=e=>{let t=oK(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oW=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.createReadStream)(t)),oJ=(e,t)=>{let r=oW(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},oQ=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oZ=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},o0=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r5)(e,{encoding:t,maxBuffer:n}):p(r5).buffer(e,{maxBuffer:n});},o1=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=o0(e,{encoding:n,buffer:i,maxBuffer:o}),l=o0(t,{encoding:n,buffer:i,maxBuffer:o}),u=o0(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oZ(e,s),oZ(t,l),oZ(r,u)]);}},o3=(async()=>{})().constructor.prototype,o2=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(o3,e)]),o5=(e,t)=>{for(let[r,n]of o2){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o4=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o6=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o8=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o9=(e,t)=>o6(e,t).join(" "),o7=(e,t)=>o6(e,t).map(e=>o8(e)).join(" "),ae=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},at=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},ar=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],an=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=ar(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return ar(a,Array.isArray(s)?s.map(e=>at(e)):[at(s)],o.endsWith(" "));},ai=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=an({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},ao=(0,ry.debuglog)("execa").enabled,aa=(e,t)=>(e+"").padStart(t,"0"),as=()=>{let e=new Date();return`${aa(e.getHours(),2)}:${aa(e.getMinutes(),2)}:${aa(e.getSeconds(),2)}.${aa(e.getMilliseconds(),3)}`;},al=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${as()}] ${e} +`);},au=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},ac=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:ao,...r}).env=au(r),r.stdio=og(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},ap=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",ad=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},af=(e={})=>({preferLocal:!0,...ad(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ai(n,i);return S(o,a,af(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ai(e,r);return D(n,i,af(t));},r;}();const ah={stdio:"inherit",shell:!0},am=/^~(?=$|\/|\\)/;rC=rI("g0Mwp"),nt={},nr=rI("24j9d"),nn=rb.env.npm_package_json,no=!!((ni=rb.env.npm_config_user_agent)&&ni.startsWith("npm")),na=!!(nn&&nn.endsWith("package.json")),ns=no||na,nl=!!(ni&&ni.startsWith("yarn")),nu=ns||nl,nc=n7.homedir(),np=process.env.XDG_CONFIG_HOME||ie.join(nc,".config","simple-update-notifier"),nd=function(e){return ie.join(np,"".concat(e.replace("@","").replace("/","__"),".json"));},nf=function(){it.existsSync(np)||it.mkdirSync(np,{recursive:!0});},nh=function(e){var t=nd(e);try{if(!it.existsSync(t))return;return JSON.parse(it.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nm=function(e){var t=nd(e);it.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},ng=function(e,t){return _(void 0,void 0,void 0,function(){var r;return L(this,function(n){return r="https://registry.npmjs.org/-/package/".concat(e,"/dist-tags"),[2,new Promise(function(e,n){io.get(r,function(r){var i="";r.on("data",function(e){return i+=e;}),r.on("end",function(){try{var r=JSON.parse(i)[t];r||n(Error("Error getting version")),e(r);}catch(e){n(Error("Could not parse version response"));}});}).on("error",function(e){return n(e);});})];});});},nv=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return L(this,function(i){switch(i.label){case 0:if(nf(),e=nh(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",av=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,f=ag({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} +${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},aE=["stdin","stdout","stderr"],aw=e=>aE.some(t=>void 0!==e[t]),ay=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return aE.map(t=>e[t]);if(aw(e))throw Error("It's not possible to provide `stdio` in combination with one of "+aE.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,aE.length)},(e,r)=>t[r]);},ab=(e,t="SIGTERM",r={})=>{let n=e(t);return ax(e,t,r,n),n;},ax=(e,t,r,n)=>{if(!aS(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},aT(r));i.unref&&i.unref();},aS=(e,{forceKillAfterTimeout:t},r)=>aD(e)&&!1!==t&&r,aD=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),aT=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},aN=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aI=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aR=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aI(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aO=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aC=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},aA=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,a_=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aA(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aL=e=>{null!==e.stdout&&(e.pipeStdout=a_.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=a_.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=a_.bind(void 0,e,"all"));},a$=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aP=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.readFileSync)(t)),ak=e=>{let t=aP(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},aU=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.createReadStream)(t)),aM=(e,t)=>{let r=aU(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},aj=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},aF=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aq=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r5)(e,{encoding:t,maxBuffer:n}):p(r5).buffer(e,{maxBuffer:n});},aB=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aq(e,{encoding:n,buffer:i,maxBuffer:o}),l=aq(t,{encoding:n,buffer:i,maxBuffer:o}),u=aq(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},aF(e,s),aF(t,l),aF(r,u)]);}},aG=(async()=>{})().constructor.prototype,aH=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aG,e)]),aV=(e,t)=>{for(let[r,n]of aH){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aX=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),az=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aK=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aY=(e,t)=>az(e,t).join(" "),aW=(e,t)=>az(e,t).map(e=>aK(e)).join(" "),aJ=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aQ=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aZ=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=aQ(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aQ(a,Array.isArray(s)?s.map(e=>aJ(e)):[aJ(s)],o.endsWith(" "));},a0=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aZ({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},a1=(0,ry.debuglog)("execa").enabled,a3=(e,t)=>(e+"").padStart(t,"0"),a2=()=>{let e=new Date();return`${a3(e.getHours(),2)}:${a3(e.getMinutes(),2)}:${a3(e.getSeconds(),2)}.${a3(e.getMilliseconds(),3)}`;},a5=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${a2()}] ${e} +`);},a4=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},a6=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:a1,...r}).env=a4(r),r.stdio=ay(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a8=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a9=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a7=(e={})=>({preferLocal:!0,...a9(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=a0(n,i);return k(o,a,a7(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=a0(e,r);return function(e,t,r){let n;let i=a6(e,t,r),o=aY(e,t),a=aW(e,t);a5(a,i.options);let s=ak(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw av({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a8(i.options,n.stdout,n.error),u=a8(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=av({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a7(t));},r;}(),nb={};const se="win32"!==n7.platform(),st=n7.release(),sr=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nb=function(e){return se?e.replace(/(\s+)/g,"\\$1"):sr(.../(\d+\.\d+)\.(\d+)/.exec(st).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rI("fQ0Jj"),t=function(e){return e.split("").reverse().join("");},nx=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nx={}),nS=rI("6afW1");const sn={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},si=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],so=A("~/.cpprc");let sa=!1;nS=rI("6afW1"),nD=rI("hImoI"),rC=rI("g0Mwp");const{appendFile:ss}=it.promises;let sl=!1,su=!1;const sc=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nT||(nT={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",ny=rI("lUL8q"),nN=rI("e19ul"),nN=rI("e19ul"),nI=rI("jGHPG");let sp=!1;nS=rI("6afW1"),nN=rI("e19ul"),rC=rI("g0Mwp");let sd=!1;rC=rI("g0Mwp"),rC=rI("g0Mwp");let sf=!1,sh=!1;const sm=/Version\s*:\s*(.*)/g;nR={},nO=ie.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nC=nR&&nR.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nA=nR&&nR.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n_=nR&&nR.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nC(t,e,r);return nA(t,e),t;},nL=nR&&nR.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},n$=nR&&nR.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nR,"__esModule",{value:!0}),nR.evaluateVersions=nR.isExplicitVersion=nR.findFromManifest=nR.getManifestFromRepo=nR.findAllVersions=nR.find=nR.cacheFile=nR.cacheDir=nR.extractZip=nR.extractXar=nR.extractTar=nR.extract7z=nR.downloadTool=nR.HTTPError=void 0;const sg=n_(rI("lUL8q")),sv=n_(rI("jGHPG")),sE=n_(it),sw=n_(rI("aUW7f")),sy=n_(n7),sb=n_(ie),sx=n_(rI("l6zH0")),sS=n_(rI("1mmqj")),sD=n_(rw),sT=n_(rs),sN=n$(rI("b4HqL"));nP=rI("ioM8U"),nU=(nk={},nk.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),nM=nk&&nk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nj=nk&&nk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nU(t,e,r);return nM(t,e),t;},nF=nk&&nk.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(nk,"__esModule",{value:!0}),nk.RetryHelper=void 0;const sI=nj(rI("lUL8q"));nk.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nF(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sR extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nR.HTTPError=sR;const sO="win32"===process.platform,sC="darwin"===process.platform;nR.downloadTool=function(e,t,r,n){return nL(this,void 0,void 0,function*(){t=t||sb.join(eb(),sN.default()),yield sv.mkdirP(sb.dirname(t)),sg.debug("Downloading "+e),sg.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new nk.RetryHelper(3,i,o);return yield a.execute(()=>nL(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(sE.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sx.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sg.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sR(o.message.statusCode);throw sg.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sT.promisify(sD.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sE.createWriteStream(t)),sg.debug("download complete"),l=!0,t;}finally{if(!l){sg.debug("download failed");try{yield sv.rmRF(t);}catch(e){sg.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sR)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nR.extract7z=function(e,t,r){return nL(this,void 0,void 0,function*(){ra.ok(sO,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sg.isDebug()?"-bb1":"-bb0";yield nP.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sb.join(nO,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sv.which("powershell",!0);yield nP.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nR.extractTar=function(e,t,r="xz"){return nL(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sg.debug("Checking tar --version");let i="";yield nP.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sg.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sg.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sO&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nP.exec("tar",n),t;});},nR.extractXar=function(e,t,r=[]){return nL(this,void 0,void 0,function*(){let n;ra.ok(sC,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(n=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sg.isDebug()&&n.push("-v");let i=yield sv.which("xar",!0);return yield nP.exec(`"${i}"`,Array.from(new Set(n))),t;});},nR.extractZip=function(e,t){return nL(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sO?yield function(e,t){return nL(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sv.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sg.debug("Using pwsh at path: "+i),yield nP.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sv.which("powershell",!0);sg.debug("Using powershell at path: "+t),yield nP.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nL(this,void 0,void 0,function*(){let r=yield sv.which("unzip",!0),n=[e];sg.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nP.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nR.cacheDir=function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(r=sS.clean(r)||r,n=n||sy.arch(),sg.debug(`Caching tool ${t} ${r} ${n}`),sg.debug("source dir: "+e),!sE.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sE.readdirSync(e)){let r=sb.join(e,t);yield sv.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nR.cacheFile=function(e,t,r,n,i){return nL(this,void 0,void 0,function*(){if(n=sS.clean(n)||n,i=i||sy.arch(),sg.debug(`Caching tool ${r} ${n} ${i}`),sg.debug("source file: "+e),!sE.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sb.join(o,t);return sg.debug("destination file "+a),yield sv.cp(e,a),ev(r,n,i),o;});},nR.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sy.arch(),eE(t)||(t=ew(eh(e,r),t));let n="";if(t){t=sS.clean(t)||"";let i=sb.join(ey(),e,t,r);sg.debug("checking cache: "+i),sE.existsSync(i)&&sE.existsSync(`${i}.complete`)?(sg.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sg.debug("not found");}return n;},nR.findAllVersions=eh,nR.getManifestFromRepo=function(e,t,r,n="master"){return nL(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sx.HttpClient("tool-cache"),s={};r&&(sg.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sg.debug("Invalid json");}}return i;});},nR.findFromManifest=function(e,t,r,n=sy.arch()){return nL(this,void 0,void 0,function*(){return yield sw._findMatch(e,t,r,n);});},nR.isExplicitVersion=eE,nR.evaluateVersions=ew,nq=rI("eekMY"),nB=rI("h5EpL"),nN=rI("e19ul"),rC=rI("g0Mwp"),rO=rI("l5aZl"),nS=rI("6afW1"),Object.defineProperty(nG={},"__esModule",{value:!0}),nG.retryAsPromised=nG.TimeoutError=void 0;class sA extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nG.TimeoutError=sA,nG.retryAsPromised=eS,nG.default=eS;let s_=!1;nN=rI("e19ul"),nI=rI("jGHPG"),rC=rI("g0Mwp"),ny=rI("lUL8q"),nS=rI("6afW1"),nN=rI("e19ul"),nP=rI("ioM8U"),rO=rI("l5aZl"),rC=rI("g0Mwp"),nH={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nV=Array.prototype.slice,nX=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:eL(this.keys),size:this.size,values:eL(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nN=rI("e19ul"),nz=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nK=async e=>{if(!nz(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nY=rI("dKY2K"),nB=rI("h5EpL"),nW=rI("SUO5C"),nP=rI("ioM8U"),rC=rI("g0Mwp");const sL=/v?(\d\S*)/,s$={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sP={pip:"22.2.0",python:"3.7.9"},sk={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};nS=rI("6afW1");const sU=ek(e1,{isPromise:!0});rC=rI("g0Mwp"),Object.defineProperty(nJ={},"__esModule",{value:!0}),nJ.getUbuntuVersion=void 0,nJ.getUbuntuVersion=e5;const sM=ek(e4,{isPromise:!0}),sj=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||it.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||it.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||it.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||it.mkdirSync,t;},sF=(e,t,r)=>{let n=(0,ie.dirname)(e),i={...sj(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sF(e,i,sF(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sq=Object.assign(async(e,t,r)=>{let n=sj(t);n.recursive=!1;let i=(0,ie.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sq(i,n).then(t=>sq(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sF}),sB=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sB(e,(0,ie.dirname)(t),t):void 0);},sG=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sG(e,(0,ie.dirname)(t),t):void 0;}},sH=(e,t)=>{let r=sj(t);if(r.recursive=!0,(0,ie.dirname)(e)===e)return r.mkdirSync(e,r);let n=sG(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sF(e,r);throw t;}},sV=Object.assign(async(e,t)=>{let r={...sj(t),recursive:!0};return(0,ie.dirname)(e)===e?await r.mkdirAsync(e,r):sB(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sq(e,r);throw t;}));},{sync:sH}),sX=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sz=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,ie.resolve)(e),"win32"===sX){let{root:t}=(0,ie.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sK=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sY=+sK[0]>10||10==+sK[0]&&+sK[1]>=12,sW=sY?e=>sj(e).mkdirSync===it.mkdirSync:()=>!1,sJ=Object.assign(sY?e=>sj(e).mkdir===it.mkdir:()=>!1,{sync:sW}),sQ=(e,t)=>{e=sz(e);let r=sj(t);return sW(r)?sH(e,r):sF(e,r);},sZ=Object.assign(async(e,t)=>{e=sz(e);let r=sj(t);return sJ(r)?sV(e,r):sq(e,r);},{mkdirpSync:sQ,mkdirpNative:sV,mkdirpNativeSync:sH,mkdirpManual:sq,mkdirpManualSync:sF,sync:sQ,native:sV,nativeSync:sH,manual:sq,manualSync:sF,useNative:sJ,useNativeSync:sW}),s0=ek(te,{isPromise:!0}),s1=ek(tt,{isPromise:!0}),s3=ek(tr,{isPromise:!0});nN=rI("e19ul"),rC=rI("g0Mwp"),nS=rI("6afW1");const s2=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s5=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=s2.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nZ=rI("1cH1m")).DOMImplementation,nZ.XMLSerializer,nQ=rI("9KKJA").DOMParser;const s4=63,s6="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s8=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s9{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s7 extends s9{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t);return this.value?`${r}`:`${r}`;}}class le extends s9{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){tf(e,"data");let t=td(e)?.nodeValue||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s8[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s4)<<18|(i&s4)<<12|(o&s4)<<6|a&s4,o>s4?a>s4?2:0:a>s4?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(t);}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=e?.dataColumns??68,i=(e?.indentString??" ").repeat(t),o=`${i}`;if(n>0)for(let e=th(this.value);e;e=e.substring(n))o+=`${r}${i}${e.substring(0,n)}`;else o+=`${r}${i}${th(this.value)}`;return o+`${r}${i}`;}}class lt extends s9{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){tf(e,"integer");let t=td(e)?.nodeValue||"";if(!/^[-+]?[0-9]+$/.test(t))throw Error("Invalid integer data: "+t);let r=+t;this.value=r>9007199254740991||r<-9007199254740991?BigInt(t):r;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return tm(n),`${r}${n}`;}}class lr extends s9{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){tf(e,"real");let t=td(e)?.nodeValue||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(t))throw Error("Invalid real data: "+t);this.value=+t;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return`${r}${n}`;}}class ln extends s9{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){tf(e,"string"),this.value=td(e)?.nodeValue||"";}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${r}${n}`;}}class li extends s9{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=(e?.indentString??" ").repeat(t),i=this.value;if(!i.length)return`${n}`;let o=`${n}`;for(let n of i)o+=`${r}${n.toXml(e,t+1)}`;return o+`${r}${n}`;}}class lo extends s9{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){let r=t[e],i=t[e+1];tf(r,"key");let o=td(r)?.nodeValue||"",a=this.childFromXmlElement(i);n.set(o,a);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.indentString??" ",n=e?.newlineString??"\n",i=r.repeat(t),o=this.value;if(!o.size)return`${i}`;let a=r.repeat(t+1),s=`${i}`;for(let[r,i]of o){let o=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");s+=`${n}${a}${o}${n}${i.toXml(e,t+1)}`;}return s+`${n}${i}`;}}const la='',ls='';class ll{static XML_DECLARATION=la;static XML_DOCTYPE=ls;xmlDeclaration=la;xmlDoctype=ls;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lo().childFromXmlElement(e);}toXml(e=null){let t=e?.indentRoot??!1,r=e?.newlineString??"\n",n=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(n?[n.toXml(e,t?1:0)]:[]),"",""].join(r);}}class lu{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new ll();t.fromXml(e);let r=t.valueCastAs(lo).getValue("system-entities").castAs(li),n=[];for(let e of r.value){let t=e.castAs(lo),r=t.getValue("dev-entry").castAs(ln).value,i=t.getValue("potentially-mountable").castAs(s7).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(ln).value),a&&(u.unmappedContentHint=a.castAs(ln).value),s&&(u.volumeKind=s.castAs(ln).value),l&&(u.mountPoint=l.castAs(ln).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){let r=this._findRootDevice(e)?.devEntry,n=null,i={eject:async(e=null)=>{r&&(await this.eject(r,e),r="",n&&process.off("exit",n));},ejectSync:(e=null)=>{r&&(this.ejectSync(r,e),r="",n&&process.off("exit",n));}};return t&&(n=()=>{i.ejectSync(t);},process.once("exit",n)),i;}}n0=rI("3nHUu"),nB=rI("h5EpL"),nP=rI("ioM8U"),rC=rI("g0Mwp"),nN=rI("e19ul"),rC=rI("g0Mwp"),rO=rI("l5aZl"),nS=rI("6afW1"),n1=ie.resolve(__dirname,"../../src/gcc");const lc={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nW=rI("SUO5C"),n0=rI("3nHUu"),nN=rI("e19ul"),rC=rI("g0Mwp"),nN=rI("e19ul"),n3=ie.resolve(__dirname,"../../src/kcov"),rO=rI("l5aZl"),rC=rI("g0Mwp"),nS=rI("6afW1"),nN=rI("e19ul"),ny=rI("lUL8q"),rC=rI("g0Mwp"),nN=rI("e19ul"),ny=rI("lUL8q");const lp=rb.env["ProgramFiles(x86)"],ld=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lf=["Enterprise","Professional","Community","BuildTools"],lh=["2022","2019","2017"],lm={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};n2=t$;const lg=`${lp}\\Microsoft Visual Studio\\Installer`;n5=tP,n4=function(e,t,r,n,i,o){if("win32"!=rb.platform){ny.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=ie.delimiter+lg;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;ny.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(ny.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(ny.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),ny.exportVariable(t,r));}ny.endGroup(),ny.info("Configured Developer Command Prompt");},rC=rI("g0Mwp"),nS=rI("6afW1");class lv extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lE extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const lw=e=>void 0===globalThis.DOMException?new lE(e):new DOMException(e),ly=e=>{let t=void 0===e.reason?lw("This operation was aborted."):e.reason;return t instanceof Error?t:lw(t);},lb=12e5,{readFile:lx,writeFile:lS,chmod:lD}=it.promises;(rn=n6||(n6={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nq=rI("eekMY"),rC=rI("g0Mwp"),nN=rI("e19ul");const lT=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lN=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lI=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lR=new Map(),lO={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lC="17.0.6";n8=ie.resolve(__dirname,"../../src/llvm");const lA=ek(tK,{isPromise:!0}),l_=ek(tW,{isPromise:!0}),lL=ek(tJ,{isPromise:!0});rO=rI("l5aZl"),nN=rI("e19ul"),rC=rI("g0Mwp"),nS=rI("6afW1"),n9=ie.resolve(__dirname,"../../src/msvc"),nN=rI("e19ul"),nN=rI("e19ul"),rC=rI("g0Mwp"),nS=rI("6afW1"),nN=rI("e19ul");let l$=!1;const lP={nala:t2,cmake:e_,ninja:tR,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t5,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tY(e,t,r);},clangformat:function(e,t,r){return tY(e,t,r,n6.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:tL,make:t0,task:function(e,t,r){return eD("task",e,t8,t,r);},sevenzip:eT},lk=Object.keys(lP),lU=["compiler","architecture","timeout",...lk];ny=rI("lUL8q"),rC=rI("g0Mwp"),nW=rI("SUO5C"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rC.error)("main() panicked!"),(0,rC.error)(e),process.exitCode=1;}); //# sourceMappingURL=setup-cpp.js.map \ No newline at end of file diff --git a/dist/actions/setup-cpp.js.map b/dist/actions/setup-cpp.js.map index cb9eb5d2..4376ed81 100644 --- a/dist/actions/setup-cpp.js.map +++ b/dist/actions/setup-cpp.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-cpp.js","names":["e","t","r","n","i","o","a","s","l","u","d","Promise","TypeError","rz","code","ignoreErrors","f","options","env","process","cwd","chdir","disabled","rV","sync","command","path","rK","pathExt","n6","delimiter","resolve","h","Object","assign","Error","errno","syscall","spawnargs","args","m","iQ","file","original","g","rG","ru","spawn","rQ","hookChildProcess","v","charCodeAt","length","slice","E","platform","keys","reverse","find","toUpperCase","w","p","rm","execPath","URL","rg","fileURLToPath","rf","push","join","y","pipe","b","writable","_write","_writableState","x","maxBuffer","r4","getBufferedLength","r2","MAX_LENGTH","bufferedData","getBufferedValue","oq","on","oB","S","aa","o5","o4","ai","ok","rh","ChildProcess","o0","reject","ou","error","stdout","stderr","all","escapedCommand","parsed","timedOut","isCanceled","killed","o1","oP","oU","c","kill","oR","bind","cancel","oL","rZ","exitCode","signal","oJ","as","aborted","failed","oz","oK","oF","D","oV","spawnSync","input","status","T","getuid","CI","rP","nothrow","N","ac","o6","R","O","I","map","C","SUDO_USER","n8","statSync","isDirectory","A","n4","homedir","replace","ap","_","next","throw","done","value","then","apply","L","return","call","label","ops","pop","trys","sent","Symbol","iterator","$","r7","pkg","nm","rC","warning","message","stack","P","Array","isArray","k","a3","aV","aX","a0","aT","aq","af","aB","aD","aN","av","ax","aM","a2","a$","aP","aO","U","stdio","M","a7","nv","nE","shouldEscapeSpace","rO","GITHUB_ACTIONS","shouldAddOnlyIfNotDefined","ng","info","exportVariable","F","setFailed","j","se","some","test","PATH","split","includes","addPath","q","B","appendFileSync","st","sr","nw","pathExists","readFileSync","G","Set","writeFileSync","H","z","name","version","DEBIAN_FRONTEND","si","K","so","Y","flatMap","repositories","X","sa","binDir","V","ny","default","trim","J","W","Q","Z","toString","sn","ee","startsWith","et","nx","dirname","tmpdir","nS","mkdirP","NONINTERACTIVE","er","en","ss","arch","ei","SystemRoot","ALLUSERSPROFILE","ChocolateyInstall","eo","sl","TMP","TEMP","Path","extendEnv","ea","es","el","eu","ec","ep","ed","su","sc","ef","matchAll","sp","eh","sg","sv","ey","sh","existsSync","readdirSync","eE","em","eb","sx","sf","eg","sw","clean","sd","debug","rmRF","ev","valid","ew","sort","gt","satisfies","RUNNER_TOOL_CACHE","ra","RUNNER_TEMP","ex","rD","eS","$current","max","timeout","match","backoffBase","backoffExponent","report","Date","toLocaleTimeString","setTimeout","clearTimeout","sI","current","catch","RegExp","Math","pow","eD","url","binRelativeDir","binFileName","extractedFolderName","extractFunction","nD","installDir","nj","downloadTool","sR","cacheDir","eT","eN","eI","eR","eO","eC","eA","nM","nU","addExeExt","extractTar","e_","eL","nq","e$","eP","ek","isMemoized","fn","isEqual","isMatchingKey","isPromise","maxSize","onCacheAdd","onCacheChange","onCacheHit","transformKey","nF","nB","values","canTransformKey","shouldCloneArguments","shouldUpdateOnAdd","shouldUpdateOnChange","shouldUpdateOnHit","arguments","getKeyIndex","orderByLru","updateAsyncCache","cache","eU","ie","request","method","statusCode","end","eM","from","filter","nV","localeCompare","ej","nH","has","JSON","stringify","eF","sO","nA","getExecOutput","console","eq","eB","eG","eX","bin","eW","eH","eV","e7","e9","upgrade","usePipx","to","isLibrary","eK","setupActionsPython","rI","ez","eY","sA","python","eJ","eZ","eQ","pip","e0","e1","e3","e2","s_","parseInt","sC","e5","execFile","encoding","shell","e4","e6","nz","getUbuntuVersion","e8","sQ","user","tn","PIPX_HOME","sW","PIPX_BIN_DIR","sJ","sL","ti","te","sY","tt","tr","s$","findIndex","ta","ts","tl","tu","tc","nK","locator","errorHandler","fatalError","parseFromString","childNodes","documentElement","declaration","doctype","tp","nodeValue","tagName","td","tf","th","s3","s1","tm","Number","isInteger","tg","lo","devices","eject","attach","mountPoint","tv","tE","tw","s0","notice","ty","tb","la","releaseName","fileSuffix","tx","tD","tT","tS","nW","tN","nJ","tI","tR","tO","tC","tA","t_","nQ","tL","t$","lp","tP","execSync","entries","lc","ll","lu","ls","tk","n1","tU","lv","startGroup","milliseconds","fallback","customTimers","sign","lg","addEventListener","POSITIVE_INFINITY","lf","finally","clear","tM","endGroup","lA","t7","tj","tF","ly","lE","NODE_DEBUG","tq","lw","rS","tB","tG","tH","lx","tV","lS","lD","get","lb","lT","lN","tX","tz","lI","tQ","tK","tY","lO","tZ","n3","All","nX","lR","tW","tJ","LD_LIBRARY_PATH","DYLD_LIBRARY_PATH","n2","t0","t1","nZ","n0","t3","n5","t2","t5","t4","t6","t8","t9","lC","addShExt","addShRelativePrefix","re","compiler","rt","ACTIONS_ALLOW_UNSECURE_COMMANDS","alias","unknown","string","boolean","concat","splice","substring","indexOf","repeat","shift","lL","fromEntries","getInput","toLowerCase","help","table","tools","documentation","coverage","other","architecture","SETUP_CPP_DIR","rL","create","autoloadLocales","addLocale","r$","rA","r_","forEach","cppcheck","gcovr","l_","isCI","now","parseFloat","format","success","rr","rn","rM","rj","rF","rq","r1","r5","r6","r9","nt","nr","nn","ni","no","na","ns","nl","nu","nc","np","nd","nf","nh","nG","any","every","defineProperty","exports","constant","isPR","pr","ne","BUILD_ID","BUILD_NUMBER","CI_APP_ID","CI_BUILD_ID","CI_BUILD_NUMBER","CI_NAME","CONTINUOUS_INTEGRATION","RUN_ID","parse","log","required","trimWhitespace","issueCommand","toCommandProperties","issue","ExitCode","Success","Failure","toCommandValue","GITHUB_ENV","issueFileCommand","prepareKeyValueMessage","setSecret","GITHUB_PATH","getMultilineInput","getBooleanInput","setOutput","GITHUB_OUTPUT","write","EOL","setCommandEcho","isDebug","RUNNER_DEBUG","group","saveState","GITHUB_STATE","getState","getIDToken","OidcClient","enumerable","summary","markdownSummary","toPosixPath","toWin32Path","toPlatformPath","constructor","properties","hasOwnProperty","String","title","line","startLine","endLine","col","startColumn","endColumn","random","rng","n9","randomFillSync","Uint8Array","substr","createHttpClient","HttpClient","BearerCredentialHandler","getRequestToken","allowRetries","maxRetries","ACTIONS_ID_TOKEN_REQUEST_TOKEN","getIDTokenUrl","ACTIONS_ID_TOKEN_REQUEST_URL","getCall","getJson","result","encodeURIComponent","n7","HttpCodes","OK","MultipleChoices","MovedPermanently","ResourceMoved","SeeOther","NotModified","UseProxy","SwitchProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","TooManyRequests","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","Headers","Accept","ContentType","MediaTypes","ApplicationJson","getProxyUrl","href","setPrototypeOf","prototype","HttpClientError","readBody","Buffer","alloc","HttpClientResponse","isHttps","protocol","_ignoreSslError","_allowRedirects","_allowRedirectDowngrade","_maxRedirects","_allowRetries","_maxRetries","_keepAlive","_disposed","userAgent","handlers","requestOptions","ignoreSslError","_socketTimeout","socketTimeout","allowRedirects","allowRedirectDowngrade","maxRedirects","keepAlive","del","post","patch","put","head","sendStream","_getExistingOrDefaultHeader","_processResponse","postJson","putJson","patchJson","_prepareRequest","requestRaw","canHandleAuthentication","handleAuthentication","headers","location","hostname","_performExponentialBackoff","dispose","_agent","destroy","requestRawWithCallback","byteLength","httpModule","getAgent","_getAgent","parsedUrl","host","port","pathname","search","_mergeHeaders","agent","prepareRequest","_proxyAgent","maxSockets","globalAgent","proxy","username","password","proxyAuth","httpsOverHttps","httpsOverHttp","httpOverHttps","httpOverHttp","Agent","rejectUnauthorized","min","deserializeDates","isNaN","valueOf","reduce","no_proxy","NO_PROXY","endsWith","https_proxy","HTTPS_PROXY","http_proxy","HTTP_PROXY","checkBypass","proxyOptions","defaultMaxSockets","requests","sockets","onSocket","removeSocket","createSocket","getHeader","socket","servername","ri","connect","localAddress","defaultPort","rs","inherits","ro","EventEmitter","addRequest","emit","removeListener","removeAllListeners","useChunkedEncodingByDefault","once","nextTick","unshift","BasicCredentialHandler","Authorization","token","PersonalAccessTokenCredentialHandler","access","appendFile","writeFile","promises","SUMMARY_ENV_VAR","SUMMARY_DOCS_URL","_buffer","filePath","_filePath","constants","R_OK","W_OK","wrap","overwrite","emptyBuffer","isEmptyBuffer","addRaw","addEOL","addCodeBlock","lang","addList","addTable","header","data","colspan","rowspan","addDetails","addImage","width","height","src","alt","addHeading","addSeparator","addBreak","addQuote","cite","addLink","sep","require","pluralize","numerous","id","locale","span","unitType","unitTypeLookupOrder","autoload","floor","defaultConfig","versions","node","isSymbolicLink","isFile","PATHEXT","stat","mode","uid","gid","getgid","inc","diff","major","minor","prerelease","compare","rcompare","compareLoose","compareBuild","rsort","lt","neq","gte","lte","cmp","coerce","Comparator","Range","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","intersects","simplifyRange","subset","SemVer","tokens","SEMVER_SPEC_VERSION","RELEASE_TYPES","compareIdentifiers","rcompareIdentifiers","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","safeRe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","MAX_SAFE_INTEGER","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","loose","includePrerelease","LOOSE","FULL","raw","build","compareMain","comparePre","freeze","rtl","COERCERTL","exec","index","lastIndex","ANY","semver","operator","COMPARATORLOOSE","COMPARATOR","set","parseRange","range","HYPHENRANGELOOSE","HYPHENRANGE","COMPARATORTRIM","TILDETRIM","CARETTRIM","Map","size","delete","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","GTE0PRE","GTE0","unshiftNode","maxAge","tail","prev","key","removeNode","stale","noDisposeOnSet","updateAgeOnGet","reset","allowStale","lengthCalculator","itemCount","rforEach","toArray","dump","dumpLru","peek","load","prune","list","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","add","rl","configurable","basename","extname","normalize","relative","IS_WINDOWS","force","recursive","retryDelay","mkdir","isRooted","tryGetExecutablePath","lstat","unlink","chmod","readlink","symlink","exists","copyFile","cp","copySourceDirectory","readdir","mv","rename","which","findInPath","open","rmdir","UV_FS_O_EXLOCK","READONLY","O_RDONLY","getCmdPath","COMSPEC","_findMatch","stable","files","platform_version","_getOsVersion","_readLinuxVersionFile","randomBytes","argStringToArray","ToolRunner","rc","StringDecoder","listeners","toolPath","_debug","_getCommandString","_getSpawnFileName","_getSpawnArgs","_isCmdFile","windowsVerbatimArguments","_windowsQuoteCmdArg","_processLineBuffer","_endsWith","_uvQuoteCmdArg","_cloneExecOptions","silent","failOnStdErr","ignoreReturnCode","delay","outStream","errStream","_getSpawnOptions","argv0","stdline","processStderr","errline","processError","processExited","processClosed","CheckComplete","processExitCode","stdin","charAt","_setResult","rp","HandleTimeout","rR","cdata","lineNumber","columnNumber","systemId","java","currentElement","appendChild","doc","NAMESPACE","ParseError","XMLReader","domBuilder","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","Function","HTML","xml","XML","normalizeLineEndings","startDocument","createDocument","documentURI","startElement","createElementNS","getURI","getValue","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","parentNode","startPrefixMapping","endPrefixMapping","processingInstruction","createProcessingInstruction","ignorableWhitespace","characters","createCDATASection","createTextNode","skippedEntity","endDocument","comment","createComment","startCDATA","endCDATA","startDTD","implementation","createDocumentType","warn","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","XMLNS","captureStackTrace","_node","_refresh","_inc","ownerDocument","$$length","ownerElement","namespaceURI","_nsMap","prefix","localName","firstChild","nextSibling","previousSibling","lastChild","nodeType","DOCUMENT_TYPE_NODE","ELEMENT_NODE","TEXT_NODE","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","lookupPrefix","namespace","attributes","item","nodeName","publicId","internalSubset","target","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","insertBefore","replaceChild","hasChildNodes","cloneNode","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","serializeToString","apos","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","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","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","efDot","Efr","efr","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","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","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","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","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","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","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","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","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","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","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","qName","uri","closed","currentNSMap","localNSMap","attributeNames","source","fromCharCode","endDTD","addValue","setTagName","lastIndexOf","offset","getLocalName","abs","long","years","one","months","weeks","days","hours","minutes","seconds","narrow","short","rk","ir","chown","io","ia","lchmod","is","lchown","il","link","iu","ip","mkdtemp","ih","im","readFile","ig","iv","realpath","iE","iw","iy","ib","ix","truncate","iS","iD","utimes","iT","iN","iI","iO","iR","iC","groups","getgroups","rU","i$","i_","iL","iP","_ISEXE_TEST_PLATFORM_","ik","isexe","iU","posix","iM","ij","iF","iq","iB","pathEnv","pathExtExe","iG","iH","rB","rH","OSTYPE","iX","iV","rX","TESTING_WINDOWS","iz","iK","iY","iW","rY","rW","rJ","openSync","readSync","closeSync","iJ","forceShell","comspec","verifyENOENT","verifyENOENTSync","notFoundError","_parse","_enoent","iZ","getOwnPropertyDescriptor","i0","i1","getPrototypeOf","i3","i2","i5","i4","i6","WeakMap","i8","displayName","ignoreNonConfigurable","Reflect","ownKeys","callCount","i9","ot","oe","i7","number","action","description","standard","forced","oi","signals","rv","supported","oo","oa","os","ol","errorCode","signalDescription","Boolean","originalMessage","shortMessage","oc","op","od","of","reallyExit","pid","oh","om","og","ov","oE","__signal_exit_emitter__","count","emitted","infinite","setMaxListeners","ow","ox","ob","oN","oD","r0","equal","alwaysLast","unload","oy","oI","oT","oO","oC","o_","unref","forceKillAfterTimeout","oA","SIGTERM","isFinite","o$","killSignal","cleanup","detached","oM","oj","createWriteStream","pipeStdout","pipeStderr","pipeAll","rE","promisify","rw","PassThrough","array","objectMode","setEncoding","pipeline","r3","buffer","MaxBufferError","r8","readable","isEmpty","oG","oH","inputFile","oX","createReadStream","oY","oW","oQ","oZ","o3","o2","o8","rd","isBuffer","o9","o7","templates","expressions","template","ae","at","ry","debuglog","enabled","ar","padStart","an","getHours","getMinutes","getSeconds","getMilliseconds","verbose","ao","preferLocal","localDir","stripFinalNewline","windowsHide","al","au","rb","npm_package_json","npm_config_user_agent","XDG_CONFIG_HOME","mkdirSync","lastUpdateCheck","getTime","updateCheckInterval","distTag","alwaysRun","padEnd","isTTY","shouldNotifyInNpmScript","ad","ah","am","ag","aE","aw","ab","ay","aS","aI","aR","aC","aA","a_","aL","ak","aU","aj","aF","aG","aH","az","aK","aY","aW","aJ","aQ","aZ","a1","a5","a4","a6","a8","release","a9","nb","nR","sm","sE","sy","sb","nC","sS","nP","n_","RetryHelper","maxAttempts","minSeconds","maxSeconds","execute","getSleepAmount","sleep","sD","httpStatusCode","new","HTTPError","sT","sN","nO","authorization","statusMessage","extract7z","nT","extractXar","extractZip","cacheFile","findAllVersions","getManifestFromRepo","tree","accept","findFromManifest","isExplicitVersion","evaluateVersions","retryAsPromised","TimeoutError","previous","_getKeyIndexFromMatchingKey","_getKeyIndexForMany","_getKeyIndexForSingle","llvm","clangtidy","clangformat","ninja","cmake","conan","meson","kcov","task","doxygen","gcc","mingw","nala","sP","fs","mkdirAsync","statAsync","sk","sU","sM","sj","sF","sq","sB","__TESTING_MKDIRP_PLATFORM__","sG","root","sH","__TESTING_MKDIRP_NODE_VERSION__","sV","sX","sz","sK","mkdirpSync","mkdirpNative","mkdirpNativeSync","mkdirpManual","mkdirpManualSync","native","nativeSync","manual","manualSync","useNative","useNativeSync","sZ","DOMImplementation","nY","XMLSerializer","DOMParser","s2","s5","type","TYPE","castTo","castAs","fromXml","fromXmlElement","s4","TAG_NAMES","toXml","indentString","s6","newlineString","dataColumns","s8","asBigInt","BigInt","asNumber","s9","s7","replaceAll","CHILD_TAG_NAMES","popValue","shiftValue","childFromXmlElement","lr","ln","li","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","valueCastAs","indentRoot","hdiutil","_runAttach","_argsAttach","ejectSync","_createEjects","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","readonly","nobrowse","_fileArg","_parseDevices","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","_findRootDevice","off","ProgramFiles","ld","win32","win64","x86_64","lh","lm","globalThis","DOMException","reason","vcpkg","bazel","opencppcoverage","choco","brew","powershell","ccache","sccache","graphviz","ClangFormat","msvc","vcvarsall","make","sevenzip","argv"],"sources":["../../","../../node_modules/ci-info/index.js","../../node_modules/ci-info/vendors.json","../../packages/ci-log/src/index.ts","../../node_modules/@actions/core/lib/core.js","../../node_modules/@actions/core/src/core.ts","../../node_modules/@actions/core/lib/command.js","../../node_modules/@actions/core/src/command.ts","../../node_modules/@actions/core/lib/utils.js","../../node_modules/@actions/core/src/utils.ts","../../node_modules/@actions/core/lib/file-command.js","../../node_modules/@actions/core/src/file-command.ts","../../node_modules/uuid/dist/esm-node/v4.js","../../node_modules/uuid/dist/esm-node/rng.js","../../node_modules/uuid/dist/esm-node/stringify.js","../../node_modules/uuid/dist/esm-node/validate.js","../../node_modules/uuid/dist/esm-node/regex.js","../../node_modules/@actions/core/lib/oidc-utils.js","../../node_modules/@actions/core/src/oidc-utils.ts","../../node_modules/@actions/http-client/lib/index.js","../../node_modules/@actions/http-client/src/index.ts","../../node_modules/@actions/http-client/lib/proxy.js","../../node_modules/@actions/http-client/src/proxy.ts","../../node_modules/tunnel/index.js","../../node_modules/tunnel/lib/tunnel.js","../../node_modules/@actions/http-client/lib/auth.js","../../node_modules/@actions/http-client/src/auth.ts","../../node_modules/@actions/core/lib/summary.js","../../node_modules/@actions/core/src/summary.ts","../../node_modules/@actions/core/lib/path-utils.js","../../node_modules/@actions/core/src/path-utils.ts","../../node_modules/numerous/lib/numerous.js","../../node_modules/time-delta/lib/time-delta.js","../../node_modules/numerous/index.js","../../node_modules/is-node/index.js","../../node_modules/isexe/windows.js","../../node_modules/isexe/mode.js","../../node_modules/signal-exit/signals.js","../../node_modules/semver/index.js","../../node_modules/semver/internal/re.js","../../node_modules/semver/internal/constants.js","../../node_modules/semver/internal/debug.js","../../node_modules/semver/classes/semver.js","../../node_modules/semver/internal/parse-options.js","../../node_modules/semver/internal/identifiers.js","../../node_modules/semver/functions/parse.js","../../node_modules/semver/functions/valid.js","../../node_modules/semver/functions/clean.js","../../node_modules/semver/functions/inc.js","../../node_modules/semver/functions/diff.js","../../node_modules/semver/functions/major.js","../../node_modules/semver/functions/minor.js","../../node_modules/semver/functions/patch.js","../../node_modules/semver/functions/prerelease.js","../../node_modules/semver/functions/compare.js","../../node_modules/semver/functions/rcompare.js","../../node_modules/semver/functions/compare-loose.js","../../node_modules/semver/functions/compare-build.js","../../node_modules/semver/functions/sort.js","../../node_modules/semver/functions/rsort.js","../../node_modules/semver/functions/gt.js","../../node_modules/semver/functions/lt.js","../../node_modules/semver/functions/eq.js","../../node_modules/semver/functions/neq.js","../../node_modules/semver/functions/gte.js","../../node_modules/semver/functions/lte.js","../../node_modules/semver/functions/cmp.js","../../node_modules/semver/functions/coerce.js","../../node_modules/semver/classes/comparator.js","../../node_modules/semver/classes/range.js","../../node_modules/semver/node_modules/lru-cache/index.js","../../node_modules/yallist/yallist.js","../../node_modules/yallist/iterator.js","../../node_modules/semver/functions/satisfies.js","../../node_modules/semver/ranges/to-comparators.js","../../node_modules/semver/ranges/max-satisfying.js","../../node_modules/semver/ranges/min-satisfying.js","../../node_modules/semver/ranges/min-version.js","../../node_modules/semver/ranges/valid.js","../../node_modules/semver/ranges/outside.js","../../node_modules/semver/ranges/gtr.js","../../node_modules/semver/ranges/ltr.js","../../node_modules/semver/ranges/intersects.js","../../node_modules/semver/ranges/simplify.js","../../node_modules/semver/ranges/subset.js","../../node_modules/escape-quotes/node_modules/escape-string-regexp/index.js","../../node_modules/path-exists/index.js","../../node_modules/patha/dist/index.node.mjs","../../node_modules/patha/src/name.ts","../../node_modules/patha/src/normalize-trim.ts","../../node_modules/patha/src/add-exe-ext.ts","../../node_modules/patha/src/add-name-prefix.ts","../../node_modules/patha/src/add-name-suffix.ts","../../node_modules/patha/src/add-sh-ext.ts","../../node_modules/patha/src/add-sh-relative-prefix.ts","../../node_modules/patha/src/remove-ext.ts","../../node_modules/patha/src/replace-ext.ts","../../node_modules/patha/src/is-path-inside.ts","../../node_modules/escape-string-regexp/index.js","../../node_modules/replace-ext/index.js","../../node_modules/@actions/io/lib/io.js","../../node_modules/@actions/io/src/io.ts","../../node_modules/@actions/io/lib/io-util.js","../../node_modules/@actions/io/src/io-util.ts","../../node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/@actions/tool-cache/node_modules/uuid/v4.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/rng.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/@actions/exec/lib/exec.js","../../node_modules/@actions/exec/src/exec.ts","../../node_modules/@actions/exec/lib/toolrunner.js","../../node_modules/@actions/exec/src/toolrunner.ts","../../node_modules/@parcel/runtime-js/lib/runtime-9d563254babe9e19.js","../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/@xmldom/xmldom/lib/sax.js","../../src/main.ts","../../node_modules/numerous/locales/en.js","../../node_modules/time-delta/index.js","../../node_modules/time-delta/locales/en.js","../../packages/untildify-user/src/index.ts","../../node_modules/admina/src/index.mts","../../node_modules/admina/dist/root.mjs","../../node_modules/admina/src/root.mts","../../node_modules/which/lib/index.js","../../node_modules/which/node_modules/isexe/dist/mjs/index.js","../../node_modules/which/node_modules/isexe/src/index.ts","../../node_modules/which/node_modules/isexe/dist/mjs/posix.js","../../node_modules/which/node_modules/isexe/src/posix.ts","../../src/utils/compat/fs/promises.ts","../../node_modules/which/node_modules/isexe/dist/mjs/win32.js","../../node_modules/which/node_modules/isexe/src/win32.ts","../../node_modules/which/node_modules/isexe/src/options.ts","../../node_modules/execa/index.js","../../node_modules/cross-spawn/index.js","../../node_modules/cross-spawn/lib/parse.js","../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../node_modules/cross-spawn/node_modules/which/which.js","../../node_modules/isexe/index.js","../../node_modules/path-key/index.js","../../node_modules/cross-spawn/lib/util/escape.js","../../node_modules/cross-spawn/lib/util/readShebang.js","../../node_modules/shebang-command/index.js","../../node_modules/shebang-regex/index.js","../../node_modules/cross-spawn/lib/enoent.js","../../node_modules/strip-final-newline/index.js","../../node_modules/npm-run-path/index.js","../../node_modules/npm-run-path/node_modules/path-key/index.js","../../node_modules/onetime/index.js","../../node_modules/mimic-fn/index.js","../../node_modules/execa/lib/error.js","../../node_modules/human-signals/build/src/main.js","../../node_modules/human-signals/build/src/realtime.js","../../node_modules/human-signals/build/src/signals.js","../../node_modules/human-signals/build/src/core.js","../../node_modules/execa/lib/stdio.js","../../node_modules/execa/lib/kill.js","../../node_modules/signal-exit/index.js","../../node_modules/execa/lib/pipe.js","../../node_modules/is-stream/index.js","../../node_modules/execa/lib/stream.js","../../node_modules/get-stream/index.js","../../node_modules/get-stream/buffer-stream.js","../../node_modules/merge-stream/index.js","../../node_modules/execa/lib/promise.js","../../node_modules/execa/lib/command.js","../../node_modules/execa/lib/verbose.js","../../node_modules/admina/dist/admin.mjs","../../node_modules/admina/src/admin.mts","../../node_modules/admina/dist/is-admin.mjs","../../node_modules/admina/src/is-admin.mts","../../node_modules/admina/dist/user-access.mjs","../../node_modules/admina/src/user-access.mts","../../src/check-updates.ts","../../node_modules/simple-update-notifier/build/index.js","../../package-version.json","../../src/cli-options.ts","../../node_modules/mri/lib/index.mjs","../../src/tool.ts","../../src/bazel/bazel.ts","../../src/utils/setup/setupAptPack.ts","../../src/utils/env/addEnv.ts","../../packages/exec-powershell/src/index.ts","../../packages/exec-powershell/node_modules/execa/index.js","../../packages/exec-powershell/node_modules/execa/lib/error.js","../../packages/exec-powershell/node_modules/execa/lib/stdio.js","../../packages/exec-powershell/node_modules/execa/lib/kill.js","../../packages/exec-powershell/node_modules/execa/lib/pipe.js","../../packages/exec-powershell/node_modules/execa/lib/stream.js","../../packages/exec-powershell/node_modules/execa/lib/promise.js","../../packages/exec-powershell/node_modules/execa/lib/command.js","../../packages/exec-powershell/node_modules/execa/lib/verbose.js","../../node_modules/escape-path-with-spaces/index.js","../../node_modules/escape-quotes/lib/escape-quotes.js","../../src/utils/setup/setupBrewPack.ts","../../src/brew/brew.ts","../../src/utils/setup/setupChocoPack.ts","../../src/chocolatey/chocolatey.ts","../../src/utils/env/isArch.ts","../../src/utils/env/hasDnf.ts","../../src/utils/setup/setupDnfPack.ts","../../src/utils/env/isUbuntu.ts","../../src/ccache/ccache.ts","../../src/utils/setup/setupPacmanPack.ts","../../src/cmake/cmake.ts","../../node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/@actions/tool-cache/src/retry-helper.ts","../../src/utils/setup/setupBin.ts","../../node_modules/retry-as-promised/dist/index.js","../../src/utils/setup/extract.ts","../../src/sevenzip/sevenzip.ts","../../src/conan/conan.ts","../../src/utils/setup/setupPipPack.ts","../../src/python/python.ts","../../node_modules/micro-memoize/dist/micro-memoize.esm.js","../../node_modules/micro-memoize/src/utils.ts","../../node_modules/micro-memoize/src/Cache.ts","../../node_modules/micro-memoize/src/index.ts","../../src/utils/setup/version.ts","../../node_modules/is-url-online/dist/index.mjs","../../src/utils/std/index.ts","../../src/versions/default_versions.ts","../../src/versions/versions.ts","../../src/utils/env/ubuntu_version.ts","../../node_modules/ubuntu-version/index.js","../../node_modules/mkdirp/dist/mjs/index.js","../../node_modules/mkdirp/src/index.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-manual.js","../../node_modules/mkdirp/src/mkdirp-manual.ts","../../node_modules/mkdirp/dist/mjs/opts-arg.js","../../node_modules/mkdirp/src/opts-arg.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-native.js","../../node_modules/mkdirp/src/mkdirp-native.ts","../../node_modules/mkdirp/dist/mjs/find-made.js","../../node_modules/mkdirp/src/find-made.ts","../../node_modules/mkdirp/dist/mjs/path-arg.js","../../node_modules/mkdirp/src/path-arg.ts","../../node_modules/mkdirp/dist/mjs/use-native.js","../../node_modules/mkdirp/src/use-native.ts","../../src/cppcheck/cppcheck.ts","../../src/doxygen/doxygen.ts","../../src/graphviz/graphviz.ts","../../src/utils/env/macos_version.ts","../../node_modules/macos-release/index.js","../../src/utils/setup/setupDmg.ts","../../node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../node_modules/@shockpkg/hdi-mac/src/mounter.ts","../../node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../node_modules/@shockpkg/plist-dom/src/plist.ts","../../node_modules/@shockpkg/plist-dom/esm/options.mjs","../../node_modules/@shockpkg/plist-dom/src/options.ts","../../node_modules/@shockpkg/plist-dom/esm/util.mjs","../../node_modules/@shockpkg/plist-dom/src/util.ts","../../node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/@shockpkg/plist-dom/esm/value/dict.mjs","../../node_modules/@shockpkg/plist-dom/src/value/dict.ts","../../node_modules/@shockpkg/plist-dom/esm/value.mjs","../../node_modules/@shockpkg/plist-dom/src/value.ts","../../node_modules/@shockpkg/plist-dom/esm/value/array.mjs","../../node_modules/@shockpkg/plist-dom/src/value/array.ts","../../node_modules/@shockpkg/plist-dom/esm/value/boolean.mjs","../../node_modules/@shockpkg/plist-dom/src/value/boolean.ts","../../node_modules/@shockpkg/plist-dom/esm/value/data.mjs","../../node_modules/@shockpkg/plist-dom/src/value/data.ts","../../node_modules/@shockpkg/plist-dom/esm/value/integer.mjs","../../node_modules/@shockpkg/plist-dom/src/value/integer.ts","../../node_modules/@shockpkg/plist-dom/esm/value/real.mjs","../../node_modules/@shockpkg/plist-dom/src/value/real.ts","../../node_modules/@shockpkg/plist-dom/esm/value/string.mjs","../../node_modules/@shockpkg/plist-dom/src/value/string.ts","../../src/gcc/gcc.ts","../../src/macos-sdk/macos-sdk.ts","../../src/gcovr/gcovr.ts","../../src/kcov/kcov.ts","../../src/ninja/ninja.ts","../../src/llvm/llvm.ts","../../src/llvm/llvm_installer.ts","../../src/installTool.ts","../../src/vcvarsall/vcvarsall.ts","../../node_modules/msvc-dev-cmd/lib.js","../../node_modules/p-timeout/index.js","../../src/llvm/llvm_url.ts","../../src/make/make.ts","../../src/meson/meson.ts","../../src/msvc/msvc.ts","../../src/nala/nala.ts","../../src/opencppcoverage/opencppcoverage.ts","../../src/powershell/powershell.ts","../../src/sccache/sccache.ts","../../src/task/task.ts","../../src/vcpkg/vcpkg.ts","../../src/compilers.ts"],"sourcesContent":["#!/usr/bin/env node\nvar $fnyYE$os = require(\"os\");\nvar $fnyYE$path = require(\"path\");\nvar $fnyYE$fs = require(\"fs\");\nvar $fnyYE$crypto = require(\"crypto\");\nvar $fnyYE$http = require(\"http\");\nvar $fnyYE$https = require(\"https\");\nrequire(\"net\");\nvar $fnyYE$tls = require(\"tls\");\nvar $fnyYE$events = require(\"events\");\nvar $fnyYE$assert = require(\"assert\");\nvar $fnyYE$util = require(\"util\");\nvar $fnyYE$nodefs = require(\"node:fs\");\nvar $fnyYE$child_process = require(\"child_process\");\nvar $fnyYE$string_decoder = require(\"string_decoder\");\nvar $fnyYE$timers = require(\"timers\");\nvar $fnyYE$nodebuffer = require(\"node:buffer\");\nvar $fnyYE$nodepath = require(\"node:path\");\nvar $fnyYE$nodechild_process = require(\"node:child_process\");\nvar $fnyYE$nodeprocess = require(\"node:process\");\nvar $fnyYE$nodeurl = require(\"node:url\");\nvar $fnyYE$nodeos = require(\"node:os\");\nvar $fnyYE$buffer = require(\"buffer\");\nvar $fnyYE$stream = require(\"stream\");\nvar $fnyYE$nodeutil = require(\"node:util\");\nvar $fnyYE$process = require(\"process\");\nvar $fnyYE$url = require(\"url\");\nvar $fnyYE$console = require(\"console\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire810d\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire810d\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"l5aZl\", function(module, exports) {\n\"use strict\";\n\nvar $48im1 = parcelRequire(\"48im1\");\nconst $f59296ad9c7b5e96$var$env = process.env;\n// Used for testing only\nObject.defineProperty(module.exports, \"_vendors\", {\n value: $48im1.map(function(v) {\n return v.constant;\n })\n});\nmodule.exports.name = null;\nmodule.exports.isPR = null;\n$48im1.forEach(function(vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [\n vendor.env\n ];\n const isCI = envs.every(function(obj) {\n return $f59296ad9c7b5e96$var$checkEnv(obj);\n });\n module.exports[vendor.constant] = isCI;\n if (!isCI) return;\n module.exports.name = vendor.name;\n switch(typeof vendor.pr){\n case \"string\":\n // \"pr\": \"CIRRUS_PR\"\n module.exports.isPR = !!$f59296ad9c7b5e96$var$env[vendor.pr];\n break;\n case \"object\":\n if (\"env\" in vendor.pr) // \"pr\": { \"env\": \"BUILDKITE_PULL_REQUEST\", \"ne\": \"false\" }\n module.exports.isPR = vendor.pr.env in $f59296ad9c7b5e96$var$env && $f59296ad9c7b5e96$var$env[vendor.pr.env] !== vendor.pr.ne;\n else if (\"any\" in vendor.pr) // \"pr\": { \"any\": [\"ghprbPullId\", \"CHANGE_ID\"] }\n module.exports.isPR = vendor.pr.any.some(function(key) {\n return !!$f59296ad9c7b5e96$var$env[key];\n });\n else // \"pr\": { \"DRONE_BUILD_EVENT\": \"pull_request\" }\n module.exports.isPR = $f59296ad9c7b5e96$var$checkEnv(vendor.pr);\n break;\n default:\n // PR detection not supported for this vendor\n module.exports.isPR = null;\n }\n});\nmodule.exports.isCI = !!($f59296ad9c7b5e96$var$env.CI !== \"false\" && // Bypass all checks if CI env is explicitly set to 'false'\n($f59296ad9c7b5e96$var$env.BUILD_ID || // Jenkins, Cloudbees\n$f59296ad9c7b5e96$var$env.BUILD_NUMBER || // Jenkins, TeamCity\n$f59296ad9c7b5e96$var$env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari\n$f59296ad9c7b5e96$var$env.CI_APP_ID || // Appflow\n$f59296ad9c7b5e96$var$env.CI_BUILD_ID || // Appflow\n$f59296ad9c7b5e96$var$env.CI_BUILD_NUMBER || // Appflow\n$f59296ad9c7b5e96$var$env.CI_NAME || // Codeship and others\n$f59296ad9c7b5e96$var$env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n$f59296ad9c7b5e96$var$env.RUN_ID || // TaskCluster, dsari\nmodule.exports.name || false));\nfunction $f59296ad9c7b5e96$var$checkEnv(obj) {\n // \"env\": \"CIRRUS\"\n if (typeof obj === \"string\") return !!$f59296ad9c7b5e96$var$env[obj];\n // \"env\": { \"env\": \"NODE\", \"includes\": \"/app/.heroku/node/bin/node\" }\n if (\"env\" in obj) // Currently there are no other types, uncomment when there are\n // if ('includes' in obj) {\n return $f59296ad9c7b5e96$var$env[obj.env] && $f59296ad9c7b5e96$var$env[obj.env].includes(obj.includes);\n if (\"any\" in obj) return obj.any.some(function(k) {\n return !!$f59296ad9c7b5e96$var$env[k];\n });\n return Object.keys(obj).every(function(k) {\n return $f59296ad9c7b5e96$var$env[k] === obj[k];\n });\n}\n\n});\nparcelRegister(\"48im1\", function(module, exports) {\nmodule.exports = JSON.parse('[{\"name\":\"Agola CI\",\"constant\":\"AGOLA\",\"env\":\"AGOLA_GIT_REF\",\"pr\":\"AGOLA_PULL_REQUEST_ID\"},{\"name\":\"Appcircle\",\"constant\":\"APPCIRCLE\",\"env\":\"AC_APPCIRCLE\"},{\"name\":\"AppVeyor\",\"constant\":\"APPVEYOR\",\"env\":\"APPVEYOR\",\"pr\":\"APPVEYOR_PULL_REQUEST_NUMBER\"},{\"name\":\"AWS CodeBuild\",\"constant\":\"CODEBUILD\",\"env\":\"CODEBUILD_BUILD_ARN\"},{\"name\":\"Azure Pipelines\",\"constant\":\"AZURE_PIPELINES\",\"env\":\"TF_BUILD\",\"pr\":{\"BUILD_REASON\":\"PullRequest\"}},{\"name\":\"Bamboo\",\"constant\":\"BAMBOO\",\"env\":\"bamboo_planKey\"},{\"name\":\"Bitbucket Pipelines\",\"constant\":\"BITBUCKET\",\"env\":\"BITBUCKET_COMMIT\",\"pr\":\"BITBUCKET_PR_ID\"},{\"name\":\"Bitrise\",\"constant\":\"BITRISE\",\"env\":\"BITRISE_IO\",\"pr\":\"BITRISE_PULL_REQUEST\"},{\"name\":\"Buddy\",\"constant\":\"BUDDY\",\"env\":\"BUDDY_WORKSPACE_ID\",\"pr\":\"BUDDY_EXECUTION_PULL_REQUEST_ID\"},{\"name\":\"Buildkite\",\"constant\":\"BUILDKITE\",\"env\":\"BUILDKITE\",\"pr\":{\"env\":\"BUILDKITE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"CircleCI\",\"constant\":\"CIRCLE\",\"env\":\"CIRCLECI\",\"pr\":\"CIRCLE_PULL_REQUEST\"},{\"name\":\"Cirrus CI\",\"constant\":\"CIRRUS\",\"env\":\"CIRRUS_CI\",\"pr\":\"CIRRUS_PR\"},{\"name\":\"Codefresh\",\"constant\":\"CODEFRESH\",\"env\":\"CF_BUILD_ID\",\"pr\":{\"any\":[\"CF_PULL_REQUEST_NUMBER\",\"CF_PULL_REQUEST_ID\"]}},{\"name\":\"Codemagic\",\"constant\":\"CODEMAGIC\",\"env\":\"CM_BUILD_ID\",\"pr\":\"CM_PULL_REQUEST\"},{\"name\":\"Codeship\",\"constant\":\"CODESHIP\",\"env\":{\"CI_NAME\":\"codeship\"}},{\"name\":\"Drone\",\"constant\":\"DRONE\",\"env\":\"DRONE\",\"pr\":{\"DRONE_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"dsari\",\"constant\":\"DSARI\",\"env\":\"DSARI\"},{\"name\":\"Earthly\",\"constant\":\"EARTHLY\",\"env\":\"EARTHLY_CI\"},{\"name\":\"Expo Application Services\",\"constant\":\"EAS\",\"env\":\"EAS_BUILD\"},{\"name\":\"Gerrit\",\"constant\":\"GERRIT\",\"env\":\"GERRIT_PROJECT\"},{\"name\":\"Gitea Actions\",\"constant\":\"GITEA_ACTIONS\",\"env\":\"GITEA_ACTIONS\"},{\"name\":\"GitHub Actions\",\"constant\":\"GITHUB_ACTIONS\",\"env\":\"GITHUB_ACTIONS\",\"pr\":{\"GITHUB_EVENT_NAME\":\"pull_request\"}},{\"name\":\"GitLab CI\",\"constant\":\"GITLAB\",\"env\":\"GITLAB_CI\",\"pr\":\"CI_MERGE_REQUEST_ID\"},{\"name\":\"GoCD\",\"constant\":\"GOCD\",\"env\":\"GO_PIPELINE_LABEL\"},{\"name\":\"Google Cloud Build\",\"constant\":\"GOOGLE_CLOUD_BUILD\",\"env\":\"BUILDER_OUTPUT\"},{\"name\":\"Harness CI\",\"constant\":\"HARNESS\",\"env\":\"HARNESS_BUILD_ID\"},{\"name\":\"Heroku\",\"constant\":\"HEROKU\",\"env\":{\"env\":\"NODE\",\"includes\":\"/app/.heroku/node/bin/node\"}},{\"name\":\"Hudson\",\"constant\":\"HUDSON\",\"env\":\"HUDSON_URL\"},{\"name\":\"Jenkins\",\"constant\":\"JENKINS\",\"env\":[\"JENKINS_URL\",\"BUILD_ID\"],\"pr\":{\"any\":[\"ghprbPullId\",\"CHANGE_ID\"]}},{\"name\":\"LayerCI\",\"constant\":\"LAYERCI\",\"env\":\"LAYERCI\",\"pr\":\"LAYERCI_PULL_REQUEST\"},{\"name\":\"Magnum CI\",\"constant\":\"MAGNUM\",\"env\":\"MAGNUM\"},{\"name\":\"Netlify CI\",\"constant\":\"NETLIFY\",\"env\":\"NETLIFY\",\"pr\":{\"env\":\"PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Nevercode\",\"constant\":\"NEVERCODE\",\"env\":\"NEVERCODE\",\"pr\":{\"env\":\"NEVERCODE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Prow\",\"constant\":\"PROW\",\"env\":\"PROW_JOB_ID\"},{\"name\":\"ReleaseHub\",\"constant\":\"RELEASEHUB\",\"env\":\"RELEASE_BUILD_ID\"},{\"name\":\"Render\",\"constant\":\"RENDER\",\"env\":\"RENDER\",\"pr\":{\"IS_PULL_REQUEST\":\"true\"}},{\"name\":\"Sail CI\",\"constant\":\"SAIL\",\"env\":\"SAILCI\",\"pr\":\"SAIL_PULL_REQUEST_NUMBER\"},{\"name\":\"Screwdriver\",\"constant\":\"SCREWDRIVER\",\"env\":\"SCREWDRIVER\",\"pr\":{\"env\":\"SD_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Semaphore\",\"constant\":\"SEMAPHORE\",\"env\":\"SEMAPHORE\",\"pr\":\"PULL_REQUEST_NUMBER\"},{\"name\":\"Sourcehut\",\"constant\":\"SOURCEHUT\",\"env\":{\"CI_NAME\":\"sourcehut\"}},{\"name\":\"Strider CD\",\"constant\":\"STRIDER\",\"env\":\"STRIDER\"},{\"name\":\"TaskCluster\",\"constant\":\"TASKCLUSTER\",\"env\":[\"TASK_ID\",\"RUN_ID\"]},{\"name\":\"TeamCity\",\"constant\":\"TEAMCITY\",\"env\":\"TEAMCITY_VERSION\"},{\"name\":\"Travis CI\",\"constant\":\"TRAVIS\",\"env\":\"TRAVIS\",\"pr\":{\"env\":\"TRAVIS_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Vela\",\"constant\":\"VELA\",\"env\":\"VELA\",\"pr\":{\"VELA_PULL_REQUEST\":\"1\"}},{\"name\":\"Vercel\",\"constant\":\"VERCEL\",\"env\":{\"any\":[\"NOW_BUILDER\",\"VERCEL\"]},\"pr\":\"VERCEL_GIT_PULL_REQUEST_ID\"},{\"name\":\"Visual Studio App Center\",\"constant\":\"APPCENTER\",\"env\":\"APPCENTER_BUILD_ID\"},{\"name\":\"Woodpecker\",\"constant\":\"WOODPECKER\",\"env\":{\"CI\":\"woodpecker\"},\"pr\":{\"CI_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"Xcode Cloud\",\"constant\":\"XCODE_CLOUD\",\"env\":\"CI_XCODE_PROJECT\",\"pr\":\"CI_PULL_REQUEST_NUMBER\"},{\"name\":\"Xcode Server\",\"constant\":\"XCODE_SERVER\",\"env\":\"XCS\"}]');\n\n});\n\n\nparcelRegister(\"g0Mwp\", function(module, exports) {\n\n$parcel$export(module.exports, \"error\", () => $074336114a247abe$export$a3bc9b8ed74fc);\n$parcel$export(module.exports, \"success\", () => $074336114a247abe$export$fe7c49d056ea1d88);\n$parcel$export(module.exports, \"warning\", () => $074336114a247abe$export$491112666e282270);\n$parcel$export(module.exports, \"notice\", () => $074336114a247abe$export$b31f6ae88848cf15);\n$parcel$export(module.exports, \"info\", () => $074336114a247abe$export$a80b3bd66acc52ff);\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\nvar $l5aZl = parcelRequire(\"l5aZl\");\nfunction $074336114a247abe$export$a3bc9b8ed74fc(err) {\n return (0, $l5aZl.GITHUB_ACTIONS) ? $lUL8q.error(err) : console.log(`\\x1b[31m${err}\\x1b[0m`);\n}\nfunction $074336114a247abe$export$fe7c49d056ea1d88(msg) {\n return console.log(`\\x1b[32m${msg}\\x1b[0m`);\n}\nfunction $074336114a247abe$export$491112666e282270(msg) {\n return (0, $l5aZl.GITHUB_ACTIONS) ? $lUL8q.warning(msg) : console.log(`\\x1b[33m${msg}\\x1b[0m`);\n}\nfunction $074336114a247abe$export$b31f6ae88848cf15(msg) {\n return (0, $l5aZl.GITHUB_ACTIONS) ? $lUL8q.notice(msg) : console.log(`\\x1b[94m${msg}\\x1b[0m`);\n}\nfunction $074336114a247abe$export$a80b3bd66acc52ff(msg) {\n return (0, $l5aZl.GITHUB_ACTIONS) ? $lUL8q.info(msg) : console.log(msg);\n}\n\n});\nparcelRegister(\"lUL8q\", function(module, exports) {\n\"use strict\";\nvar $ff4363edb75397e4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $ff4363edb75397e4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $ff4363edb75397e4$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $ff4363edb75397e4$var$__createBinding(result, mod, k);\n }\n $ff4363edb75397e4$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $ff4363edb75397e4$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getIDToken = module.exports.getState = module.exports.saveState = module.exports.group = module.exports.endGroup = module.exports.startGroup = module.exports.info = module.exports.notice = module.exports.warning = module.exports.error = module.exports.debug = module.exports.isDebug = module.exports.setFailed = module.exports.setCommandEcho = module.exports.setOutput = module.exports.getBooleanInput = module.exports.getMultilineInput = module.exports.getInput = module.exports.addPath = module.exports.setSecret = module.exports.exportVariable = module.exports.ExitCode = void 0;\n\nvar $87j2H = parcelRequire(\"87j2H\");\n\nvar $7Dlql = parcelRequire(\"7Dlql\");\n\nvar $gYkCt = parcelRequire(\"gYkCt\");\n\nconst $ff4363edb75397e4$var$os = $ff4363edb75397e4$var$__importStar($fnyYE$os);\n\nconst $ff4363edb75397e4$var$path = $ff4363edb75397e4$var$__importStar($fnyYE$path);\n\nvar $5oMT9 = parcelRequire(\"5oMT9\");\n/**\n * The code to exit an action\n */ var $ff4363edb75397e4$var$ExitCode;\n(function(ExitCode) {\n /**\n * A code indicating that the action was successful\n */ ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */ ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})($ff4363edb75397e4$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $ff4363edb75397e4$var$exportVariable(name, val) {\n const convertedVal = $gYkCt.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env[\"GITHUB_ENV\"] || \"\";\n if (filePath) return $7Dlql.issueFileCommand(\"ENV\", $7Dlql.prepareKeyValueMessage(name, val));\n $87j2H.issueCommand(\"set-env\", {\n name: name\n }, convertedVal);\n}\nmodule.exports.exportVariable = $ff4363edb75397e4$var$exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */ function $ff4363edb75397e4$var$setSecret(secret) {\n $87j2H.issueCommand(\"add-mask\", {}, secret);\n}\nmodule.exports.setSecret = $ff4363edb75397e4$var$setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */ function $ff4363edb75397e4$var$addPath(inputPath) {\n const filePath = process.env[\"GITHUB_PATH\"] || \"\";\n if (filePath) $7Dlql.issueFileCommand(\"PATH\", inputPath);\n else $87j2H.issueCommand(\"add-path\", {}, inputPath);\n process.env[\"PATH\"] = `${inputPath}${$ff4363edb75397e4$var$path.delimiter}${process.env[\"PATH\"]}`;\n}\nmodule.exports.addPath = $ff4363edb75397e4$var$addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */ function $ff4363edb75397e4$var$getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, \"_\").toUpperCase()}`] || \"\";\n if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`);\n if (options && options.trimWhitespace === false) return val;\n return val.trim();\n}\nmodule.exports.getInput = $ff4363edb75397e4$var$getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */ function $ff4363edb75397e4$var$getMultilineInput(name, options) {\n const inputs = $ff4363edb75397e4$var$getInput(name, options).split(\"\\n\").filter((x)=>x !== \"\");\n if (options && options.trimWhitespace === false) return inputs;\n return inputs.map((input)=>input.trim());\n}\nmodule.exports.getMultilineInput = $ff4363edb75397e4$var$getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */ function $ff4363edb75397e4$var$getBooleanInput(name, options) {\n const trueValue = [\n \"true\",\n \"True\",\n \"TRUE\"\n ];\n const falseValue = [\n \"false\",\n \"False\",\n \"FALSE\"\n ];\n const val = $ff4363edb75397e4$var$getInput(name, options);\n if (trueValue.includes(val)) return true;\n if (falseValue.includes(val)) return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` + `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nmodule.exports.getBooleanInput = $ff4363edb75397e4$var$getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $ff4363edb75397e4$var$setOutput(name, value) {\n const filePath = process.env[\"GITHUB_OUTPUT\"] || \"\";\n if (filePath) return $7Dlql.issueFileCommand(\"OUTPUT\", $7Dlql.prepareKeyValueMessage(name, value));\n process.stdout.write($ff4363edb75397e4$var$os.EOL);\n $87j2H.issueCommand(\"set-output\", {\n name: name\n }, $gYkCt.toCommandValue(value));\n}\nmodule.exports.setOutput = $ff4363edb75397e4$var$setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */ function $ff4363edb75397e4$var$setCommandEcho(enabled) {\n $87j2H.issue(\"echo\", enabled ? \"on\" : \"off\");\n}\nmodule.exports.setCommandEcho = $ff4363edb75397e4$var$setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */ function $ff4363edb75397e4$var$setFailed(message) {\n process.exitCode = $ff4363edb75397e4$var$ExitCode.Failure;\n $ff4363edb75397e4$var$error(message);\n}\nmodule.exports.setFailed = $ff4363edb75397e4$var$setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */ function $ff4363edb75397e4$var$isDebug() {\n return process.env[\"RUNNER_DEBUG\"] === \"1\";\n}\nmodule.exports.isDebug = $ff4363edb75397e4$var$isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */ function $ff4363edb75397e4$var$debug(message) {\n $87j2H.issueCommand(\"debug\", {}, message);\n}\nmodule.exports.debug = $ff4363edb75397e4$var$debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $ff4363edb75397e4$var$error(message, properties = {}) {\n $87j2H.issueCommand(\"error\", $gYkCt.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.error = $ff4363edb75397e4$var$error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $ff4363edb75397e4$var$warning(message, properties = {}) {\n $87j2H.issueCommand(\"warning\", $gYkCt.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.warning = $ff4363edb75397e4$var$warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $ff4363edb75397e4$var$notice(message, properties = {}) {\n $87j2H.issueCommand(\"notice\", $gYkCt.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.notice = $ff4363edb75397e4$var$notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */ function $ff4363edb75397e4$var$info(message) {\n process.stdout.write(message + $ff4363edb75397e4$var$os.EOL);\n}\nmodule.exports.info = $ff4363edb75397e4$var$info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */ function $ff4363edb75397e4$var$startGroup(name) {\n $87j2H.issue(\"group\", name);\n}\nmodule.exports.startGroup = $ff4363edb75397e4$var$startGroup;\n/**\n * End an output group.\n */ function $ff4363edb75397e4$var$endGroup() {\n $87j2H.issue(\"endgroup\");\n}\nmodule.exports.endGroup = $ff4363edb75397e4$var$endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */ function $ff4363edb75397e4$var$group(name, fn) {\n return $ff4363edb75397e4$var$__awaiter(this, void 0, void 0, function*() {\n $ff4363edb75397e4$var$startGroup(name);\n let result;\n try {\n result = yield fn();\n } finally{\n $ff4363edb75397e4$var$endGroup();\n }\n return result;\n });\n}\nmodule.exports.group = $ff4363edb75397e4$var$group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $ff4363edb75397e4$var$saveState(name, value) {\n const filePath = process.env[\"GITHUB_STATE\"] || \"\";\n if (filePath) return $7Dlql.issueFileCommand(\"STATE\", $7Dlql.prepareKeyValueMessage(name, value));\n $87j2H.issueCommand(\"save-state\", {\n name: name\n }, $gYkCt.toCommandValue(value));\n}\nmodule.exports.saveState = $ff4363edb75397e4$var$saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */ function $ff4363edb75397e4$var$getState(name) {\n return process.env[`STATE_${name}`] || \"\";\n}\nmodule.exports.getState = $ff4363edb75397e4$var$getState;\nfunction $ff4363edb75397e4$var$getIDToken(aud) {\n return $ff4363edb75397e4$var$__awaiter(this, void 0, void 0, function*() {\n return yield $5oMT9.OidcClient.getIDToken(aud);\n });\n}\nmodule.exports.getIDToken = $ff4363edb75397e4$var$getIDToken;\n\nvar $jaLnB = parcelRequire(\"jaLnB\");\nObject.defineProperty(module.exports, \"summary\", {\n enumerable: true,\n get: function() {\n return $jaLnB.summary;\n }\n});\n\nvar $jaLnB = parcelRequire(\"jaLnB\");\nObject.defineProperty(module.exports, \"markdownSummary\", {\n enumerable: true,\n get: function() {\n return $jaLnB.markdownSummary;\n }\n});\n\nvar $eCzrY = parcelRequire(\"eCzrY\");\nObject.defineProperty(module.exports, \"toPosixPath\", {\n enumerable: true,\n get: function() {\n return $eCzrY.toPosixPath;\n }\n});\nObject.defineProperty(module.exports, \"toWin32Path\", {\n enumerable: true,\n get: function() {\n return $eCzrY.toWin32Path;\n }\n});\nObject.defineProperty(module.exports, \"toPlatformPath\", {\n enumerable: true,\n get: function() {\n return $eCzrY.toPlatformPath;\n }\n});\n\n});\nparcelRegister(\"87j2H\", function(module, exports) {\n\"use strict\";\nvar $5e8dbfa4d1e1deba$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $5e8dbfa4d1e1deba$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $5e8dbfa4d1e1deba$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $5e8dbfa4d1e1deba$var$__createBinding(result, mod, k);\n }\n $5e8dbfa4d1e1deba$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.issue = module.exports.issueCommand = void 0;\n\nconst $5e8dbfa4d1e1deba$var$os = $5e8dbfa4d1e1deba$var$__importStar($fnyYE$os);\n\nvar $gYkCt = parcelRequire(\"gYkCt\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */ function $5e8dbfa4d1e1deba$var$issueCommand(command, properties, message) {\n const cmd = new $5e8dbfa4d1e1deba$var$Command(command, properties, message);\n process.stdout.write(cmd.toString() + $5e8dbfa4d1e1deba$var$os.EOL);\n}\nmodule.exports.issueCommand = $5e8dbfa4d1e1deba$var$issueCommand;\nfunction $5e8dbfa4d1e1deba$var$issue(name, message = \"\") {\n $5e8dbfa4d1e1deba$var$issueCommand(name, {}, message);\n}\nmodule.exports.issue = $5e8dbfa4d1e1deba$var$issue;\nconst $5e8dbfa4d1e1deba$var$CMD_STRING = \"::\";\nclass $5e8dbfa4d1e1deba$var$Command {\n constructor(command, properties, message){\n if (!command) command = \"missing.command\";\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = $5e8dbfa4d1e1deba$var$CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += \" \";\n let first = true;\n for(const key in this.properties)if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) first = false;\n else cmdStr += \",\";\n cmdStr += `${key}=${$5e8dbfa4d1e1deba$var$escapeProperty(val)}`;\n }\n }\n }\n cmdStr += `${$5e8dbfa4d1e1deba$var$CMD_STRING}${$5e8dbfa4d1e1deba$var$escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction $5e8dbfa4d1e1deba$var$escapeData(s) {\n return $gYkCt.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\");\n}\nfunction $5e8dbfa4d1e1deba$var$escapeProperty(s) {\n return $gYkCt.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\").replace(/:/g, \"%3A\").replace(/,/g, \"%2C\");\n}\n\n});\nparcelRegister(\"gYkCt\", function(module, exports) {\n\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toCommandProperties = module.exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */ function $c5b23e90a68f2b2b$var$toCommandValue(input) {\n if (input === null || input === undefined) return \"\";\n else if (typeof input === \"string\" || input instanceof String) return input;\n return JSON.stringify(input);\n}\nmodule.exports.toCommandValue = $c5b23e90a68f2b2b$var$toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */ function $c5b23e90a68f2b2b$var$toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) return {};\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nmodule.exports.toCommandProperties = $c5b23e90a68f2b2b$var$toCommandProperties;\n\n});\n\n\nparcelRegister(\"7Dlql\", function(module, exports) {\n\"use strict\";\n// For internal use, subject to change.\nvar $58eccb47c7657cb4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $58eccb47c7657cb4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $58eccb47c7657cb4$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $58eccb47c7657cb4$var$__createBinding(result, mod, k);\n }\n $58eccb47c7657cb4$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.prepareKeyValueMessage = module.exports.issueFileCommand = void 0;\n\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ const $58eccb47c7657cb4$var$fs = $58eccb47c7657cb4$var$__importStar($fnyYE$fs);\n\nconst $58eccb47c7657cb4$var$os = $58eccb47c7657cb4$var$__importStar($fnyYE$os);\n\nvar $hpOkk = parcelRequire(\"hpOkk\");\n\nvar $gYkCt = parcelRequire(\"gYkCt\");\nfunction $58eccb47c7657cb4$var$issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`);\n if (!$58eccb47c7657cb4$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`);\n $58eccb47c7657cb4$var$fs.appendFileSync(filePath, `${$gYkCt.toCommandValue(message)}${$58eccb47c7657cb4$var$os.EOL}`, {\n encoding: \"utf8\"\n });\n}\nmodule.exports.issueFileCommand = $58eccb47c7657cb4$var$issueFileCommand;\nfunction $58eccb47c7657cb4$var$prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${$hpOkk.default()}`;\n const convertedValue = $gYkCt.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n return `${key}<<${delimiter}${$58eccb47c7657cb4$var$os.EOL}${convertedValue}${$58eccb47c7657cb4$var$os.EOL}${delimiter}`;\n}\nmodule.exports.prepareKeyValueMessage = $58eccb47c7657cb4$var$prepareKeyValueMessage;\n\n});\nparcelRegister(\"hpOkk\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $cadbcf52bebac8dd$export$2e2bcd8739ae039);\n\nvar $g7JSE = parcelRequire(\"g7JSE\");\n\nvar $jSP38 = parcelRequire(\"jSP38\");\nfunction $cadbcf52bebac8dd$var$v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || (0, $g7JSE.default))(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for(let i = 0; i < 16; ++i)buf[offset + i] = rnds[i];\n return buf;\n }\n return (0, $jSP38.default)(rnds);\n}\nvar $cadbcf52bebac8dd$export$2e2bcd8739ae039 = $cadbcf52bebac8dd$var$v4;\n\n});\nparcelRegister(\"g7JSE\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $bbd0e3ad974fef75$export$2e2bcd8739ae039);\n\nconst $bbd0e3ad974fef75$var$rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\nlet $bbd0e3ad974fef75$var$poolPtr = $bbd0e3ad974fef75$var$rnds8Pool.length;\nfunction $bbd0e3ad974fef75$export$2e2bcd8739ae039() {\n if ($bbd0e3ad974fef75$var$poolPtr > $bbd0e3ad974fef75$var$rnds8Pool.length - 16) {\n (0, ($parcel$interopDefault($fnyYE$crypto))).randomFillSync($bbd0e3ad974fef75$var$rnds8Pool);\n $bbd0e3ad974fef75$var$poolPtr = 0;\n }\n return $bbd0e3ad974fef75$var$rnds8Pool.slice($bbd0e3ad974fef75$var$poolPtr, $bbd0e3ad974fef75$var$poolPtr += 16);\n}\n\n});\n\nparcelRegister(\"jSP38\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $e79aa8d3e7d7e8bc$export$2e2bcd8739ae039);\n\nvar $2OgOb = parcelRequire(\"2OgOb\");\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ const $e79aa8d3e7d7e8bc$var$byteToHex = [];\nfor(let i = 0; i < 256; ++i)$e79aa8d3e7d7e8bc$var$byteToHex.push((i + 0x100).toString(16).substr(1));\nfunction $e79aa8d3e7d7e8bc$var$stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = ($e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 0]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 1]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 2]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 3]] + \"-\" + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 4]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 5]] + \"-\" + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 6]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 7]] + \"-\" + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 8]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 9]] + \"-\" + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 10]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 11]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 12]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 13]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 14]] + $e79aa8d3e7d7e8bc$var$byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!(0, $2OgOb.default)(uuid)) throw TypeError(\"Stringified UUID is invalid\");\n return uuid;\n}\nvar $e79aa8d3e7d7e8bc$export$2e2bcd8739ae039 = $e79aa8d3e7d7e8bc$var$stringify;\n\n});\nparcelRegister(\"2OgOb\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $20bd4a0f1d30b575$export$2e2bcd8739ae039);\n\nvar $2UMly = parcelRequire(\"2UMly\");\nfunction $20bd4a0f1d30b575$var$validate(uuid) {\n return typeof uuid === \"string\" && (0, $2UMly.default).test(uuid);\n}\nvar $20bd4a0f1d30b575$export$2e2bcd8739ae039 = $20bd4a0f1d30b575$var$validate;\n\n});\nparcelRegister(\"2UMly\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $21f6505b2e8f1384$export$2e2bcd8739ae039);\nvar $21f6505b2e8f1384$export$2e2bcd8739ae039 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\n});\n\n\n\n\n\nparcelRegister(\"5oMT9\", function(module, exports) {\n\"use strict\";\nvar $3ee51de827d494c2$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.OidcClient = void 0;\n\nvar $l6zH0 = parcelRequire(\"l6zH0\");\n\nvar $5civ3 = parcelRequire(\"5civ3\");\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\nclass $3ee51de827d494c2$var$OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new $l6zH0.HttpClient(\"actions/oidc-client\", [\n new $5civ3.BearerCredentialHandler($3ee51de827d494c2$var$OidcClient.getRequestToken())\n ], requestOptions);\n }\n static getRequestToken() {\n const token = process.env[\"ACTIONS_ID_TOKEN_REQUEST_TOKEN\"];\n if (!token) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable\");\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env[\"ACTIONS_ID_TOKEN_REQUEST_URL\"];\n if (!runtimeUrl) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable\");\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return $3ee51de827d494c2$var$__awaiter(this, void 0, void 0, function*() {\n const httpclient = $3ee51de827d494c2$var$OidcClient.createHttpClient();\n const res = yield httpclient.getJson(id_token_url).catch((error)=>{\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) throw new Error(\"Response json body do not have ID Token field\");\n return id_token;\n });\n }\n static getIDToken(audience) {\n return $3ee51de827d494c2$var$__awaiter(this, void 0, void 0, function*() {\n try {\n // New ID Token is requested from action service\n let id_token_url = $3ee51de827d494c2$var$OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n $lUL8q.debug(`ID token url is ${id_token_url}`);\n const id_token = yield $3ee51de827d494c2$var$OidcClient.getCall(id_token_url);\n $lUL8q.setSecret(id_token);\n return id_token;\n } catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nmodule.exports.OidcClient = $3ee51de827d494c2$var$OidcClient;\n\n});\nparcelRegister(\"l6zH0\", function(module, exports) {\n\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */ var $f5d5d851e959b23a$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $f5d5d851e959b23a$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $f5d5d851e959b23a$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $f5d5d851e959b23a$var$__createBinding(result, mod, k);\n }\n $f5d5d851e959b23a$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $f5d5d851e959b23a$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.HttpClient = module.exports.isHttps = module.exports.HttpClientResponse = module.exports.HttpClientError = module.exports.getProxyUrl = module.exports.MediaTypes = module.exports.Headers = module.exports.HttpCodes = void 0;\n\nconst $f5d5d851e959b23a$var$http = $f5d5d851e959b23a$var$__importStar($fnyYE$http);\n\nconst $f5d5d851e959b23a$var$https = $f5d5d851e959b23a$var$__importStar($fnyYE$https);\n\nconst $f5d5d851e959b23a$var$pm = $f5d5d851e959b23a$var$__importStar((parcelRequire(\"40WgE\")));\n\nconst $f5d5d851e959b23a$var$tunnel = $f5d5d851e959b23a$var$__importStar((parcelRequire(\"3zxaw\")));\nvar $f5d5d851e959b23a$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($f5d5d851e959b23a$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $f5d5d851e959b23a$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($f5d5d851e959b23a$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $f5d5d851e959b23a$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($f5d5d851e959b23a$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $f5d5d851e959b23a$var$getProxyUrl(serverUrl) {\n const proxyUrl = $f5d5d851e959b23a$var$pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $f5d5d851e959b23a$var$getProxyUrl;\nconst $f5d5d851e959b23a$var$HttpRedirectCodes = [\n $f5d5d851e959b23a$var$HttpCodes.MovedPermanently,\n $f5d5d851e959b23a$var$HttpCodes.ResourceMoved,\n $f5d5d851e959b23a$var$HttpCodes.SeeOther,\n $f5d5d851e959b23a$var$HttpCodes.TemporaryRedirect,\n $f5d5d851e959b23a$var$HttpCodes.PermanentRedirect\n];\nconst $f5d5d851e959b23a$var$HttpResponseRetryCodes = [\n $f5d5d851e959b23a$var$HttpCodes.BadGateway,\n $f5d5d851e959b23a$var$HttpCodes.ServiceUnavailable,\n $f5d5d851e959b23a$var$HttpCodes.GatewayTimeout\n];\nconst $f5d5d851e959b23a$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $f5d5d851e959b23a$var$ExponentialBackoffCeiling = 10;\nconst $f5d5d851e959b23a$var$ExponentialBackoffTimeSlice = 5;\nclass $f5d5d851e959b23a$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $f5d5d851e959b23a$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $f5d5d851e959b23a$var$HttpClientError;\nclass $f5d5d851e959b23a$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>$f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n }));\n });\n }\n}\nmodule.exports.HttpClientResponse = $f5d5d851e959b23a$var$HttpClientResponse;\nfunction $f5d5d851e959b23a$var$isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $f5d5d851e959b23a$var$isHttps;\nclass $f5d5d851e959b23a$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ getJson(requestUrl, additionalHeaders = {}) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n additionalHeaders[$f5d5d851e959b23a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.Accept, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.Accept, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.ContentType, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.Accept, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.ContentType, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.Accept, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$f5d5d851e959b23a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $f5d5d851e959b23a$var$Headers.ContentType, $f5d5d851e959b23a$var$MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ request(verb, requestUrl, data, headers) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && $f5d5d851e959b23a$var$RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $f5d5d851e959b23a$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers)if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while(response.message.statusCode && $f5d5d851e959b23a$var$HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === \"https:\" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(const header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode || !$f5d5d851e959b23a$var$HttpResponseRetryCodes.includes(response.message.statusCode)) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>{\n function callbackForResult(err, res) {\n if (err) reject(err);\n else if (!res) // If `err` is not passed, then `res` must be passed.\n reject(new Error(\"Unknown error\"));\n else resolve(res);\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n if (typeof data === \"string\") {\n if (!info.options.headers) info.options.headers = {};\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg)=>{\n const res = new $f5d5d851e959b23a$var$HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $f5d5d851e959b23a$var$https : $f5d5d851e959b23a$var$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) for (const handler of this.handlers)handler.prepareRequest(info.options);\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, $f5d5d851e959b23a$var$lowercaseKeys(this.requestOptions.headers), $f5d5d851e959b23a$var$lowercaseKeys(headers || {}));\n return $f5d5d851e959b23a$var$lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = $f5d5d851e959b23a$var$lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = $f5d5d851e959b23a$var$pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (this.requestOptions) maxSockets = this.requestOptions.maxSockets || $f5d5d851e959b23a$var$http.globalAgent.maxSockets;\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }), {\n host: proxyUrl.hostname,\n port: proxyUrl.port\n })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $f5d5d851e959b23a$var$tunnel.httpsOverHttps : $f5d5d851e959b23a$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $f5d5d851e959b23a$var$tunnel.httpOverHttps : $f5d5d851e959b23a$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $f5d5d851e959b23a$var$https.Agent(options) : new $f5d5d851e959b23a$var$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $f5d5d851e959b23a$var$https.globalAgent : $f5d5d851e959b23a$var$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n retryNumber = Math.min($f5d5d851e959b23a$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $f5d5d851e959b23a$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return $f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>$f5d5d851e959b23a$var$__awaiter(this, void 0, void 0, function*() {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === $f5d5d851e959b23a$var$HttpCodes.NotFound) resolve(response);\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = `Failed request: (${statusCode})`;\n const err = new $f5d5d851e959b23a$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n }));\n });\n }\n}\nmodule.exports.HttpClient = $f5d5d851e959b23a$var$HttpClient;\nconst $f5d5d851e959b23a$var$lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n\n});\nparcelRegister(\"40WgE\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.checkBypass = module.exports.getProxyUrl = void 0;\nfunction $2ec45c3c2f4db54c$var$getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === \"https:\";\n if ($2ec45c3c2f4db54c$var$checkBypass(reqUrl)) return undefined;\n const proxyVar = (()=>{\n if (usingSsl) return process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else return process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n })();\n if (proxyVar) return new URL(proxyVar);\n else return undefined;\n}\nmodule.exports.getProxyUrl = $2ec45c3c2f4db54c$var$getProxyUrl;\nfunction $2ec45c3c2f4db54c$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n const reqHost = reqUrl.hostname;\n if ($2ec45c3c2f4db54c$var$isLoopbackAddress(reqHost)) return true;\n const noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n const upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperNoProxyItem === \"*\" || upperReqHosts.some((x)=>x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(\".\") && x.endsWith(`${upperNoProxyItem}`))) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $2ec45c3c2f4db54c$var$checkBypass;\nfunction $2ec45c3c2f4db54c$var$isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return hostLower === \"localhost\" || hostLower.startsWith(\"127.\") || hostLower.startsWith(\"[::1]\") || hostLower.startsWith(\"[0:0:0:0:0:0:0:1]\");\n}\n\n});\n\nparcelRegister(\"3zxaw\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"zoNP8\"));\n\n});\nparcelRegister(\"zoNP8\", function(module, exports) {\n\n$parcel$export(module.exports, \"httpOverHttp\", () => $06a68247c3f420bb$export$25cbd437c61a3835, (v) => $06a68247c3f420bb$export$25cbd437c61a3835 = v);\n$parcel$export(module.exports, \"httpsOverHttp\", () => $06a68247c3f420bb$export$c06e3df7111bae43, (v) => $06a68247c3f420bb$export$c06e3df7111bae43 = v);\n$parcel$export(module.exports, \"httpOverHttps\", () => $06a68247c3f420bb$export$5d50e36ef656139f, (v) => $06a68247c3f420bb$export$5d50e36ef656139f = v);\n$parcel$export(module.exports, \"httpsOverHttps\", () => $06a68247c3f420bb$export$212d6605025321cc, (v) => $06a68247c3f420bb$export$212d6605025321cc = v);\n$parcel$export(module.exports, \"debug\", () => $06a68247c3f420bb$export$1c9f709888824e05, (v) => $06a68247c3f420bb$export$1c9f709888824e05 = v);\nvar $06a68247c3f420bb$export$25cbd437c61a3835;\nvar $06a68247c3f420bb$export$c06e3df7111bae43;\nvar $06a68247c3f420bb$export$5d50e36ef656139f;\nvar $06a68247c3f420bb$export$212d6605025321cc;\nvar $06a68247c3f420bb$export$1c9f709888824e05;\n\"use strict\";\n\n\n\n\n\n\n\n$06a68247c3f420bb$export$25cbd437c61a3835 = $06a68247c3f420bb$var$httpOverHttp;\n$06a68247c3f420bb$export$c06e3df7111bae43 = $06a68247c3f420bb$var$httpsOverHttp;\n$06a68247c3f420bb$export$5d50e36ef656139f = $06a68247c3f420bb$var$httpOverHttps;\n$06a68247c3f420bb$export$212d6605025321cc = $06a68247c3f420bb$var$httpsOverHttps;\nfunction $06a68247c3f420bb$var$httpOverHttp(options) {\n var agent = new $06a68247c3f420bb$var$TunnelingAgent(options);\n agent.request = $fnyYE$http.request;\n return agent;\n}\nfunction $06a68247c3f420bb$var$httpsOverHttp(options) {\n var agent = new $06a68247c3f420bb$var$TunnelingAgent(options);\n agent.request = $fnyYE$http.request;\n agent.createSocket = $06a68247c3f420bb$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $06a68247c3f420bb$var$httpOverHttps(options) {\n var agent = new $06a68247c3f420bb$var$TunnelingAgent(options);\n agent.request = $fnyYE$https.request;\n return agent;\n}\nfunction $06a68247c3f420bb$var$httpsOverHttps(options) {\n var agent = new $06a68247c3f420bb$var$TunnelingAgent(options);\n agent.request = $fnyYE$https.request;\n agent.createSocket = $06a68247c3f420bb$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $06a68247c3f420bb$var$TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || $fnyYE$http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n self.on(\"free\", function onFree(socket, host, port, localAddress) {\n var options = $06a68247c3f420bb$var$toOptions(host, port, localAddress);\n for(var i = 0, len = self.requests.length; i < len; ++i){\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\n$fnyYE$util.inherits($06a68247c3f420bb$var$TunnelingAgent, $fnyYE$events.EventEmitter);\n$06a68247c3f420bb$var$TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = $06a68247c3f420bb$var$mergeOptions({\n request: req\n }, self.options, $06a68247c3f420bb$var$toOptions(host, port, localAddress));\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on(\"free\", onFree);\n socket.on(\"close\", onCloseOrRemove);\n socket.on(\"agentRemove\", onCloseOrRemove);\n req.onSocket(socket);\n function onFree() {\n self.emit(\"free\", socket, options);\n }\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener(\"free\", onFree);\n socket.removeListener(\"close\", onCloseOrRemove);\n socket.removeListener(\"agentRemove\", onCloseOrRemove);\n }\n });\n};\n$06a68247c3f420bb$var$TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n var connectOptions = $06a68247c3f420bb$var$mergeOptions({}, self.proxyOptions, {\n method: \"CONNECT\",\n path: options.host + \":\" + options.port,\n agent: false,\n headers: {\n host: options.host + \":\" + options.port\n }\n });\n if (options.localAddress) connectOptions.localAddress = options.localAddress;\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers[\"Proxy-Authorization\"] = \"Basic \" + new Buffer(connectOptions.proxyAuth).toString(\"base64\");\n }\n $06a68247c3f420bb$var$debug(\"making CONNECT request\");\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once(\"response\", onResponse); // for v0.6\n connectReq.once(\"upgrade\", onUpgrade); // for v0.6\n connectReq.once(\"connect\", onConnect); // for v0.7 or later\n connectReq.once(\"error\", onError);\n connectReq.end();\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n if (res.statusCode !== 200) {\n $06a68247c3f420bb$var$debug(\"tunneling socket could not be established, statusCode=%d\", res.statusCode);\n socket.destroy();\n var error = new Error(\"tunneling socket could not be established, statusCode=\" + res.statusCode);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n $06a68247c3f420bb$var$debug(\"got illegal response body from proxy\");\n socket.destroy();\n var error = new Error(\"got illegal response body from proxy\");\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n $06a68247c3f420bb$var$debug(\"tunneling connection has established\");\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n function onError(cause) {\n connectReq.removeAllListeners();\n $06a68247c3f420bb$var$debug(\"tunneling socket could not be established, cause=%s\\n\", cause.message, cause.stack);\n var error = new Error(\"tunneling socket could not be established, cause=\" + cause.message);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n }\n};\n$06a68247c3f420bb$var$TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket);\n if (pos === -1) return;\n this.sockets.splice(pos, 1);\n var pending = this.requests.shift();\n if (pending) // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n};\nfunction $06a68247c3f420bb$var$createSecureSocket(options, cb) {\n var self = this;\n $06a68247c3f420bb$var$TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader(\"host\");\n var tlsOptions = $06a68247c3f420bb$var$mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, \"\") : options.host\n });\n // 0 is dummy port for v0.6\n var secureSocket = $fnyYE$tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\nfunction $06a68247c3f420bb$var$toOptions(host, port, localAddress) {\n if (typeof host === \"string\") return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n return host; // for v0.11 or later\n}\nfunction $06a68247c3f420bb$var$mergeOptions(target) {\n for(var i = 1, len = arguments.length; i < len; ++i){\n var overrides = arguments[i];\n if (typeof overrides === \"object\") {\n var keys = Object.keys(overrides);\n for(var j = 0, keyLen = keys.length; j < keyLen; ++j){\n var k = keys[j];\n if (overrides[k] !== undefined) target[k] = overrides[k];\n }\n }\n }\n return target;\n}\nvar $06a68247c3f420bb$var$debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) $06a68247c3f420bb$var$debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === \"string\") args[0] = \"TUNNEL: \" + args[0];\n else args.unshift(\"TUNNEL:\");\n console.error.apply(console, args);\n};\nelse $06a68247c3f420bb$var$debug = function() {};\n$06a68247c3f420bb$export$1c9f709888824e05 = $06a68247c3f420bb$var$debug; // for test\n\n});\n\n\n\nparcelRegister(\"5civ3\", function(module, exports) {\n\"use strict\";\nvar $3c8c6c681042cd68$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.PersonalAccessTokenCredentialHandler = module.exports.BearerCredentialHandler = module.exports.BasicCredentialHandler = void 0;\nclass $3c8c6c681042cd68$var$BasicCredentialHandler {\n constructor(username, password){\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $3c8c6c681042cd68$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BasicCredentialHandler = $3c8c6c681042cd68$var$BasicCredentialHandler;\nclass $3c8c6c681042cd68$var$BearerCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $3c8c6c681042cd68$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BearerCredentialHandler = $3c8c6c681042cd68$var$BearerCredentialHandler;\nclass $3c8c6c681042cd68$var$PersonalAccessTokenCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $3c8c6c681042cd68$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.PersonalAccessTokenCredentialHandler = $3c8c6c681042cd68$var$PersonalAccessTokenCredentialHandler;\n\n});\n\n\nparcelRegister(\"jaLnB\", function(module, exports) {\n\"use strict\";\nvar $df53b41ea025d161$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.summary = module.exports.markdownSummary = module.exports.SUMMARY_DOCS_URL = module.exports.SUMMARY_ENV_VAR = void 0;\n\n\nconst { access: $df53b41ea025d161$var$access, appendFile: $df53b41ea025d161$var$appendFile, writeFile: $df53b41ea025d161$var$writeFile } = $fnyYE$fs.promises;\nmodule.exports.SUMMARY_ENV_VAR = \"GITHUB_STEP_SUMMARY\";\nmodule.exports.SUMMARY_DOCS_URL = \"https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary\";\nclass $df53b41ea025d161$var$Summary {\n constructor(){\n this._buffer = \"\";\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */ filePath() {\n return $df53b41ea025d161$var$__awaiter(this, void 0, void 0, function*() {\n if (this._filePath) return this._filePath;\n const pathFromEnv = process.env[module.exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${module.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n try {\n yield $df53b41ea025d161$var$access(pathFromEnv, $fnyYE$fs.constants.R_OK | $fnyYE$fs.constants.W_OK);\n } catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */ wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}=\"${value}\"`).join(\"\");\n if (!content) return `<${tag}${htmlAttrs}>`;\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */ write(options) {\n return $df53b41ea025d161$var$__awaiter(this, void 0, void 0, function*() {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? $df53b41ea025d161$var$writeFile : $df53b41ea025d161$var$appendFile;\n yield writeFunc(filePath, this._buffer, {\n encoding: \"utf8\"\n });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */ clear() {\n return $df53b41ea025d161$var$__awaiter(this, void 0, void 0, function*() {\n return this.emptyBuffer().write({\n overwrite: true\n });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */ stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */ isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */ emptyBuffer() {\n this._buffer = \"\";\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */ addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */ addEOL() {\n return this.addRaw($fnyYE$os.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */ addCodeBlock(code, lang) {\n const attrs = Object.assign({}, lang && {\n lang: lang\n });\n const element = this.wrap(\"pre\", this.wrap(\"code\", code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */ addList(items, ordered = false) {\n const tag = ordered ? \"ol\" : \"ul\";\n const listItems = items.map((item)=>this.wrap(\"li\", item)).join(\"\");\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */ addTable(rows) {\n const tableBody = rows.map((row)=>{\n const cells = row.map((cell)=>{\n if (typeof cell === \"string\") return this.wrap(\"td\", cell);\n const { header: header, data: data, colspan: colspan, rowspan: rowspan } = cell;\n const tag = header ? \"th\" : \"td\";\n const attrs = Object.assign(Object.assign({}, colspan && {\n colspan: colspan\n }), rowspan && {\n rowspan: rowspan\n });\n return this.wrap(tag, data, attrs);\n }).join(\"\");\n return this.wrap(\"tr\", cells);\n }).join(\"\");\n const element = this.wrap(\"table\", tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */ addDetails(label, content) {\n const element = this.wrap(\"details\", this.wrap(\"summary\", label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */ addImage(src, alt, options) {\n const { width: width, height: height } = options || {};\n const attrs = Object.assign(Object.assign({}, width && {\n width: width\n }), height && {\n height: height\n });\n const element = this.wrap(\"img\", null, Object.assign({\n src: src,\n alt: alt\n }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */ addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\"\n ].includes(tag) ? tag : \"h1\";\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addSeparator() {\n const element = this.wrap(\"hr\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addBreak() {\n const element = this.wrap(\"br\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */ addQuote(text, cite) {\n const attrs = Object.assign({}, cite && {\n cite: cite\n });\n const element = this.wrap(\"blockquote\", text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */ addLink(text, href) {\n const element = this.wrap(\"a\", text, {\n href: href\n });\n return this.addRaw(element).addEOL();\n }\n}\nconst $df53b41ea025d161$var$_summary = new $df53b41ea025d161$var$Summary();\n/**\n * @deprecated use `core.summary`\n */ module.exports.markdownSummary = $df53b41ea025d161$var$_summary;\nmodule.exports.summary = $df53b41ea025d161$var$_summary;\n\n});\n\nparcelRegister(\"eCzrY\", function(module, exports) {\n\"use strict\";\nvar $aa501cfb12138353$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $aa501cfb12138353$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $aa501cfb12138353$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $aa501cfb12138353$var$__createBinding(result, mod, k);\n }\n $aa501cfb12138353$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toPlatformPath = module.exports.toWin32Path = module.exports.toPosixPath = void 0;\n\nconst $aa501cfb12138353$var$path = $aa501cfb12138353$var$__importStar($fnyYE$path);\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */ function $aa501cfb12138353$var$toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, \"/\");\n}\nmodule.exports.toPosixPath = $aa501cfb12138353$var$toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */ function $aa501cfb12138353$var$toWin32Path(pth) {\n return pth.replace(/[/]/g, \"\\\\\");\n}\nmodule.exports.toWin32Path = $aa501cfb12138353$var$toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */ function $aa501cfb12138353$var$toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, $aa501cfb12138353$var$path.sep);\n}\nmodule.exports.toPlatformPath = $aa501cfb12138353$var$toPlatformPath;\n\n});\n\n\n\nparcelRegister(\"kspKY\", function(module, exports) {\n\nvar $ee4a66e40b1acbbd$var$$parcel$__dirname = $fnyYE$path.resolve(__dirname, \"../../node_modules/numerous/lib\");\n(function() {\n \"use strict\";\n var root = this;\n //=========//\n // GLOBALS //\n //=========//\n var locales = {};\n //==========//\n // EXPOSING //\n //==========//\n var moduleDefinition = {\n create: factory,\n addLocale: addLocale,\n pluralize: pluralize\n };\n if (\"undefined\" !== typeof module.exports) module.exports = moduleDefinition;\n else root.numerous = moduleDefinition;\n //==================//\n // PUBLIC FUNCTIONS //\n //==================//\n /**\n * Creates new instance of numerous.\n *\n * @param {string} locale\n * @returns {object}\n */ function factory(locale) {\n checkLocale(locale);\n return {\n pluralize: function(value, variants) {\n return pluralize(locale, value, variants);\n }\n };\n }\n /**\n * Adds pluralization function for specified locale.\n * Usually externally called by locale itself.\n *\n * @param {string} locale\n * @param {function} callable\n */ function addLocale(locale, callable) {\n locales[locale] = callable;\n }\n /**\n * Returns variant from the specified list of variants\n * according to the specified value and locale.\n *\n * @param {string} locale\n * @param {int} value\n * @param {object} variants\n */ function pluralize(locale, value, variants) {\n checkLocale(locale);\n if (\"object\" !== typeof variants) throw new Error(\"List of variants should be specified as an object\");\n var key = locales[locale](value);\n return \"undefined\" !== typeof variants[key] ? variants[key] : null;\n }\n //===================//\n // PRIVATE FUNCTIONS //\n //===================//\n /**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} locale\n *\n * @returns {boolean}\n */ function hasLocale(locale) {\n return \"undefined\" !== typeof locales[locale];\n }\n /**\n * Checks if locale is loaded. If not, tries to load it.\n *\n * @param {string} locale\n */ function checkLocale(locale) {\n if (!hasLocale(locale)) requireLocale(locale);\n }\n /**\n * Tries to load the specified locale.\n *\n * @param {string} locale\n */ function requireLocale(locale) {\n try {\n require($ee4a66e40b1acbbd$var$$parcel$__dirname + \"/../locales/\" + locale + \".js\");\n } catch (error) {\n throw Error(\"Failed to load the following locale: \" + locale);\n }\n }\n}).call(module.exports);\n\n});\n\nparcelRegister(\"dl3mv\", function(module, exports) {\n//==============//\n// DEPENDENCIES //\n//==============//\n\nvar $hapVv = parcelRequire(\"hapVv\");\n\nvar $joCBa = parcelRequire(\"joCBa\");\n//================//\n// MODULE GLOBALS //\n//================//\n/**\n * Pre-calculating millisecond values for each time unit.\n */ const $9b5fd826f3e9ee59$var$timeUnits = [\n [\n \"years\",\n 29030400000\n ],\n [\n \"months\",\n 2419200000\n ],\n [\n \"weeks\",\n 604800000\n ],\n [\n \"days\",\n 86400000\n ],\n [\n \"hours\",\n 3600000\n ],\n [\n \"minutes\",\n 60000\n ],\n [\n \"seconds\",\n 1000\n ]\n];\nconst $9b5fd826f3e9ee59$var$defaultConfig = {\n locale: \"en\",\n span: 2,\n delimiter: \", \",\n unitType: \"long\",\n unitTypeLookupOrder: [\n \"long\",\n \"short\",\n \"narrow\"\n ],\n autoloadLocales: true\n};\n/**\n * Contains data of loaded locales.\n * @type {Object}\n */ const $9b5fd826f3e9ee59$var$locales = {};\n//=========//\n// EXPORTS //\n//=========//\nmodule.exports = {\n create: $9b5fd826f3e9ee59$var$timeDeltaFactory,\n addLocale: $9b5fd826f3e9ee59$var$addLocale,\n defaultConfig: $9b5fd826f3e9ee59$var$defaultConfig\n};\n//===========//\n// FUNCTIONS //\n//===========//\n/**\n * Adds pluralization data for the specified locale.\n * Should be called in browser.\n *\n * @param {Object|Object[]} localeData\n */ function $9b5fd826f3e9ee59$var$addLocale(localeData) {\n // Normalizing input\n if (!Array.isArray(localeData)) localeData = [\n localeData\n ];\n for (const item of localeData){\n const { id: id, data: data } = item;\n $9b5fd826f3e9ee59$var$locales[id] = data;\n }\n}\n/**\n * Creates new instance.\n *\n * @param {object?} config\n *\n * @returns {object}\n */ function $9b5fd826f3e9ee59$var$timeDeltaFactory(config) {\n // Initializing config by extending the default one\n config = Object.assign({}, $9b5fd826f3e9ee59$var$defaultConfig, config || {});\n return {\n /**\n * Public proxy for internal format function.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object?} options\n *\n * @returns {string}\n */ format: function(firstDate, secondDate, options) {\n // Allowing to override config with each individual call\n options = Object.assign({}, config, options || {});\n return $9b5fd826f3e9ee59$var$format(firstDate, secondDate, options);\n }\n };\n}\n/**\n * Returns difference between two dates as a text string.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object} config\n *\n * @returns {string}\n */ function $9b5fd826f3e9ee59$var$format(firstDate, secondDate, config) {\n $9b5fd826f3e9ee59$var$ensureLocaleLoadedOrThrow(config.locale, {\n autoload: config.autoloadLocales\n });\n // Handling input arguments\n // -----\n if (!firstDate) throw new Error(\"Missing first date argument\");\n if (!secondDate) throw new Error(\"Missing second date argument\");\n // Calculating\n // -----\n const difference = $9b5fd826f3e9ee59$var$getDifference(firstDate, secondDate);\n const parts = [];\n for (const unit of difference){\n const [name, value] = unit;\n if (value > 0) parts.push($9b5fd826f3e9ee59$var$pluralize(name, value, config));\n if (parts.length >= config.span) break;\n }\n // Returning the string value\n return parts.join(config.delimiter);\n}\n/**\n * Checks if locale is loaded. If not, tries to load it in Node.js,\n * or throws and error in Browser.\n *\n * @param {string} locale\n * @param {Object?} options\n */ function $9b5fd826f3e9ee59$var$ensureLocaleLoadedOrThrow(locale, options) {\n const { autoload: autoload } = options;\n if ($9b5fd826f3e9ee59$var$hasLocale(locale)) return;\n if ($joCBa && autoload) $9b5fd826f3e9ee59$var$requireLocale(locale);\n else throw new Error(`Missing locale: ${locale}, you must load it manually before using it`);\n}\n/**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} localeId\n *\n * @returns {boolean}\n */ function $9b5fd826f3e9ee59$var$hasLocale(localeId) {\n return Boolean($9b5fd826f3e9ee59$var$locales[localeId]);\n}\n/**\n * Tries to load the specified locale.\n *\n * @param {string} localeId\n */ function $9b5fd826f3e9ee59$var$requireLocale(localeId) {\n try {\n $9b5fd826f3e9ee59$var$addLocale(require(`../locales/${localeId}.js`));\n } catch (error) {\n throw Error(`Failed to load locale: ${localeId} from ../locales/${localeId}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${error}`);\n }\n}\n/**\n * Returns difference as separate time units.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n *\n * @returns {Array}\n */ function $9b5fd826f3e9ee59$var$getDifference(firstDate, secondDate) {\n let difference = secondDate - firstDate;\n const results = [];\n $9b5fd826f3e9ee59$var$timeUnits.some(function(unit) {\n const name = unit[0];\n const divider = unit[1];\n const value = Math.floor(difference / divider);\n difference -= value * divider;\n results.push([\n name,\n value\n ]);\n if (difference <= 0) // Breaking the loop.\n return true;\n });\n return results;\n}\n/**\n * Returns localized and pluralized time unit.\n *\n * @param {string} unit\n * @param {int} value\n * @param {object} config\n *\n * @returns {string}\n */ function $9b5fd826f3e9ee59$var$pluralize(unit, value, config) {\n const unitTypeData = $9b5fd826f3e9ee59$var$getLocaleDataForUnitType(config);\n const unitString = $hapVv.pluralize(config.locale, value, unitTypeData[unit]);\n return unitString.replace(\"{0}\", value);\n}\n/**\n * Returns locale data for preferred unit type.\n *\n * @param {object} config\n *\n * @returns {Array}\n */ function $9b5fd826f3e9ee59$var$getLocaleDataForUnitType(config) {\n const localeData = $9b5fd826f3e9ee59$var$locales[config.locale];\n // Making a copy of array from config.\n let lookupOrder = config.unitTypeLookupOrder.slice();\n // Adding interested type to the top.\n lookupOrder.unshift(config.unitType);\n // Making sure only unique items are present.\n lookupOrder = $9b5fd826f3e9ee59$var$arrayUnique(lookupOrder);\n let unitTypeData = null;\n lookupOrder.some(function(unitType) {\n if (\"undefined\" !== typeof localeData[unitType]) {\n unitTypeData = localeData[unitType];\n // Breaking the loop.\n return true;\n }\n });\n if (null === unitTypeData) throw new Error(\"Can not find any unit type data for locale: \" + config.locale);\n return unitTypeData;\n}\n/**\n * Returns array with only unique items.\n *\n * @param {Array} array\n *\n * @returns {Array}\n */ function $9b5fd826f3e9ee59$var$arrayUnique(array) {\n return Array.from(new Set(array));\n}\n\n});\nparcelRegister(\"hapVv\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"kspKY\"));\n\n});\n\nparcelRegister(\"joCBa\", function(module, exports) {\n// Coding standard for this project defined @ https://github.com/MatthewSH/standards/blob/master/JavaScript.md\n\"use strict\";\nexports = module.exports = !!(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\n});\n\n\nparcelRegister(\"ipr2f\", function(module, exports) {\nmodule.exports = $d66f88745e8f63ab$var$isexe;\n$d66f88745e8f63ab$var$isexe.sync = $d66f88745e8f63ab$var$sync;\n\nfunction $d66f88745e8f63ab$var$checkPathExt(path, options) {\n var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT;\n if (!pathext) return true;\n pathext = pathext.split(\";\");\n if (pathext.indexOf(\"\") !== -1) return true;\n for(var i = 0; i < pathext.length; i++){\n var p = pathext[i].toLowerCase();\n if (p && path.substr(-p.length).toLowerCase() === p) return true;\n }\n return false;\n}\nfunction $d66f88745e8f63ab$var$checkStat(stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) return false;\n return $d66f88745e8f63ab$var$checkPathExt(path, options);\n}\nfunction $d66f88745e8f63ab$var$isexe(path, options, cb) {\n $fnyYE$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $d66f88745e8f63ab$var$checkStat(stat, path, options));\n });\n}\nfunction $d66f88745e8f63ab$var$sync(path, options) {\n return $d66f88745e8f63ab$var$checkStat($fnyYE$fs.statSync(path), path, options);\n}\n\n});\n\nparcelRegister(\"bn5RY\", function(module, exports) {\nmodule.exports = $8476654426e5fdfb$var$isexe;\n$8476654426e5fdfb$var$isexe.sync = $8476654426e5fdfb$var$sync;\n\nfunction $8476654426e5fdfb$var$isexe(path, options, cb) {\n $fnyYE$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $8476654426e5fdfb$var$checkStat(stat, options));\n });\n}\nfunction $8476654426e5fdfb$var$sync(path, options) {\n return $8476654426e5fdfb$var$checkStat($fnyYE$fs.statSync(path), options);\n}\nfunction $8476654426e5fdfb$var$checkStat(stat, options) {\n return stat.isFile() && $8476654426e5fdfb$var$checkMode(stat, options);\n}\nfunction $8476654426e5fdfb$var$checkMode(stat, options) {\n var mod = stat.mode;\n var uid = stat.uid;\n var gid = stat.gid;\n var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid();\n var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid();\n var u = parseInt(\"100\", 8);\n var g = parseInt(\"010\", 8);\n var o = parseInt(\"001\", 8);\n var ug = u | g;\n var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;\n return ret;\n}\n\n});\n\nparcelRegister(\"97KW0\", function(module, exports) {\n// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n \"SIGABRT\",\n \"SIGALRM\",\n \"SIGHUP\",\n \"SIGINT\",\n \"SIGTERM\"\n];\nif (process.platform !== \"win32\") module.exports.push(\"SIGVTALRM\", \"SIGXCPU\", \"SIGXFSZ\", \"SIGUSR2\", \"SIGTRAP\", \"SIGSYS\", \"SIGQUIT\", \"SIGIOT\");\nif (process.platform === \"linux\") module.exports.push(\"SIGIO\", \"SIGPOLL\", \"SIGPWR\", \"SIGSTKFLT\", \"SIGUNUSED\");\n\n});\n\nparcelRegister(\"24j9d\", function(module, exports) {\n// just pre-load all the stuff that index.js lazily exports\n\nvar $aYJ5s = parcelRequire(\"aYJ5s\");\n\nvar $84nXv = parcelRequire(\"84nXv\");\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $lG7j5 = parcelRequire(\"lG7j5\");\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\n\nvar $SUO5C = parcelRequire(\"SUO5C\");\n\nvar $5UYbM = parcelRequire(\"5UYbM\");\n\nvar $g4dmV = parcelRequire(\"g4dmV\");\n\nvar $avNOz = parcelRequire(\"avNOz\");\n\nvar $3nHUu = parcelRequire(\"3nHUu\");\n\nvar $dYfT7 = parcelRequire(\"dYfT7\");\n\nvar $9h5Uk = parcelRequire(\"9h5Uk\");\n\nvar $1oG7j = parcelRequire(\"1oG7j\");\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\n\nvar $9fB4n = parcelRequire(\"9fB4n\");\n\nvar $b7w7T = parcelRequire(\"b7w7T\");\n\nvar $4Cdie = parcelRequire(\"4Cdie\");\n\nvar $4Jb5D = parcelRequire(\"4Jb5D\");\n\nvar $hhi7M = parcelRequire(\"hhi7M\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\n\nvar $9cmQV = parcelRequire(\"9cmQV\");\n\nvar $dLLSg = parcelRequire(\"dLLSg\");\n\nvar $7CMva = parcelRequire(\"7CMva\");\n\nvar $8dSFQ = parcelRequire(\"8dSFQ\");\n\nvar $eekMY = parcelRequire(\"eekMY\");\n\nvar $3ktqT = parcelRequire(\"3ktqT\");\n\nvar $h5EpL = parcelRequire(\"h5EpL\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $iGUY3 = parcelRequire(\"iGUY3\");\n\nvar $jpWIo = parcelRequire(\"jpWIo\");\n\nvar $dJyj1 = parcelRequire(\"dJyj1\");\n\nvar $9inVR = parcelRequire(\"9inVR\");\n\nvar $5wxvo = parcelRequire(\"5wxvo\");\n\nvar $16OoL = parcelRequire(\"16OoL\");\n\nvar $aNIaY = parcelRequire(\"aNIaY\");\n\nvar $huA22 = parcelRequire(\"huA22\");\n\nvar $hRcmf = parcelRequire(\"hRcmf\");\n\nvar $fnXJa = parcelRequire(\"fnXJa\");\n\nvar $cVjo2 = parcelRequire(\"cVjo2\");\nmodule.exports = {\n parse: $9fZKy,\n valid: $SUO5C,\n clean: $5UYbM,\n inc: $g4dmV,\n diff: $avNOz,\n major: $3nHUu,\n minor: $dYfT7,\n patch: $9h5Uk,\n prerelease: $1oG7j,\n compare: $dKY2K,\n rcompare: $9fB4n,\n compareLoose: $b7w7T,\n compareBuild: $4Cdie,\n sort: $4Jb5D,\n rsort: $hhi7M,\n gt: $cmfRl,\n lt: $9cmQV,\n eq: $dLLSg,\n neq: $7CMva,\n gte: $8dSFQ,\n lte: $eekMY,\n cmp: $3ktqT,\n coerce: $h5EpL,\n Comparator: $hf4vi,\n Range: $3ZIKH,\n satisfies: $h0AH5,\n toComparators: $iGUY3,\n maxSatisfying: $jpWIo,\n minSatisfying: $dJyj1,\n minVersion: $9inVR,\n validRange: $5wxvo,\n outside: $16OoL,\n gtr: $aNIaY,\n ltr: $huA22,\n intersects: $hRcmf,\n simplifyRange: $fnXJa,\n subset: $cVjo2,\n SemVer: $bmedX,\n re: $aYJ5s.re,\n src: $aYJ5s.src,\n tokens: $aYJ5s.t,\n SEMVER_SPEC_VERSION: $84nXv.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: $84nXv.RELEASE_TYPES,\n compareIdentifiers: $lG7j5.compareIdentifiers,\n rcompareIdentifiers: $lG7j5.rcompareIdentifiers\n};\n\n});\nparcelRegister(\"aYJ5s\", function(module, exports) {\n\nvar $84nXv = parcelRequire(\"84nXv\");\nvar $7fe27b54ca3f8458$require$MAX_SAFE_COMPONENT_LENGTH = $84nXv.MAX_SAFE_COMPONENT_LENGTH;\nvar $7fe27b54ca3f8458$require$MAX_SAFE_BUILD_LENGTH = $84nXv.MAX_SAFE_BUILD_LENGTH;\nvar $7fe27b54ca3f8458$require$MAX_LENGTH = $84nXv.MAX_LENGTH;\n\nvar $dc2zw = parcelRequire(\"dc2zw\");\nexports = module.exports = {};\n// The actual regexps go on exports.re\nconst re = exports.re = [];\nconst safeRe = exports.safeRe = [];\nconst src = exports.src = [];\nconst t = exports.t = {};\nlet R = 0;\nconst LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n $7fe27b54ca3f8458$require$MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n $7fe27b54ca3f8458$require$MAX_SAFE_BUILD_LENGTH\n ]\n];\nconst makeSafeRegex = (value)=>{\n for (const [token, max] of safeRegexReplacements)value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n return value;\n};\nconst createToken = (name, value, isGlobal)=>{\n const safe = makeSafeRegex(value);\n const index = R++;\n $dc2zw(name, index, value);\n t[name] = index;\n src[index] = value;\n re[index] = new RegExp(value, isGlobal ? \"g\" : undefined);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : undefined);\n};\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ncreateToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\ncreateToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ncreateToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n// ## Main Version\n// Three dot-separated numeric identifiers.\ncreateToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})`);\ncreateToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ncreateToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`);\ncreateToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`);\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ncreateToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\ncreateToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ncreateToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ncreateToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ncreateToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\ncreateToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\ncreateToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\ncreateToken(\"GTLT\", \"((?:<|>)?=?)\");\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\ncreateToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\ncreateToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken(\"COERCE\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${$7fe27b54ca3f8458$require$MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\\\.(\\\\d{1,${$7fe27b54ca3f8458$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\\\.(\\\\d{1,${$7fe27b54ca3f8458$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\\\d])`);\ncreateToken(\"COERCERTL\", src[t.COERCE], true);\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken(\"LONETILDE\", \"(?:~>?)\");\ncreateToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\nexports.tildeTrimReplace = \"$1~\";\ncreateToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken(\"LONECARET\", \"(?:\\\\^)\");\ncreateToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\nexports.caretTrimReplace = \"$1^\";\ncreateToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\ncreateToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\nexports.comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\\\s*$`);\ncreateToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s*$`);\n// Star ranges basically just allow anything at all.\ncreateToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n// >=0.0.0 is like a star\ncreateToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\ncreateToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n\n});\nparcelRegister(\"84nXv\", function(module, exports) {\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst $5e0148275b563db4$var$SEMVER_SPEC_VERSION = \"2.0.0\";\nconst $5e0148275b563db4$var$MAX_LENGTH = 256;\nconst $5e0148275b563db4$var$MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nconst $5e0148275b563db4$var$MAX_SAFE_COMPONENT_LENGTH = 16;\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst $5e0148275b563db4$var$MAX_SAFE_BUILD_LENGTH = $5e0148275b563db4$var$MAX_LENGTH - 6;\nconst $5e0148275b563db4$var$RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n];\nmodule.exports = {\n MAX_LENGTH: $5e0148275b563db4$var$MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH: $5e0148275b563db4$var$MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH: $5e0148275b563db4$var$MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: $5e0148275b563db4$var$MAX_SAFE_INTEGER,\n RELEASE_TYPES: $5e0148275b563db4$var$RELEASE_TYPES,\n SEMVER_SPEC_VERSION: $5e0148275b563db4$var$SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n};\n\n});\n\nparcelRegister(\"dc2zw\", function(module, exports) {\nconst $99ae6419d8c8fc94$var$debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args)=>console.error(\"SEMVER\", ...args) : ()=>{};\nmodule.exports = $99ae6419d8c8fc94$var$debug;\n\n});\n\n\nparcelRegister(\"bmedX\", function(module, exports) {\n\nvar $dc2zw = parcelRequire(\"dc2zw\");\n\nvar $84nXv = parcelRequire(\"84nXv\");\nvar $844cc864cf80093e$require$MAX_LENGTH = $84nXv.MAX_LENGTH;\nvar $844cc864cf80093e$require$MAX_SAFE_INTEGER = $84nXv.MAX_SAFE_INTEGER;\n\nvar $aYJ5s = parcelRequire(\"aYJ5s\");\nvar $844cc864cf80093e$require$re = $aYJ5s.safeRe;\nvar $844cc864cf80093e$require$t = $aYJ5s.t;\n\nvar $9rxnK = parcelRequire(\"9rxnK\");\n\nvar $lG7j5 = parcelRequire(\"lG7j5\");\nvar $844cc864cf80093e$require$compareIdentifiers = $lG7j5.compareIdentifiers;\nclass $844cc864cf80093e$var$SemVer {\n constructor(version, options){\n options = $9rxnK(options);\n if (version instanceof $844cc864cf80093e$var$SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n if (version.length > $844cc864cf80093e$require$MAX_LENGTH) throw new TypeError(`version is longer than ${$844cc864cf80093e$require$MAX_LENGTH} characters`);\n $dc2zw(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? $844cc864cf80093e$require$re[$844cc864cf80093e$require$t.LOOSE] : $844cc864cf80093e$require$re[$844cc864cf80093e$require$t.FULL]);\n if (!m) throw new TypeError(`Invalid Version: ${version}`);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > $844cc864cf80093e$require$MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > $844cc864cf80093e$require$MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > $844cc864cf80093e$require$MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map((id)=>{\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < $844cc864cf80093e$require$MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) this.version += `-${this.prerelease.join(\".\")}`;\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n $dc2zw(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof $844cc864cf80093e$var$SemVer)) {\n if (typeof other === \"string\" && other === this.version) return 0;\n other = new $844cc864cf80093e$var$SemVer(other, this.options);\n }\n if (other.version === this.version) return 0;\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof $844cc864cf80093e$var$SemVer)) other = new $844cc864cf80093e$var$SemVer(other, this.options);\n return $844cc864cf80093e$require$compareIdentifiers(this.major, other.major) || $844cc864cf80093e$require$compareIdentifiers(this.minor, other.minor) || $844cc864cf80093e$require$compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof $844cc864cf80093e$var$SemVer)) other = new $844cc864cf80093e$var$SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n $dc2zw(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $844cc864cf80093e$require$compareIdentifiers(a, b);\n }while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof $844cc864cf80093e$var$SemVer)) other = new $844cc864cf80093e$var$SemVer(other, this.options);\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n $dc2zw(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $844cc864cf80093e$require$compareIdentifiers(a, b);\n }while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) throw new Error(\"invalid increment argument: identifier is empty\");\n if (this.prerelease.length === 0) this.prerelease = [\n base\n ];\n else {\n let i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) throw new Error(\"invalid increment argument: identifier already exists\");\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [\n identifier,\n base\n ];\n if (identifierBase === false) prerelease = [\n identifier\n ];\n if ($844cc864cf80093e$require$compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) this.prerelease = prerelease;\n } else this.prerelease = prerelease;\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) this.raw += `+${this.build.join(\".\")}`;\n return this;\n }\n}\nmodule.exports = $844cc864cf80093e$var$SemVer;\n\n});\nparcelRegister(\"9rxnK\", function(module, exports) {\n// parse out just the options we care about\nconst $6e0087ab21a6c699$var$looseOption = Object.freeze({\n loose: true\n});\nconst $6e0087ab21a6c699$var$emptyOpts = Object.freeze({});\nconst $6e0087ab21a6c699$var$parseOptions = (options)=>{\n if (!options) return $6e0087ab21a6c699$var$emptyOpts;\n if (typeof options !== \"object\") return $6e0087ab21a6c699$var$looseOption;\n return options;\n};\nmodule.exports = $6e0087ab21a6c699$var$parseOptions;\n\n});\n\nparcelRegister(\"lG7j5\", function(module, exports) {\nconst $fc8330362673038c$var$numeric = /^[0-9]+$/;\nconst $fc8330362673038c$var$compareIdentifiers = (a, b)=>{\n const anum = $fc8330362673038c$var$numeric.test(a);\n const bnum = $fc8330362673038c$var$numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n};\nconst $fc8330362673038c$var$rcompareIdentifiers = (a, b)=>$fc8330362673038c$var$compareIdentifiers(b, a);\nmodule.exports = {\n compareIdentifiers: $fc8330362673038c$var$compareIdentifiers,\n rcompareIdentifiers: $fc8330362673038c$var$rcompareIdentifiers\n};\n\n});\n\n\nparcelRegister(\"9fZKy\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $6bd569fe6daf4ade$var$parse = (version, options, throwErrors = false)=>{\n if (version instanceof $bmedX) return version;\n try {\n return new $bmedX(version, options);\n } catch (er) {\n if (!throwErrors) return null;\n throw er;\n }\n};\nmodule.exports = $6bd569fe6daf4ade$var$parse;\n\n});\n\nparcelRegister(\"SUO5C\", function(module, exports) {\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\nconst $0a511bed2d1a680e$var$valid = (version, options)=>{\n const v = $9fZKy(version, options);\n return v ? v.version : null;\n};\nmodule.exports = $0a511bed2d1a680e$var$valid;\n\n});\n\nparcelRegister(\"5UYbM\", function(module, exports) {\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\nconst $44f0df021a9b0feb$var$clean = (version, options)=>{\n const s = $9fZKy(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n};\nmodule.exports = $44f0df021a9b0feb$var$clean;\n\n});\n\nparcelRegister(\"g4dmV\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $bb2763cd0bca792e$var$inc = (version, release, options, identifier, identifierBase)=>{\n if (typeof options === \"string\") {\n identifierBase = identifier;\n identifier = options;\n options = undefined;\n }\n try {\n return new $bmedX(version instanceof $bmedX ? version.version : version, options).inc(release, identifier, identifierBase).version;\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $bb2763cd0bca792e$var$inc;\n\n});\n\nparcelRegister(\"avNOz\", function(module, exports) {\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\nconst $7a7370cefff4d4d5$var$diff = (version1, version2)=>{\n const v1 = $9fZKy(version1, null, true);\n const v2 = $9fZKy(version2, null, true);\n const comparison = v1.compare(v2);\n if (comparison === 0) return null;\n const v1Higher = comparison > 0;\n const highVersion = v1Higher ? v1 : v2;\n const lowVersion = v1Higher ? v2 : v1;\n const highHasPre = !!highVersion.prerelease.length;\n const lowHasPre = !!lowVersion.prerelease.length;\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) return \"major\";\n // Otherwise it can be determined by checking the high version\n if (highVersion.patch) // anything higher than a patch bump would result in the wrong version\n return \"patch\";\n if (highVersion.minor) // anything higher than a minor bump would result in the wrong version\n return \"minor\";\n // bumping major/minor/patch all have same result\n return \"major\";\n }\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? \"pre\" : \"\";\n if (v1.major !== v2.major) return prefix + \"major\";\n if (v1.minor !== v2.minor) return prefix + \"minor\";\n if (v1.patch !== v2.patch) return prefix + \"patch\";\n // high and low are preleases\n return \"prerelease\";\n};\nmodule.exports = $7a7370cefff4d4d5$var$diff;\n\n});\n\nparcelRegister(\"3nHUu\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $276594b9c180e0f0$var$major = (a, loose)=>new $bmedX(a, loose).major;\nmodule.exports = $276594b9c180e0f0$var$major;\n\n});\n\nparcelRegister(\"dYfT7\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $a2bd3401b9e3d9ac$var$minor = (a, loose)=>new $bmedX(a, loose).minor;\nmodule.exports = $a2bd3401b9e3d9ac$var$minor;\n\n});\n\nparcelRegister(\"9h5Uk\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $6c0a48b3f9338d20$var$patch = (a, loose)=>new $bmedX(a, loose).patch;\nmodule.exports = $6c0a48b3f9338d20$var$patch;\n\n});\n\nparcelRegister(\"1oG7j\", function(module, exports) {\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\nconst $1048b3e89636d643$var$prerelease = (version, options)=>{\n const parsed = $9fZKy(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n};\nmodule.exports = $1048b3e89636d643$var$prerelease;\n\n});\n\nparcelRegister(\"dKY2K\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $a03e2595d876bcf8$var$compare = (a, b, loose)=>new $bmedX(a, loose).compare(new $bmedX(b, loose));\nmodule.exports = $a03e2595d876bcf8$var$compare;\n\n});\n\nparcelRegister(\"9fB4n\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $6bc2450a8af70fb2$var$rcompare = (a, b, loose)=>$dKY2K(b, a, loose);\nmodule.exports = $6bc2450a8af70fb2$var$rcompare;\n\n});\n\nparcelRegister(\"b7w7T\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $818944cadcc94a9c$var$compareLoose = (a, b)=>$dKY2K(a, b, true);\nmodule.exports = $818944cadcc94a9c$var$compareLoose;\n\n});\n\nparcelRegister(\"4Cdie\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\nconst $35c505c017250381$var$compareBuild = (a, b, loose)=>{\n const versionA = new $bmedX(a, loose);\n const versionB = new $bmedX(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n};\nmodule.exports = $35c505c017250381$var$compareBuild;\n\n});\n\nparcelRegister(\"4Jb5D\", function(module, exports) {\n\nvar $4Cdie = parcelRequire(\"4Cdie\");\nconst $3713f7a31735ad15$var$sort = (list, loose)=>list.sort((a, b)=>$4Cdie(a, b, loose));\nmodule.exports = $3713f7a31735ad15$var$sort;\n\n});\n\nparcelRegister(\"hhi7M\", function(module, exports) {\n\nvar $4Cdie = parcelRequire(\"4Cdie\");\nconst $c942155432093a9e$var$rsort = (list, loose)=>list.sort((a, b)=>$4Cdie(b, a, loose));\nmodule.exports = $c942155432093a9e$var$rsort;\n\n});\n\nparcelRegister(\"cmfRl\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $8ff3d77984ea3cf4$var$gt = (a, b, loose)=>$dKY2K(a, b, loose) > 0;\nmodule.exports = $8ff3d77984ea3cf4$var$gt;\n\n});\n\nparcelRegister(\"9cmQV\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $6b26f620b01a90e5$var$lt = (a, b, loose)=>$dKY2K(a, b, loose) < 0;\nmodule.exports = $6b26f620b01a90e5$var$lt;\n\n});\n\nparcelRegister(\"dLLSg\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $a064ccf62d702cc4$var$eq = (a, b, loose)=>$dKY2K(a, b, loose) === 0;\nmodule.exports = $a064ccf62d702cc4$var$eq;\n\n});\n\nparcelRegister(\"7CMva\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $58d1b476ad4304dd$var$neq = (a, b, loose)=>$dKY2K(a, b, loose) !== 0;\nmodule.exports = $58d1b476ad4304dd$var$neq;\n\n});\n\nparcelRegister(\"8dSFQ\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $5fc9f2b6d040d887$var$gte = (a, b, loose)=>$dKY2K(a, b, loose) >= 0;\nmodule.exports = $5fc9f2b6d040d887$var$gte;\n\n});\n\nparcelRegister(\"eekMY\", function(module, exports) {\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nconst $a5c27fc1b30916a7$var$lte = (a, b, loose)=>$dKY2K(a, b, loose) <= 0;\nmodule.exports = $a5c27fc1b30916a7$var$lte;\n\n});\n\nparcelRegister(\"3ktqT\", function(module, exports) {\n\nvar $dLLSg = parcelRequire(\"dLLSg\");\n\nvar $7CMva = parcelRequire(\"7CMva\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\n\nvar $8dSFQ = parcelRequire(\"8dSFQ\");\n\nvar $9cmQV = parcelRequire(\"9cmQV\");\n\nvar $eekMY = parcelRequire(\"eekMY\");\nconst $26ca121a33818d4a$var$cmp = (a, op, b, loose)=>{\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return $dLLSg(a, b, loose);\n case \"!=\":\n return $7CMva(a, b, loose);\n case \">\":\n return $cmfRl(a, b, loose);\n case \">=\":\n return $8dSFQ(a, b, loose);\n case \"<\":\n return $9cmQV(a, b, loose);\n case \"<=\":\n return $eekMY(a, b, loose);\n default:\n throw new TypeError(`Invalid operator: ${op}`);\n }\n};\nmodule.exports = $26ca121a33818d4a$var$cmp;\n\n});\n\nparcelRegister(\"h5EpL\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $9fZKy = parcelRequire(\"9fZKy\");\n\nvar $aYJ5s = parcelRequire(\"aYJ5s\");\nvar $c71240ccd625fe7d$require$re = $aYJ5s.safeRe;\nvar $c71240ccd625fe7d$require$t = $aYJ5s.t;\nconst $c71240ccd625fe7d$var$coerce = (version, options)=>{\n if (version instanceof $bmedX) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n let match = null;\n if (!options.rtl) match = version.match($c71240ccd625fe7d$require$re[$c71240ccd625fe7d$require$t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next;\n while((next = $c71240ccd625fe7d$require$re[$c71240ccd625fe7d$require$t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n $c71240ccd625fe7d$require$re[$c71240ccd625fe7d$require$t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n $c71240ccd625fe7d$require$re[$c71240ccd625fe7d$require$t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return $9fZKy(`${match[2]}.${match[3] || \"0\"}.${match[4] || \"0\"}`, options);\n};\nmodule.exports = $c71240ccd625fe7d$var$coerce;\n\n});\n\nparcelRegister(\"hf4vi\", function(module, exports) {\nconst $c8d754bc004d1996$var$ANY = Symbol(\"SemVer ANY\");\n// hoisted class for cyclic dependency\nclass $c8d754bc004d1996$var$Comparator {\n static get ANY() {\n return $c8d754bc004d1996$var$ANY;\n }\n constructor(comp, options){\n options = $9rxnK(options);\n if (comp instanceof $c8d754bc004d1996$var$Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n comp = comp.trim().split(/\\s+/).join(\" \");\n $dc2zw(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === $c8d754bc004d1996$var$ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n $dc2zw(\"comp\", this);\n }\n parse(comp) {\n const r = this.options.loose ? $c8d754bc004d1996$require$re[$c8d754bc004d1996$require$t.COMPARATORLOOSE] : $c8d754bc004d1996$require$re[$c8d754bc004d1996$require$t.COMPARATOR];\n const m = comp.match(r);\n if (!m) throw new TypeError(`Invalid comparator: ${comp}`);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = $c8d754bc004d1996$var$ANY;\n else this.semver = new $bmedX(m[2], this.options.loose);\n }\n toString() {\n return this.value;\n }\n test(version) {\n $dc2zw(\"Comparator.test\", version, this.options.loose);\n if (this.semver === $c8d754bc004d1996$var$ANY || version === $c8d754bc004d1996$var$ANY) return true;\n if (typeof version === \"string\") try {\n version = new $bmedX(version, this.options);\n } catch (er) {\n return false;\n }\n return $3ktqT(version, this.operator, this.semver, this.options);\n }\n intersects(comp, options) {\n if (!(comp instanceof $c8d754bc004d1996$var$Comparator)) throw new TypeError(\"a Comparator is required\");\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n return new $3ZIKH(comp.value, options).test(this.value);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n return new $3ZIKH(this.value, options).test(comp.semver);\n }\n options = $9rxnK(options);\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease && (this.value === \"<0.0.0-0\" || comp.value === \"<0.0.0-0\")) return false;\n if (!options.includePrerelease && (this.value.startsWith(\"<0.0.0\") || comp.value.startsWith(\"<0.0.0\"))) return false;\n // Same direction increasing (> or >=)\n if (this.operator.startsWith(\">\") && comp.operator.startsWith(\">\")) return true;\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith(\"<\") && comp.operator.startsWith(\"<\")) return true;\n // same SemVer and both sides are inclusive (<= or >=)\n if (this.semver.version === comp.semver.version && this.operator.includes(\"=\") && comp.operator.includes(\"=\")) return true;\n // opposite directions less than\n if ($3ktqT(this.semver, \"<\", comp.semver, options) && this.operator.startsWith(\">\") && comp.operator.startsWith(\"<\")) return true;\n // opposite directions greater than\n if ($3ktqT(this.semver, \">\", comp.semver, options) && this.operator.startsWith(\"<\") && comp.operator.startsWith(\">\")) return true;\n return false;\n }\n}\nmodule.exports = $c8d754bc004d1996$var$Comparator;\n\nvar $9rxnK = parcelRequire(\"9rxnK\");\n\nvar $aYJ5s = parcelRequire(\"aYJ5s\");\nvar $c8d754bc004d1996$require$re = $aYJ5s.safeRe;\nvar $c8d754bc004d1996$require$t = $aYJ5s.t;\n\nvar $3ktqT = parcelRequire(\"3ktqT\");\n\nvar $dc2zw = parcelRequire(\"dc2zw\");\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\n});\nparcelRegister(\"3ZIKH\", function(module, exports) {\n// hoisted class for cyclic dependency\nclass $2e89c8759dc5e770$var$Range {\n constructor(range, options){\n options = $9rxnK(options);\n if (range instanceof $2e89c8759dc5e770$var$Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new $2e89c8759dc5e770$var$Range(range.raw, options);\n }\n if (range instanceof $hf4vi) {\n // just put it in the set and return\n this.raw = range.value;\n this.set = [\n [\n range\n ]\n ];\n this.format();\n return this;\n }\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split on ||\n this.set = this.raw.split(\"||\")// map the range to a 2d array of comparators\n .map((r)=>this.parseRange(r.trim()))// throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter((c)=>c.length);\n if (!this.set.length) throw new TypeError(`Invalid SemVer Range: ${this.raw}`);\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0];\n this.set = this.set.filter((c)=>!$2e89c8759dc5e770$var$isNullSet(c[0]));\n if (this.set.length === 0) this.set = [\n first\n ];\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set)if (c.length === 1 && $2e89c8759dc5e770$var$isAny(c[0])) {\n this.set = [\n c\n ];\n break;\n }\n }\n }\n this.format();\n }\n format() {\n this.range = this.set.map((comps)=>comps.join(\" \").trim()).join(\"||\").trim();\n return this.range;\n }\n toString() {\n return this.range;\n }\n parseRange(range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = (this.options.includePrerelease && $2e89c8759dc5e770$require$FLAG_INCLUDE_PRERELEASE) | (this.options.loose && $2e89c8759dc5e770$require$FLAG_LOOSE);\n const memoKey = memoOpts + \":\" + range;\n const cached = $2e89c8759dc5e770$var$cache.get(memoKey);\n if (cached) return cached;\n const loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.HYPHENRANGELOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.HYPHENRANGE];\n range = range.replace(hr, $2e89c8759dc5e770$var$hyphenReplace(this.options.includePrerelease));\n $dc2zw(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.COMPARATORTRIM], $2e89c8759dc5e770$require$comparatorTrimReplace);\n $dc2zw(\"comparator trim\", range);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.TILDETRIM], $2e89c8759dc5e770$require$tildeTrimReplace);\n $dc2zw(\"tilde trim\", range);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.CARETTRIM], $2e89c8759dc5e770$require$caretTrimReplace);\n $dc2zw(\"caret trim\", range);\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n let rangeList = range.split(\" \").map((comp)=>$2e89c8759dc5e770$var$parseComparator(comp, this.options)).join(\" \").split(/\\s+/)// >=0.0.0 is equivalent to *\n .map((comp)=>$2e89c8759dc5e770$var$replaceGTE0(comp, this.options));\n if (loose) // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter((comp)=>{\n $dc2zw(\"loose invalid filter\", comp, this.options);\n return !!comp.match($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.COMPARATORLOOSE]);\n });\n $dc2zw(\"range list\", rangeList);\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map();\n const comparators = rangeList.map((comp)=>new $hf4vi(comp, this.options));\n for (const comp of comparators){\n if ($2e89c8759dc5e770$var$isNullSet(comp)) return [\n comp\n ];\n rangeMap.set(comp.value, comp);\n }\n if (rangeMap.size > 1 && rangeMap.has(\"\")) rangeMap.delete(\"\");\n const result = [\n ...rangeMap.values()\n ];\n $2e89c8759dc5e770$var$cache.set(memoKey, result);\n return result;\n }\n intersects(range, options) {\n if (!(range instanceof $2e89c8759dc5e770$var$Range)) throw new TypeError(\"a Range is required\");\n return this.set.some((thisComparators)=>{\n return $2e89c8759dc5e770$var$isSatisfiable(thisComparators, options) && range.set.some((rangeComparators)=>{\n return $2e89c8759dc5e770$var$isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator)=>{\n return rangeComparators.every((rangeComparator)=>{\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n }\n // if ANY of the sets match ALL of its comparators, then pass\n test(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new $bmedX(version, this.options);\n } catch (er) {\n return false;\n }\n for(let i = 0; i < this.set.length; i++){\n if ($2e89c8759dc5e770$var$testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n }\n}\nmodule.exports = $2e89c8759dc5e770$var$Range;\n\nvar $tPjHU = parcelRequire(\"tPjHU\");\nconst $2e89c8759dc5e770$var$cache = new $tPjHU({\n max: 1000\n});\n\nvar $9rxnK = parcelRequire(\"9rxnK\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\n\nvar $dc2zw = parcelRequire(\"dc2zw\");\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $aYJ5s = parcelRequire(\"aYJ5s\");\nvar $2e89c8759dc5e770$require$re = $aYJ5s.safeRe;\nvar $2e89c8759dc5e770$require$t = $aYJ5s.t;\nvar $2e89c8759dc5e770$require$comparatorTrimReplace = $aYJ5s.comparatorTrimReplace;\nvar $2e89c8759dc5e770$require$tildeTrimReplace = $aYJ5s.tildeTrimReplace;\nvar $2e89c8759dc5e770$require$caretTrimReplace = $aYJ5s.caretTrimReplace;\n\nvar $84nXv = parcelRequire(\"84nXv\");\nvar $2e89c8759dc5e770$require$FLAG_INCLUDE_PRERELEASE = $84nXv.FLAG_INCLUDE_PRERELEASE;\nvar $2e89c8759dc5e770$require$FLAG_LOOSE = $84nXv.FLAG_LOOSE;\nconst $2e89c8759dc5e770$var$isNullSet = (c)=>c.value === \"<0.0.0-0\";\nconst $2e89c8759dc5e770$var$isAny = (c)=>c.value === \"\";\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst $2e89c8759dc5e770$var$isSatisfiable = (comparators, options)=>{\n let result = true;\n const remainingComparators = comparators.slice();\n let testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every((otherComparator)=>{\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n};\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst $2e89c8759dc5e770$var$parseComparator = (comp, options)=>{\n $dc2zw(\"comp\", comp, options);\n comp = $2e89c8759dc5e770$var$replaceCarets(comp, options);\n $dc2zw(\"caret\", comp);\n comp = $2e89c8759dc5e770$var$replaceTildes(comp, options);\n $dc2zw(\"tildes\", comp);\n comp = $2e89c8759dc5e770$var$replaceXRanges(comp, options);\n $dc2zw(\"xrange\", comp);\n comp = $2e89c8759dc5e770$var$replaceStars(comp, options);\n $dc2zw(\"stars\", comp);\n return comp;\n};\nconst $2e89c8759dc5e770$var$isX = (id)=>!id || id.toLowerCase() === \"x\" || id === \"*\";\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $2e89c8759dc5e770$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceTilde(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.TILDELOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $dc2zw(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($2e89c8759dc5e770$var$isX(M)) ret = \"\";\n else if ($2e89c8759dc5e770$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $dc2zw(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $dc2zw(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $2e89c8759dc5e770$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceCaret(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceCaret = (comp, options)=>{\n $dc2zw(\"caret\", comp, options);\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.CARETLOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $dc2zw(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($2e89c8759dc5e770$var$isX(M)) ret = \"\";\n else if ($2e89c8759dc5e770$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $dc2zw(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $dc2zw(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $dc2zw(\"caret return\", ret);\n return ret;\n });\n};\nconst $2e89c8759dc5e770$var$replaceXRanges = (comp, options)=>{\n $dc2zw(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceXRange(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.XRANGELOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $dc2zw(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $2e89c8759dc5e770$var$isX(M);\n const xm = xM || $2e89c8759dc5e770$var$isX(m);\n const xp = xm || $2e89c8759dc5e770$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $dc2zw(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $2e89c8759dc5e770$var$replaceStars = (comp, options)=>{\n $dc2zw(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.STAR], \"\");\n};\nconst $2e89c8759dc5e770$var$replaceGTE0 = (comp, options)=>{\n $dc2zw(\"replaceGTE0\", comp, options);\n return comp.trim().replace($2e89c8759dc5e770$require$re[options.includePrerelease ? $2e89c8759dc5e770$require$t.GTE0PRE : $2e89c8759dc5e770$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $2e89c8759dc5e770$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($2e89c8759dc5e770$var$isX(fM)) from = \"\";\n else if ($2e89c8759dc5e770$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($2e89c8759dc5e770$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($2e89c8759dc5e770$var$isX(tM)) to = \"\";\n else if ($2e89c8759dc5e770$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $2e89c8759dc5e770$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $dc2zw(set[i].semver);\n if (set[i].semver === $hf4vi.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"tPjHU\", function(module, exports) {\n\"use strict\";\n\nvar $8VtHa = parcelRequire(\"8VtHa\");\nconst $059a8401eb22b5e6$var$MAX = Symbol(\"max\");\nconst $059a8401eb22b5e6$var$LENGTH = Symbol(\"length\");\nconst $059a8401eb22b5e6$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $059a8401eb22b5e6$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $059a8401eb22b5e6$var$MAX_AGE = Symbol(\"maxAge\");\nconst $059a8401eb22b5e6$var$DISPOSE = Symbol(\"dispose\");\nconst $059a8401eb22b5e6$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $059a8401eb22b5e6$var$LRU_LIST = Symbol(\"lruList\");\nconst $059a8401eb22b5e6$var$CACHE = Symbol(\"cache\");\nconst $059a8401eb22b5e6$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $059a8401eb22b5e6$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $059a8401eb22b5e6$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$059a8401eb22b5e6$var$MAX] = options.max || Infinity;\n const lc = options.length || $059a8401eb22b5e6$var$naiveLength;\n this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $059a8401eb22b5e6$var$naiveLength : lc;\n this[$059a8401eb22b5e6$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$059a8401eb22b5e6$var$MAX_AGE] = options.maxAge || 0;\n this[$059a8401eb22b5e6$var$DISPOSE] = options.dispose;\n this[$059a8401eb22b5e6$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$059a8401eb22b5e6$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$059a8401eb22b5e6$var$MAX] = mL || Infinity;\n $059a8401eb22b5e6$var$trim(this);\n }\n get max() {\n return this[$059a8401eb22b5e6$var$MAX];\n }\n set allowStale(allowStale) {\n this[$059a8401eb22b5e6$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$059a8401eb22b5e6$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$059a8401eb22b5e6$var$MAX_AGE] = mA;\n $059a8401eb22b5e6$var$trim(this);\n }\n get maxAge() {\n return this[$059a8401eb22b5e6$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $059a8401eb22b5e6$var$naiveLength;\n if (lC !== this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR]) {\n this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR] = lC;\n this[$059a8401eb22b5e6$var$LENGTH] = 0;\n this[$059a8401eb22b5e6$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$059a8401eb22b5e6$var$LENGTH] += hit.length;\n });\n }\n $059a8401eb22b5e6$var$trim(this);\n }\n get lengthCalculator() {\n return this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$059a8401eb22b5e6$var$LENGTH];\n }\n get itemCount() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$059a8401eb22b5e6$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $059a8401eb22b5e6$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$059a8401eb22b5e6$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $059a8401eb22b5e6$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$059a8401eb22b5e6$var$DISPOSE] && this[$059a8401eb22b5e6$var$LRU_LIST] && this[$059a8401eb22b5e6$var$LRU_LIST].length) this[$059a8401eb22b5e6$var$LRU_LIST].forEach((hit)=>this[$059a8401eb22b5e6$var$DISPOSE](hit.key, hit.value));\n this[$059a8401eb22b5e6$var$CACHE] = new Map() // hash of items by key\n ;\n this[$059a8401eb22b5e6$var$LRU_LIST] = new $8VtHa() // list of items in order of use recency\n ;\n this[$059a8401eb22b5e6$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].map((hit)=>$059a8401eb22b5e6$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$059a8401eb22b5e6$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$059a8401eb22b5e6$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR](value, key);\n if (this[$059a8401eb22b5e6$var$CACHE].has(key)) {\n if (len > this[$059a8401eb22b5e6$var$MAX]) {\n $059a8401eb22b5e6$var$del(this, this[$059a8401eb22b5e6$var$CACHE].get(key));\n return false;\n }\n const node = this[$059a8401eb22b5e6$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$059a8401eb22b5e6$var$DISPOSE]) {\n if (!this[$059a8401eb22b5e6$var$NO_DISPOSE_ON_SET]) this[$059a8401eb22b5e6$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$059a8401eb22b5e6$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $059a8401eb22b5e6$var$trim(this);\n return true;\n }\n const hit = new $059a8401eb22b5e6$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$059a8401eb22b5e6$var$MAX]) {\n if (this[$059a8401eb22b5e6$var$DISPOSE]) this[$059a8401eb22b5e6$var$DISPOSE](key, value);\n return false;\n }\n this[$059a8401eb22b5e6$var$LENGTH] += hit.length;\n this[$059a8401eb22b5e6$var$LRU_LIST].unshift(hit);\n this[$059a8401eb22b5e6$var$CACHE].set(key, this[$059a8401eb22b5e6$var$LRU_LIST].head);\n $059a8401eb22b5e6$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$059a8401eb22b5e6$var$CACHE].has(key)) return false;\n const hit = this[$059a8401eb22b5e6$var$CACHE].get(key).value;\n return !$059a8401eb22b5e6$var$isStale(this, hit);\n }\n get(key) {\n return $059a8401eb22b5e6$var$get(this, key, true);\n }\n peek(key) {\n return $059a8401eb22b5e6$var$get(this, key, false);\n }\n pop() {\n const node = this[$059a8401eb22b5e6$var$LRU_LIST].tail;\n if (!node) return null;\n $059a8401eb22b5e6$var$del(this, node);\n return node.value;\n }\n del(key) {\n $059a8401eb22b5e6$var$del(this, this[$059a8401eb22b5e6$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$059a8401eb22b5e6$var$CACHE].forEach((value, key)=>$059a8401eb22b5e6$var$get(this, key, false));\n }\n}\nconst $059a8401eb22b5e6$var$get = (self, key, doUse)=>{\n const node = self[$059a8401eb22b5e6$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($059a8401eb22b5e6$var$isStale(self, hit)) {\n $059a8401eb22b5e6$var$del(self, node);\n if (!self[$059a8401eb22b5e6$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$059a8401eb22b5e6$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$059a8401eb22b5e6$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $059a8401eb22b5e6$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$059a8401eb22b5e6$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$059a8401eb22b5e6$var$MAX_AGE] && diff > self[$059a8401eb22b5e6$var$MAX_AGE];\n};\nconst $059a8401eb22b5e6$var$trim = (self)=>{\n if (self[$059a8401eb22b5e6$var$LENGTH] > self[$059a8401eb22b5e6$var$MAX]) for(let walker = self[$059a8401eb22b5e6$var$LRU_LIST].tail; self[$059a8401eb22b5e6$var$LENGTH] > self[$059a8401eb22b5e6$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $059a8401eb22b5e6$var$del(self, walker);\n walker = prev;\n }\n};\nconst $059a8401eb22b5e6$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$059a8401eb22b5e6$var$DISPOSE]) self[$059a8401eb22b5e6$var$DISPOSE](hit.key, hit.value);\n self[$059a8401eb22b5e6$var$LENGTH] -= hit.length;\n self[$059a8401eb22b5e6$var$CACHE].delete(hit.key);\n self[$059a8401eb22b5e6$var$LRU_LIST].removeNode(node);\n }\n};\nclass $059a8401eb22b5e6$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $059a8401eb22b5e6$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($059a8401eb22b5e6$var$isStale(self, hit)) {\n $059a8401eb22b5e6$var$del(self, node);\n if (!self[$059a8401eb22b5e6$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $059a8401eb22b5e6$var$LRUCache;\n\n});\nparcelRegister(\"8VtHa\", function(module, exports) {\n\"use strict\";\nmodule.exports = $67faae78dc454350$var$Yallist;\n$67faae78dc454350$var$Yallist.Node = $67faae78dc454350$var$Node;\n$67faae78dc454350$var$Yallist.create = $67faae78dc454350$var$Yallist;\nfunction $67faae78dc454350$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $67faae78dc454350$var$Yallist)) self = new $67faae78dc454350$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$67faae78dc454350$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$67faae78dc454350$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$67faae78dc454350$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$67faae78dc454350$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$67faae78dc454350$var$push(this, arguments[i]);\n return this.length;\n};\n$67faae78dc454350$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$67faae78dc454350$var$unshift(this, arguments[i]);\n return this.length;\n};\n$67faae78dc454350$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$67faae78dc454350$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$67faae78dc454350$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$67faae78dc454350$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$67faae78dc454350$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $67faae78dc454350$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $67faae78dc454350$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$67faae78dc454350$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$67faae78dc454350$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$67faae78dc454350$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$67faae78dc454350$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $67faae78dc454350$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $67faae78dc454350$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $67faae78dc454350$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $67faae78dc454350$var$insert(self, node, value) {\n var inserted = node === self.head ? new $67faae78dc454350$var$Node(value, null, node, self) : new $67faae78dc454350$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $67faae78dc454350$var$push(self, item) {\n self.tail = new $67faae78dc454350$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $67faae78dc454350$var$unshift(self, item) {\n self.head = new $67faae78dc454350$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $67faae78dc454350$var$Node(value, prev, next, list) {\n if (!(this instanceof $67faae78dc454350$var$Node)) return new $67faae78dc454350$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"iDH6t\"))($67faae78dc454350$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"iDH6t\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"h0AH5\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $c61ee66e825b833b$var$satisfies = (version, range, options)=>{\n try {\n range = new $3ZIKH(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $c61ee66e825b833b$var$satisfies;\n\n});\n\nparcelRegister(\"iGUY3\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n// Mostly just for testing and legacy API reasons\nconst $d9b856cbb52d7485$var$toComparators = (range, options)=>new $3ZIKH(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $d9b856cbb52d7485$var$toComparators;\n\n});\n\nparcelRegister(\"jpWIo\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $e22de5b256aee447$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $3ZIKH(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $bmedX(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $e22de5b256aee447$var$maxSatisfying;\n\n});\n\nparcelRegister(\"dJyj1\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $9ffa16baebb6172d$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $3ZIKH(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $bmedX(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $9ffa16baebb6172d$var$minSatisfying;\n\n});\n\nparcelRegister(\"9inVR\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\nconst $6c485befcc0d8d86$var$minVersion = (range, loose)=>{\n range = new $3ZIKH(range, loose);\n let minver = new $bmedX(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $bmedX(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $bmedX(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cmfRl(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cmfRl(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $6c485befcc0d8d86$var$minVersion;\n\n});\n\nparcelRegister(\"5wxvo\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $4059ee5dc358195f$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $3ZIKH(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $4059ee5dc358195f$var$validRange;\n\n});\n\nparcelRegister(\"16OoL\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\nconst { ANY: $0ced720887f8e111$var$ANY } = $hf4vi;\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\n\nvar $9cmQV = parcelRequire(\"9cmQV\");\n\nvar $eekMY = parcelRequire(\"eekMY\");\n\nvar $8dSFQ = parcelRequire(\"8dSFQ\");\nconst $0ced720887f8e111$var$outside = (version, range, hilo, options)=>{\n version = new $bmedX(version, options);\n range = new $3ZIKH(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cmfRl;\n ltefn = $eekMY;\n ltfn = $9cmQV;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $9cmQV;\n ltefn = $8dSFQ;\n ltfn = $cmfRl;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($h0AH5(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $0ced720887f8e111$var$ANY) comparator = new $hf4vi(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $0ced720887f8e111$var$outside;\n\n});\n\nparcelRegister(\"aNIaY\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $16OoL = parcelRequire(\"16OoL\");\nconst $7dd0bf66272f2aa5$var$gtr = (version, range, options)=>$16OoL(version, range, \">\", options);\nmodule.exports = $7dd0bf66272f2aa5$var$gtr;\n\n});\n\nparcelRegister(\"huA22\", function(module, exports) {\n\nvar $16OoL = parcelRequire(\"16OoL\");\n// Determine if version is less than all the versions possible in the range\nconst $cbc1302becc6ade2$var$ltr = (version, range, options)=>$16OoL(version, range, \"<\", options);\nmodule.exports = $cbc1302becc6ade2$var$ltr;\n\n});\n\nparcelRegister(\"hRcmf\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $d000f8ee70e292e2$var$intersects = (r1, r2, options)=>{\n r1 = new $3ZIKH(r1, options);\n r2 = new $3ZIKH(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $d000f8ee70e292e2$var$intersects;\n\n});\n\nparcelRegister(\"fnXJa\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$dKY2K(a, b, options));\n for (const version of v){\n const included = $h0AH5(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"cVjo2\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\nconst { ANY: $9689d8b7ef65728f$var$ANY } = $hf4vi;\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $9689d8b7ef65728f$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $3ZIKH(sub, options);\n dom = new $3ZIKH(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $9689d8b7ef65728f$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $9689d8b7ef65728f$var$minimumVersionWithPreRelease = [\n new $hf4vi(\">=0.0.0-0\")\n];\nconst $9689d8b7ef65728f$var$minimumVersion = [\n new $hf4vi(\">=0.0.0\")\n];\nconst $9689d8b7ef65728f$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $9689d8b7ef65728f$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $9689d8b7ef65728f$var$ANY) return true;\n else if (options.includePrerelease) sub = $9689d8b7ef65728f$var$minimumVersionWithPreRelease;\n else sub = $9689d8b7ef65728f$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $9689d8b7ef65728f$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $9689d8b7ef65728f$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $9689d8b7ef65728f$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $9689d8b7ef65728f$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $dKY2K(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$h0AH5(eq, String(gt), options)) return null;\n if (lt && !$h0AH5(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$h0AH5(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $9689d8b7ef65728f$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$h0AH5(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $9689d8b7ef65728f$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$h0AH5(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $9689d8b7ef65728f$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $dKY2K(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $9689d8b7ef65728f$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $dKY2K(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $9689d8b7ef65728f$var$subset;\n\n});\n\n\nparcelRegister(\"fQ0Jj\", function(module, exports) {\n\"use strict\";\nvar $b87c474932ac0f16$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($b87c474932ac0f16$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"6afW1\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $47d0099950e01565$export$f8b9fb4db095815b);\n\nasync function $47d0099950e01565$export$f8b9fb4db095815b(path) {\n try {\n await (0, $fnyYE$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $47d0099950e01565$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($fnyYE$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"e19ul\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $50261410344d920a$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $50261410344d920a$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $50261410344d920a$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $fnyYE$path.dirname);\n$parcel$export(module.exports, \"join\", () => $fnyYE$path.join);\n\n\nvar $hImoI = parcelRequire(\"hImoI\");\n\nvar $f2mBC = parcelRequire(\"f2mBC\");\nfunction $50261410344d920a$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $50261410344d920a$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $50261410344d920a$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $fnyYE$path.basename)(e) : (0, $fnyYE$path.basename)(e, (0, $fnyYE$path.extname)(e));\n}\nfunction $50261410344d920a$export$873fead74fe2f1ff(e) {\n return (0, $fnyYE$path.normalize)(e).replace(RegExp((0, $hImoI.default)((0, $fnyYE$path.sep)) + \"$\"), \"\");\n}\nfunction $50261410344d920a$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $50261410344d920a$export$3e333f8cb13439c(e, a) {\n const r = (0, $fnyYE$path.extname)(e), s = `${a}${(0, $fnyYE$path.basename)(e, r)}${r}`;\n return (0, $fnyYE$path.join)((0, $fnyYE$path.dirname)(e), s);\n}\nfunction $50261410344d920a$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $fnyYE$path.extname)(e), s = `${(0, $fnyYE$path.basename)(e, r)}${a}${r}`;\n return (0, $fnyYE$path.join)((0, $fnyYE$path.dirname)(e), s);\n}\nfunction $50261410344d920a$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $50261410344d920a$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $50261410344d920a$export$19c5468f88f6e968(e) {\n const a = (0, $fnyYE$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $50261410344d920a$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($f2mBC)))(e, a);\n}\nfunction $50261410344d920a$export$7d0573375890d05c(e, a) {\n const r = (0, $fnyYE$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $fnyYE$path.sep)) || r === (0, $fnyYE$path.resolve)(e));\n}\nvar $50261410344d920a$var$O = {}, $50261410344d920a$var$R = {};\n$50261410344d920a$var$a($50261410344d920a$var$R, \"name\", ()=>$50261410344d920a$export$a8ff84c12d48cfa6);\nvar $50261410344d920a$var$A = {};\n$50261410344d920a$var$a($50261410344d920a$var$A, \"normalizeTrim\", ()=>$50261410344d920a$export$873fead74fe2f1ff);\nvar $50261410344d920a$var$I = {};\n$50261410344d920a$var$a($50261410344d920a$var$I, \"addExeExt\", ()=>$50261410344d920a$export$2d20c564cade3c93);\nvar $50261410344d920a$var$T = {};\n$50261410344d920a$var$a($50261410344d920a$var$T, \"addNamePrefix\", ()=>$50261410344d920a$export$3e333f8cb13439c);\nvar $50261410344d920a$var$_ = {};\n$50261410344d920a$var$a($50261410344d920a$var$_, \"addNameSuffix\", ()=>$50261410344d920a$export$3b60a3e9bd1aef9d);\nvar $50261410344d920a$var$k = {};\n$50261410344d920a$var$a($50261410344d920a$var$k, \"addShExt\", ()=>$50261410344d920a$export$609be29b80b555e1);\nvar $50261410344d920a$var$M = {};\n$50261410344d920a$var$a($50261410344d920a$var$M, \"addShRelativePrefix\", ()=>$50261410344d920a$export$e1f23f8d3e53fe6);\nvar $50261410344d920a$var$W = {};\n$50261410344d920a$var$a($50261410344d920a$var$W, \"removeExt\", ()=>$50261410344d920a$export$19c5468f88f6e968);\nvar $50261410344d920a$var$q = {};\n$50261410344d920a$var$a($50261410344d920a$var$q, \"replaceExt\", ()=>$50261410344d920a$export$e9c34737ac8e53d2);\nvar $50261410344d920a$var$B = {};\n$50261410344d920a$var$a($50261410344d920a$var$B, \"isPathInside\", ()=>$50261410344d920a$export$7d0573375890d05c), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$R), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$A), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$I), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$T), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$_), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$k), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$M), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$W), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$q), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$B);\n\n});\nparcelRegister(\"hImoI\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $ce57eb70ef70e8ad$export$2e2bcd8739ae039);\nfunction $ce57eb70ef70e8ad$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"f2mBC\", function(module, exports) {\n\"use strict\";\n\nfunction $af2893f38bb1ffcd$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $fnyYE$path.basename(npath, $fnyYE$path.extname(npath)) + ext;\n var nFilepath = $fnyYE$path.join($fnyYE$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($af2893f38bb1ffcd$var$startsWithSingleDot(npath)) return \".\" + $fnyYE$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $af2893f38bb1ffcd$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $fnyYE$path.sep || first2chars === \"./\";\n}\nmodule.exports = $af2893f38bb1ffcd$var$replaceExt;\n\n});\n\n\nparcelRegister(\"jGHPG\", function(module, exports) {\n\"use strict\";\nvar $e553f0cadbd2b95a$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $e553f0cadbd2b95a$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $e553f0cadbd2b95a$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $e553f0cadbd2b95a$var$__createBinding(result, mod, k);\n }\n $e553f0cadbd2b95a$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $e553f0cadbd2b95a$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $e553f0cadbd2b95a$var$path = $e553f0cadbd2b95a$var$__importStar($fnyYE$path);\n\nconst $e553f0cadbd2b95a$var$ioUtil = $e553f0cadbd2b95a$var$__importStar((parcelRequire(\"akQoU\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $e553f0cadbd2b95a$var$cp(source, dest, options = {}) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $e553f0cadbd2b95a$var$readCopyOptions(options);\n const destStat = (yield $e553f0cadbd2b95a$var$ioUtil.exists(dest)) ? yield $e553f0cadbd2b95a$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $e553f0cadbd2b95a$var$path.join(dest, $e553f0cadbd2b95a$var$path.basename(source)) : dest;\n if (!(yield $e553f0cadbd2b95a$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $e553f0cadbd2b95a$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $e553f0cadbd2b95a$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($e553f0cadbd2b95a$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $e553f0cadbd2b95a$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $e553f0cadbd2b95a$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $e553f0cadbd2b95a$var$mv(source, dest, options = {}) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $e553f0cadbd2b95a$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $e553f0cadbd2b95a$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $e553f0cadbd2b95a$var$path.join(dest, $e553f0cadbd2b95a$var$path.basename(source));\n destExists = yield $e553f0cadbd2b95a$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $e553f0cadbd2b95a$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $e553f0cadbd2b95a$var$mkdirP($e553f0cadbd2b95a$var$path.dirname(dest));\n yield $e553f0cadbd2b95a$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $e553f0cadbd2b95a$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $e553f0cadbd2b95a$var$rmRF(inputPath) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $e553f0cadbd2b95a$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $e553f0cadbd2b95a$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $e553f0cadbd2b95a$var$mkdirP(fsPath) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n $fnyYE$assert.ok(fsPath, \"a path argument must be provided\");\n yield $e553f0cadbd2b95a$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $e553f0cadbd2b95a$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $e553f0cadbd2b95a$var$which(tool, check) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $e553f0cadbd2b95a$var$which(tool, false);\n if (!result) {\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $e553f0cadbd2b95a$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $e553f0cadbd2b95a$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $e553f0cadbd2b95a$var$findInPath(tool) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($e553f0cadbd2b95a$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($e553f0cadbd2b95a$var$ioUtil.isRooted(tool)) {\n const filePath = yield $e553f0cadbd2b95a$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($e553f0cadbd2b95a$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($e553f0cadbd2b95a$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $e553f0cadbd2b95a$var$ioUtil.tryGetExecutablePath($e553f0cadbd2b95a$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $e553f0cadbd2b95a$var$findInPath;\nfunction $e553f0cadbd2b95a$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $e553f0cadbd2b95a$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $e553f0cadbd2b95a$var$mkdirP(destDir);\n const files = yield $e553f0cadbd2b95a$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $e553f0cadbd2b95a$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $e553f0cadbd2b95a$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $e553f0cadbd2b95a$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $e553f0cadbd2b95a$var$ioUtil.chmod(destDir, (yield $e553f0cadbd2b95a$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $e553f0cadbd2b95a$var$copyFile(srcFile, destFile, force) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $e553f0cadbd2b95a$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $e553f0cadbd2b95a$var$ioUtil.lstat(destFile);\n yield $e553f0cadbd2b95a$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $e553f0cadbd2b95a$var$ioUtil.chmod(destFile, \"0666\");\n yield $e553f0cadbd2b95a$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $e553f0cadbd2b95a$var$ioUtil.readlink(srcFile);\n yield $e553f0cadbd2b95a$var$ioUtil.symlink(symlinkFull, destFile, $e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $e553f0cadbd2b95a$var$ioUtil.exists(destFile)) || force) yield $e553f0cadbd2b95a$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"akQoU\", function(module, exports) {\n\"use strict\";\nvar $78646b550a341622$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $78646b550a341622$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $78646b550a341622$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $78646b550a341622$var$__createBinding(result, mod, k);\n }\n $78646b550a341622$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $78646b550a341622$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $78646b550a341622$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $78646b550a341622$var$fs = $78646b550a341622$var$__importStar($fnyYE$fs);\n\nconst $78646b550a341622$var$path = $78646b550a341622$var$__importStar($fnyYE$path);\n$78646b550a341622$var$_a = $78646b550a341622$var$fs.promises, module.exports.chmod = $78646b550a341622$var$_a.chmod, module.exports.copyFile = $78646b550a341622$var$_a.copyFile, module.exports.lstat = $78646b550a341622$var$_a.lstat, module.exports.mkdir = $78646b550a341622$var$_a.mkdir, module.exports.open = $78646b550a341622$var$_a.open, module.exports.readdir = $78646b550a341622$var$_a.readdir, module.exports.readlink = $78646b550a341622$var$_a.readlink, module.exports.rename = $78646b550a341622$var$_a.rename, module.exports.rm = $78646b550a341622$var$_a.rm, module.exports.rmdir = $78646b550a341622$var$_a.rmdir, module.exports.stat = $78646b550a341622$var$_a.stat, module.exports.symlink = $78646b550a341622$var$_a.symlink, module.exports.unlink = $78646b550a341622$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $78646b550a341622$var$fs.constants.O_RDONLY;\nfunction $78646b550a341622$var$exists(fsPath) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $78646b550a341622$var$exists;\nfunction $78646b550a341622$var$isDirectory(fsPath, useStat = false) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $78646b550a341622$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $78646b550a341622$var$isRooted(p) {\n p = $78646b550a341622$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $78646b550a341622$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $78646b550a341622$var$tryGetExecutablePath(filePath, extensions) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $78646b550a341622$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($78646b550a341622$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $78646b550a341622$var$path.dirname(filePath);\n const upperName = $78646b550a341622$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $78646b550a341622$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($78646b550a341622$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $78646b550a341622$var$tryGetExecutablePath;\nfunction $78646b550a341622$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $78646b550a341622$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $78646b550a341622$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $78646b550a341622$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"aUW7f\", function(module, exports) {\n\"use strict\";\nvar $7f2c36ee4c1c2579$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $7f2c36ee4c1c2579$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $7f2c36ee4c1c2579$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $7f2c36ee4c1c2579$var$__createBinding(result, mod, k);\n }\n $7f2c36ee4c1c2579$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $7f2c36ee4c1c2579$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $7f2c36ee4c1c2579$var$semver = $7f2c36ee4c1c2579$var$__importStar((parcelRequire(\"1mmqj\")));\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nfunction $7f2c36ee4c1c2579$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $7f2c36ee4c1c2579$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $fnyYE$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $lUL8q.debug(`check ${version} satisfies ${versionSpec}`);\n if ($7f2c36ee4c1c2579$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $lUL8q.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $7f2c36ee4c1c2579$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $lUL8q.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $7f2c36ee4c1c2579$var$_findMatch;\nfunction $7f2c36ee4c1c2579$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $fnyYE$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $fnyYE$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $7f2c36ee4c1c2579$var$_getOsVersion;\nfunction $7f2c36ee4c1c2579$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($fnyYE$fs.existsSync(lsbReleaseFile)) contents = $fnyYE$fs.readFileSync(lsbReleaseFile).toString();\n else if ($fnyYE$fs.existsSync(osReleaseFile)) contents = $fnyYE$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $7f2c36ee4c1c2579$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"1mmqj\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"b4HqL\", function(module, exports) {\n\nvar $djHKf = parcelRequire(\"djHKf\");\n\nvar $CMWjw = parcelRequire(\"CMWjw\");\nfunction $8101c1dee09e6f84$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $djHKf)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $CMWjw(rnds);\n}\nmodule.exports = $8101c1dee09e6f84$var$v4;\n\n});\nparcelRegister(\"djHKf\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $fnyYE$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"CMWjw\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $074983196b00f550$var$byteToHex = [];\nfor(var $074983196b00f550$var$i = 0; $074983196b00f550$var$i < 256; ++$074983196b00f550$var$i)$074983196b00f550$var$byteToHex[$074983196b00f550$var$i] = ($074983196b00f550$var$i + 0x100).toString(16).substr(1);\nfunction $074983196b00f550$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $074983196b00f550$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $074983196b00f550$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"ioM8U\", function(module, exports) {\n\"use strict\";\nvar $d64fd000bc54e123$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d64fd000bc54e123$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d64fd000bc54e123$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d64fd000bc54e123$var$__createBinding(result, mod, k);\n }\n $d64fd000bc54e123$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d64fd000bc54e123$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $d64fd000bc54e123$var$tr = $d64fd000bc54e123$var$__importStar((parcelRequire(\"7Ee0q\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $d64fd000bc54e123$var$exec(commandLine, args, options) {\n return $d64fd000bc54e123$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $d64fd000bc54e123$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $d64fd000bc54e123$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $d64fd000bc54e123$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $d64fd000bc54e123$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $d64fd000bc54e123$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $fnyYE$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $fnyYE$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $d64fd000bc54e123$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $d64fd000bc54e123$var$getExecOutput;\n\n});\nparcelRegister(\"7Ee0q\", function(module, exports) {\n\"use strict\";\nvar $59172219f851c8e5$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $59172219f851c8e5$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $59172219f851c8e5$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $59172219f851c8e5$var$__createBinding(result, mod, k);\n }\n $59172219f851c8e5$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $59172219f851c8e5$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $59172219f851c8e5$var$os = $59172219f851c8e5$var$__importStar($fnyYE$os);\n\nconst $59172219f851c8e5$var$events = $59172219f851c8e5$var$__importStar($fnyYE$events);\n\nconst $59172219f851c8e5$var$child = $59172219f851c8e5$var$__importStar($fnyYE$child_process);\n\nconst $59172219f851c8e5$var$path = $59172219f851c8e5$var$__importStar($fnyYE$path);\n\nconst $59172219f851c8e5$var$io = $59172219f851c8e5$var$__importStar((parcelRequire(\"jGHPG\")));\n\nconst $59172219f851c8e5$var$ioUtil = $59172219f851c8e5$var$__importStar((parcelRequire(\"akQoU\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $59172219f851c8e5$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $59172219f851c8e5$var$ToolRunner extends $59172219f851c8e5$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($59172219f851c8e5$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $59172219f851c8e5$var$os.EOL.length);\n n = s.indexOf($59172219f851c8e5$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $59172219f851c8e5$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$59172219f851c8e5$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $59172219f851c8e5$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $59172219f851c8e5$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $59172219f851c8e5$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$59172219f851c8e5$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $59172219f851c8e5$var$os.EOL);\n const state = new $59172219f851c8e5$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $59172219f851c8e5$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $59172219f851c8e5$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $59172219f851c8e5$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $59172219f851c8e5$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $59172219f851c8e5$var$argStringToArray;\nclass $59172219f851c8e5$var$ExecState extends $59172219f851c8e5$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $fnyYE$timers.setTimeout($59172219f851c8e5$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"kqI8i\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.f93740c6.js\")).then(()=>parcelRequire(\"i1n7v\"));\n\n});\n\nparcelRegister(\"9KKJA\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $719ca9645c2503ac$export$1059c6e7d2ce5669, (v) => $719ca9645c2503ac$export$1059c6e7d2ce5669 = v);\nvar $719ca9645c2503ac$export$181392475aa39887;\nvar $719ca9645c2503ac$export$ba13e0e2f19e61a1;\nvar $719ca9645c2503ac$export$1059c6e7d2ce5669;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\n\nvar $1cH1m = parcelRequire(\"1cH1m\");\n\nvar $hPwcE = parcelRequire(\"hPwcE\");\n\nvar $4t75f = parcelRequire(\"4t75f\");\nvar $719ca9645c2503ac$var$DOMImplementation = $1cH1m.DOMImplementation;\nvar $719ca9645c2503ac$var$NAMESPACE = $4u2Un.NAMESPACE;\nvar $719ca9645c2503ac$var$ParseError = $4t75f.ParseError;\nvar $719ca9645c2503ac$var$XMLReader = $4t75f.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $719ca9645c2503ac$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $719ca9645c2503ac$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$719ca9645c2503ac$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $719ca9645c2503ac$var$XMLReader();\n var domBuilder = options.domBuilder || new $719ca9645c2503ac$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $hPwcE.HTML_ENTITIES : $hPwcE.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $719ca9645c2503ac$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $719ca9645c2503ac$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $719ca9645c2503ac$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $719ca9645c2503ac$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $719ca9645c2503ac$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $719ca9645c2503ac$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $719ca9645c2503ac$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $719ca9645c2503ac$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $719ca9645c2503ac$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $719ca9645c2503ac$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $719ca9645c2503ac$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $719ca9645c2503ac$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $719ca9645c2503ac$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $719ca9645c2503ac$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $719ca9645c2503ac$var$position(this.locator, ins);\n $719ca9645c2503ac$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $719ca9645c2503ac$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $719ca9645c2503ac$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $719ca9645c2503ac$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $719ca9645c2503ac$var$position(this.locator, comm);\n $719ca9645c2503ac$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $719ca9645c2503ac$var$position(this.locator, dt);\n $719ca9645c2503ac$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $719ca9645c2503ac$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $719ca9645c2503ac$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $719ca9645c2503ac$var$ParseError(error, this.locator);\n }\n};\nfunction $719ca9645c2503ac$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $719ca9645c2503ac$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $719ca9645c2503ac$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $719ca9645c2503ac$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$719ca9645c2503ac$export$181392475aa39887 = $719ca9645c2503ac$var$DOMHandler;\n$719ca9645c2503ac$export$ba13e0e2f19e61a1 = $719ca9645c2503ac$var$normalizeLineEndings;\n$719ca9645c2503ac$export$1059c6e7d2ce5669 = $719ca9645c2503ac$var$DOMParser;\n\n});\nparcelRegister(\"4u2Un\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $343c384d805ce09c$export$71aa6c912b956294, (v) => $343c384d805ce09c$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $343c384d805ce09c$export$792f3d81ea979f55, (v) => $343c384d805ce09c$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $343c384d805ce09c$export$6aad947bda0f3f46, (v) => $343c384d805ce09c$export$6aad947bda0f3f46 = v);\nvar $343c384d805ce09c$export$e6e34fd1f2686227;\nvar $343c384d805ce09c$export$71aa6c912b956294;\nvar $343c384d805ce09c$export$792f3d81ea979f55;\nvar $343c384d805ce09c$export$c6cb9dd1e3ada1aa;\nvar $343c384d805ce09c$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $343c384d805ce09c$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $343c384d805ce09c$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $343c384d805ce09c$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $343c384d805ce09c$var$MIME_TYPE = $343c384d805ce09c$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $343c384d805ce09c$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $343c384d805ce09c$var$NAMESPACE = $343c384d805ce09c$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $343c384d805ce09c$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$343c384d805ce09c$export$e6e34fd1f2686227 = $343c384d805ce09c$var$assign;\n$343c384d805ce09c$export$71aa6c912b956294 = $343c384d805ce09c$var$find;\n$343c384d805ce09c$export$792f3d81ea979f55 = $343c384d805ce09c$var$freeze;\n$343c384d805ce09c$export$c6cb9dd1e3ada1aa = $343c384d805ce09c$var$MIME_TYPE;\n$343c384d805ce09c$export$6aad947bda0f3f46 = $343c384d805ce09c$var$NAMESPACE;\n\n});\n\nparcelRegister(\"1cH1m\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $0e08487d194d8d81$export$455426655eab1d48, (v) => $0e08487d194d8d81$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $0e08487d194d8d81$export$64f0bed4ae6f0f24, (v) => $0e08487d194d8d81$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $0e08487d194d8d81$export$d1d99cf900472499;\nvar $0e08487d194d8d81$export$fe58bcf938607f6a;\nvar $0e08487d194d8d81$export$455426655eab1d48;\nvar $0e08487d194d8d81$export$db77ccec0bb4ccac;\nvar $0e08487d194d8d81$export$85c928794f8d04d4;\nvar $0e08487d194d8d81$export$79b41aa5d56abdff;\nvar $0e08487d194d8d81$export$64f0bed4ae6f0f24;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $0e08487d194d8d81$var$find = $4u2Un.find;\nvar $0e08487d194d8d81$var$NAMESPACE = $4u2Un.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $0e08487d194d8d81$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($0e08487d194d8d81$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $0e08487d194d8d81$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $0e08487d194d8d81$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $0e08487d194d8d81$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($0e08487d194d8d81$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $0e08487d194d8d81$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $0e08487d194d8d81$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $0e08487d194d8d81$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $0e08487d194d8d81$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $0e08487d194d8d81$var$NodeType = {};\nvar $0e08487d194d8d81$var$ELEMENT_NODE = $0e08487d194d8d81$var$NodeType.ELEMENT_NODE = 1;\nvar $0e08487d194d8d81$var$ATTRIBUTE_NODE = $0e08487d194d8d81$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $0e08487d194d8d81$var$TEXT_NODE = $0e08487d194d8d81$var$NodeType.TEXT_NODE = 3;\nvar $0e08487d194d8d81$var$CDATA_SECTION_NODE = $0e08487d194d8d81$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE = $0e08487d194d8d81$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $0e08487d194d8d81$var$ENTITY_NODE = $0e08487d194d8d81$var$NodeType.ENTITY_NODE = 6;\nvar $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE = $0e08487d194d8d81$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $0e08487d194d8d81$var$COMMENT_NODE = $0e08487d194d8d81$var$NodeType.COMMENT_NODE = 8;\nvar $0e08487d194d8d81$var$DOCUMENT_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_NODE = 9;\nvar $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $0e08487d194d8d81$var$NOTATION_NODE = $0e08487d194d8d81$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $0e08487d194d8d81$var$ExceptionCode = {};\nvar $0e08487d194d8d81$var$ExceptionMessage = {};\nvar $0e08487d194d8d81$var$INDEX_SIZE_ERR = $0e08487d194d8d81$var$ExceptionCode.INDEX_SIZE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $0e08487d194d8d81$var$DOMSTRING_SIZE_ERR = $0e08487d194d8d81$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR = $0e08487d194d8d81$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($0e08487d194d8d81$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $0e08487d194d8d81$var$WRONG_DOCUMENT_ERR = $0e08487d194d8d81$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($0e08487d194d8d81$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $0e08487d194d8d81$var$INVALID_CHARACTER_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_CHARACTER_ERR = ($0e08487d194d8d81$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $0e08487d194d8d81$var$NO_DATA_ALLOWED_ERR = $0e08487d194d8d81$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $0e08487d194d8d81$var$NO_MODIFICATION_ALLOWED_ERR = $0e08487d194d8d81$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $0e08487d194d8d81$var$NOT_FOUND_ERR = $0e08487d194d8d81$var$ExceptionCode.NOT_FOUND_ERR = ($0e08487d194d8d81$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $0e08487d194d8d81$var$NOT_SUPPORTED_ERR = $0e08487d194d8d81$var$ExceptionCode.NOT_SUPPORTED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR = $0e08487d194d8d81$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $0e08487d194d8d81$var$INVALID_STATE_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_STATE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $0e08487d194d8d81$var$SYNTAX_ERR = $0e08487d194d8d81$var$ExceptionCode.SYNTAX_ERR = ($0e08487d194d8d81$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $0e08487d194d8d81$var$INVALID_MODIFICATION_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($0e08487d194d8d81$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $0e08487d194d8d81$var$NAMESPACE_ERR = $0e08487d194d8d81$var$ExceptionCode.NAMESPACE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $0e08487d194d8d81$var$INVALID_ACCESS_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_ACCESS_ERR = ($0e08487d194d8d81$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $0e08487d194d8d81$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $0e08487d194d8d81$var$ExceptionMessage[code]);\n this.message = $0e08487d194d8d81$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $0e08487d194d8d81$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$0e08487d194d8d81$var$DOMException.prototype = Error.prototype;\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$ExceptionCode, $0e08487d194d8d81$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $0e08487d194d8d81$var$NodeList() {}\n$0e08487d194d8d81$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$0e08487d194d8d81$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $0e08487d194d8d81$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $0e08487d194d8d81$var$_updateLiveList(this);\n}\nfunction $0e08487d194d8d81$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $0e08487d194d8d81$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $0e08487d194d8d81$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$0e08487d194d8d81$var$LiveNodeList.prototype.item = function(i) {\n $0e08487d194d8d81$var$_updateLiveList(this);\n return this[i] || null;\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$LiveNodeList, $0e08487d194d8d81$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $0e08487d194d8d81$var$NamedNodeMap() {}\nfunction $0e08487d194d8d81$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $0e08487d194d8d81$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$0e08487d194d8d81$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, oldAttr);\n $0e08487d194d8d81$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $0e08487d194d8d81$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $0e08487d194d8d81$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$0e08487d194d8d81$var$NamedNodeMap.prototype = {\n length: 0,\n item: $0e08487d194d8d81$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $0e08487d194d8d81$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $0e08487d194d8d81$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $0e08487d194d8d81$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $0e08487d194d8d81$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $0e08487d194d8d81$var$DOMImplementation() {}\n$0e08487d194d8d81$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $0e08487d194d8d81$var$Document();\n doc.implementation = this;\n doc.childNodes = new $0e08487d194d8d81$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $0e08487d194d8d81$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $0e08487d194d8d81$var$Node() {}\n$0e08487d194d8d81$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $0e08487d194d8d81$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $0e08487d194d8d81$var$_insertBefore(this, newChild, oldChild, $0e08487d194d8d81$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $0e08487d194d8d81$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $0e08487d194d8d81$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $0e08487d194d8d81$var$TEXT_NODE && child.nodeType == $0e08487d194d8d81$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $0e08487d194d8d81$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $0e08487d194d8d81$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $0e08487d194d8d81$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$NodeType, $0e08487d194d8d81$var$Node);\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$NodeType, $0e08487d194d8d81$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $0e08487d194d8d81$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($0e08487d194d8d81$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $0e08487d194d8d81$var$Document() {\n this.ownerDocument = this;\n}\nfunction $0e08487d194d8d81$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $0e08487d194d8d81$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $0e08487d194d8d81$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $0e08487d194d8d81$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $0e08487d194d8d81$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $0e08487d194d8d81$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$hasInsertableNodeType(node) {\n return node && ($0e08487d194d8d81$var$isElementNode(node) || $0e08487d194d8d81$var$isTextNode(node) || $0e08487d194d8d81$var$isDocTypeNode(node) || node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.COMMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isDocTypeNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isElementNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isTextNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode) || $0e08487d194d8d81$var$isDocTypeNode(child)) return false;\n var docTypeNode = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $0e08487d194d8d81$var$isElementNode(node) && node !== child;\n }\n if ($0e08487d194d8d81$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$0e08487d194d8d81$var$hasValidParentNodeType(parent)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$0e08487d194d8d81$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $0e08487d194d8d81$var$isDocTypeNode(node) && parent.nodeType !== $0e08487d194d8d81$var$Node.DOCUMENT_NODE) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($0e08487d194d8d81$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $0e08487d194d8d81$var$find(nodeChildNodes, $0e08487d194d8d81$var$isTextNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$0e08487d194d8d81$var$isElementInsertionPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($0e08487d194d8d81$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$0e08487d194d8d81$var$isElementInsertionPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($0e08487d194d8d81$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($0e08487d194d8d81$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $0e08487d194d8d81$var$find(nodeChildNodes, $0e08487d194d8d81$var$isTextNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$0e08487d194d8d81$var$isElementReplacementPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($0e08487d194d8d81$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$0e08487d194d8d81$var$isElementReplacementPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($0e08487d194d8d81$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $0e08487d194d8d81$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($0e08487d194d8d81$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $0e08487d194d8d81$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $0e08487d194d8d81$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $0e08487d194d8d81$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $0e08487d194d8d81$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $0e08487d194d8d81$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$0e08487d194d8d81$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $0e08487d194d8d81$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $0e08487d194d8d81$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $0e08487d194d8d81$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $0e08487d194d8d81$var$_insertBefore(this, newChild, oldChild, $0e08487d194d8d81$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($0e08487d194d8d81$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $0e08487d194d8d81$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $0e08487d194d8d81$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $0e08487d194d8d81$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $0e08487d194d8d81$var$toOrderedSet(classNames);\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $0e08487d194d8d81$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $0e08487d194d8d81$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($0e08487d194d8d81$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $0e08487d194d8d81$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n var attrs = node.attributes = new $0e08487d194d8d81$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $0e08487d194d8d81$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $0e08487d194d8d81$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $0e08487d194d8d81$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $0e08487d194d8d81$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $0e08487d194d8d81$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $0e08487d194d8d81$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $0e08487d194d8d81$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $0e08487d194d8d81$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $0e08487d194d8d81$var$NamedNodeMap();\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $0e08487d194d8d81$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Document, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Element() {\n this._nsMap = {};\n}\n$0e08487d194d8d81$var$Element.prototype = {\n nodeType: $0e08487d194d8d81$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $0e08487d194d8d81$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n $0e08487d194d8d81$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $0e08487d194d8d81$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n $0e08487d194d8d81$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$0e08487d194d8d81$var$Document.prototype.getElementsByTagName = $0e08487d194d8d81$var$Element.prototype.getElementsByTagName;\n$0e08487d194d8d81$var$Document.prototype.getElementsByTagNameNS = $0e08487d194d8d81$var$Element.prototype.getElementsByTagNameNS;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Element, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Attr() {}\n$0e08487d194d8d81$var$Attr.prototype.nodeType = $0e08487d194d8d81$var$ATTRIBUTE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Attr, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$CharacterData() {}\n$0e08487d194d8d81$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($0e08487d194d8d81$var$ExceptionMessage[$0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$CharacterData, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Text() {}\n$0e08487d194d8d81$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $0e08487d194d8d81$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Text, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$Comment() {}\n$0e08487d194d8d81$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $0e08487d194d8d81$var$COMMENT_NODE\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Comment, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$CDATASection() {}\n$0e08487d194d8d81$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $0e08487d194d8d81$var$CDATA_SECTION_NODE\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$CDATASection, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$DocumentType() {}\n$0e08487d194d8d81$var$DocumentType.prototype.nodeType = $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$DocumentType, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Notation() {}\n$0e08487d194d8d81$var$Notation.prototype.nodeType = $0e08487d194d8d81$var$NOTATION_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Notation, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Entity() {}\n$0e08487d194d8d81$var$Entity.prototype.nodeType = $0e08487d194d8d81$var$ENTITY_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Entity, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$EntityReference() {}\n$0e08487d194d8d81$var$EntityReference.prototype.nodeType = $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$EntityReference, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$DocumentFragment() {}\n$0e08487d194d8d81$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$0e08487d194d8d81$var$DocumentFragment.prototype.nodeType = $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$DocumentFragment, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$ProcessingInstruction() {}\n$0e08487d194d8d81$var$ProcessingInstruction.prototype.nodeType = $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$ProcessingInstruction, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$XMLSerializer() {}\n$0e08487d194d8d81$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $0e08487d194d8d81$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$0e08487d194d8d81$var$Node.prototype.toString = $0e08487d194d8d81$var$nodeSerializeToString;\nfunction $0e08487d194d8d81$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $0e08487d194d8d81$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $0e08487d194d8d81$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $0e08487d194d8d81$var$NAMESPACE.XML || uri === $0e08487d194d8d81$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $0e08487d194d8d81$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $0e08487d194d8d81$var$_xmlEncoder), '\"');\n}\nfunction $0e08487d194d8d81$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $0e08487d194d8d81$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $0e08487d194d8d81$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($0e08487d194d8d81$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $0e08487d194d8d81$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $0e08487d194d8d81$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $0e08487d194d8d81$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $0e08487d194d8d81$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $0e08487d194d8d81$var$DOCUMENT_NODE:\n case $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $0e08487d194d8d81$var$ATTRIBUTE_NODE:\n return $0e08487d194d8d81$var$addSerializedAttribute(buf, node.name, node.value);\n case $0e08487d194d8d81$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $0e08487d194d8d81$var$_xmlEncoder));\n case $0e08487d194d8d81$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$COMMENT_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $0e08487d194d8d81$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $0e08487d194d8d81$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $cfb02df52129631c$export$91f0e5ff03dc84f, (v) => $cfb02df52129631c$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $cfb02df52129631c$export$b7e4d4631df36afa, (v) => $cfb02df52129631c$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $cfb02df52129631c$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $cfb02df52129631c$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $cfb02df52129631c$export$79451380caed3f98;\n\"use strict\";\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $cfb02df52129631c$require$freeze = $4u2Un.freeze;\n$cfb02df52129631c$export$91f0e5ff03dc84f = $cfb02df52129631c$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$cfb02df52129631c$export$b7e4d4631df36afa = $cfb02df52129631c$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$cfb02df52129631c$export$79451380caed3f98 = $cfb02df52129631c$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"4t75f\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $340f5d84067e3062$export$ccbc9f9f018333e9, (v) => $340f5d84067e3062$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $340f5d84067e3062$export$f9c837a54db411d, (v) => $340f5d84067e3062$export$f9c837a54db411d = v);\nvar $340f5d84067e3062$export$ccbc9f9f018333e9;\nvar $340f5d84067e3062$export$f9c837a54db411d;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $340f5d84067e3062$require$NAMESPACE = $4u2Un.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $340f5d84067e3062$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $340f5d84067e3062$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $340f5d84067e3062$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $340f5d84067e3062$var$tagNamePattern = new RegExp(\"^\" + $340f5d84067e3062$var$nameStartChar.source + $340f5d84067e3062$var$nameChar.source + \"*(?::\" + $340f5d84067e3062$var$nameStartChar.source + $340f5d84067e3062$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $340f5d84067e3062$var$S_TAG = 0; //tag name offerring\nvar $340f5d84067e3062$var$S_ATTR = 1; //attr name offerring\nvar $340f5d84067e3062$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $340f5d84067e3062$var$S_EQ = 3; //=space?\nvar $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $340f5d84067e3062$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $340f5d84067e3062$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $340f5d84067e3062$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $340f5d84067e3062$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $340f5d84067e3062$var$ParseError);\n}\n$340f5d84067e3062$var$ParseError.prototype = new Error();\n$340f5d84067e3062$var$ParseError.prototype.name = $340f5d84067e3062$var$ParseError.name;\nfunction $340f5d84067e3062$var$XMLReader() {}\n$340f5d84067e3062$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $340f5d84067e3062$var$_copy(defaultNSMap, defaultNSMap = {});\n $340f5d84067e3062$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $340f5d84067e3062$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $340f5d84067e3062$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $340f5d84067e3062$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $340f5d84067e3062$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $340f5d84067e3062$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $340f5d84067e3062$var$S_EQ;\n } else if (s === $340f5d84067e3062$var$S_ATTR_SPACE) s = $340f5d84067e3062$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $340f5d84067e3062$var$S_EQ || s === $340f5d84067e3062$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $340f5d84067e3062$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $340f5d84067e3062$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $340f5d84067e3062$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $340f5d84067e3062$var$S_ATTR_END:\n case $340f5d84067e3062$var$S_TAG_SPACE:\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n s = $340f5d84067e3062$var$S_TAG_CLOSE;\n el.closed = true;\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n case $340f5d84067e3062$var$S_ATTR:\n break;\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $340f5d84067e3062$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $340f5d84067e3062$var$S_ATTR_END:\n case $340f5d84067e3062$var$S_TAG_SPACE:\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n break; //normal\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n case $340f5d84067e3062$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n if (s === $340f5d84067e3062$var$S_ATTR_SPACE) value = attrName;\n if (s == $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$340f5d84067e3062$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $340f5d84067e3062$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $340f5d84067e3062$var$S_TAG_SPACE;\n break;\n case $340f5d84067e3062$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $340f5d84067e3062$var$S_ATTR_SPACE;\n break;\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $340f5d84067e3062$var$S_ATTR_END:\n s = $340f5d84067e3062$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$340f5d84067e3062$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $340f5d84067e3062$var$S_ATTR;\n break;\n case $340f5d84067e3062$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $340f5d84067e3062$var$S_TAG_SPACE:\n s = $340f5d84067e3062$var$S_ATTR;\n start = p;\n break;\n case $340f5d84067e3062$var$S_EQ:\n s = $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $340f5d84067e3062$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $340f5d84067e3062$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $340f5d84067e3062$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $340f5d84067e3062$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $340f5d84067e3062$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $340f5d84067e3062$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.f93740c6.js\"))).then(() => parcelRequire('i1n7v'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $2e89c8759dc5e770$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceTilde(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.TILDELOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $dc2zw(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($2e89c8759dc5e770$var$isX(M)) ret = \"\";\n else if ($2e89c8759dc5e770$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $dc2zw(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $dc2zw(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $2e89c8759dc5e770$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceCaret(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceCaret = (comp, options)=>{\n $dc2zw(\"caret\", comp, options);\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.CARETLOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $dc2zw(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($2e89c8759dc5e770$var$isX(M)) ret = \"\";\n else if ($2e89c8759dc5e770$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $dc2zw(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $dc2zw(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $dc2zw(\"caret return\", ret);\n return ret;\n });\n};\nconst $2e89c8759dc5e770$var$replaceXRanges = (comp, options)=>{\n $dc2zw(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$2e89c8759dc5e770$var$replaceXRange(c, options)).join(\" \");\n};\nconst $2e89c8759dc5e770$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.XRANGELOOSE] : $2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $dc2zw(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $2e89c8759dc5e770$var$isX(M);\n const xm = xM || $2e89c8759dc5e770$var$isX(m);\n const xp = xm || $2e89c8759dc5e770$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $dc2zw(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $2e89c8759dc5e770$var$replaceStars = (comp, options)=>{\n $dc2zw(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($2e89c8759dc5e770$require$re[$2e89c8759dc5e770$require$t.STAR], \"\");\n};\nconst $2e89c8759dc5e770$var$replaceGTE0 = (comp, options)=>{\n $dc2zw(\"replaceGTE0\", comp, options);\n return comp.trim().replace($2e89c8759dc5e770$require$re[options.includePrerelease ? $2e89c8759dc5e770$require$t.GTE0PRE : $2e89c8759dc5e770$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $2e89c8759dc5e770$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($2e89c8759dc5e770$var$isX(fM)) from = \"\";\n else if ($2e89c8759dc5e770$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($2e89c8759dc5e770$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($2e89c8759dc5e770$var$isX(tM)) to = \"\";\n else if ($2e89c8759dc5e770$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($2e89c8759dc5e770$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $2e89c8759dc5e770$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $dc2zw(set[i].semver);\n if (set[i].semver === $hf4vi.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"tPjHU\", function(module, exports) {\n\"use strict\";\n\nvar $8VtHa = parcelRequire(\"8VtHa\");\nconst $059a8401eb22b5e6$var$MAX = Symbol(\"max\");\nconst $059a8401eb22b5e6$var$LENGTH = Symbol(\"length\");\nconst $059a8401eb22b5e6$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $059a8401eb22b5e6$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $059a8401eb22b5e6$var$MAX_AGE = Symbol(\"maxAge\");\nconst $059a8401eb22b5e6$var$DISPOSE = Symbol(\"dispose\");\nconst $059a8401eb22b5e6$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $059a8401eb22b5e6$var$LRU_LIST = Symbol(\"lruList\");\nconst $059a8401eb22b5e6$var$CACHE = Symbol(\"cache\");\nconst $059a8401eb22b5e6$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $059a8401eb22b5e6$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $059a8401eb22b5e6$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$059a8401eb22b5e6$var$MAX] = options.max || Infinity;\n const lc = options.length || $059a8401eb22b5e6$var$naiveLength;\n this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $059a8401eb22b5e6$var$naiveLength : lc;\n this[$059a8401eb22b5e6$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$059a8401eb22b5e6$var$MAX_AGE] = options.maxAge || 0;\n this[$059a8401eb22b5e6$var$DISPOSE] = options.dispose;\n this[$059a8401eb22b5e6$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$059a8401eb22b5e6$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$059a8401eb22b5e6$var$MAX] = mL || Infinity;\n $059a8401eb22b5e6$var$trim(this);\n }\n get max() {\n return this[$059a8401eb22b5e6$var$MAX];\n }\n set allowStale(allowStale) {\n this[$059a8401eb22b5e6$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$059a8401eb22b5e6$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$059a8401eb22b5e6$var$MAX_AGE] = mA;\n $059a8401eb22b5e6$var$trim(this);\n }\n get maxAge() {\n return this[$059a8401eb22b5e6$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $059a8401eb22b5e6$var$naiveLength;\n if (lC !== this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR]) {\n this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR] = lC;\n this[$059a8401eb22b5e6$var$LENGTH] = 0;\n this[$059a8401eb22b5e6$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$059a8401eb22b5e6$var$LENGTH] += hit.length;\n });\n }\n $059a8401eb22b5e6$var$trim(this);\n }\n get lengthCalculator() {\n return this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$059a8401eb22b5e6$var$LENGTH];\n }\n get itemCount() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$059a8401eb22b5e6$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $059a8401eb22b5e6$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$059a8401eb22b5e6$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $059a8401eb22b5e6$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$059a8401eb22b5e6$var$DISPOSE] && this[$059a8401eb22b5e6$var$LRU_LIST] && this[$059a8401eb22b5e6$var$LRU_LIST].length) this[$059a8401eb22b5e6$var$LRU_LIST].forEach((hit)=>this[$059a8401eb22b5e6$var$DISPOSE](hit.key, hit.value));\n this[$059a8401eb22b5e6$var$CACHE] = new Map() // hash of items by key\n ;\n this[$059a8401eb22b5e6$var$LRU_LIST] = new $8VtHa() // list of items in order of use recency\n ;\n this[$059a8401eb22b5e6$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$059a8401eb22b5e6$var$LRU_LIST].map((hit)=>$059a8401eb22b5e6$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$059a8401eb22b5e6$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$059a8401eb22b5e6$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$059a8401eb22b5e6$var$LENGTH_CALCULATOR](value, key);\n if (this[$059a8401eb22b5e6$var$CACHE].has(key)) {\n if (len > this[$059a8401eb22b5e6$var$MAX]) {\n $059a8401eb22b5e6$var$del(this, this[$059a8401eb22b5e6$var$CACHE].get(key));\n return false;\n }\n const node = this[$059a8401eb22b5e6$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$059a8401eb22b5e6$var$DISPOSE]) {\n if (!this[$059a8401eb22b5e6$var$NO_DISPOSE_ON_SET]) this[$059a8401eb22b5e6$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$059a8401eb22b5e6$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $059a8401eb22b5e6$var$trim(this);\n return true;\n }\n const hit = new $059a8401eb22b5e6$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$059a8401eb22b5e6$var$MAX]) {\n if (this[$059a8401eb22b5e6$var$DISPOSE]) this[$059a8401eb22b5e6$var$DISPOSE](key, value);\n return false;\n }\n this[$059a8401eb22b5e6$var$LENGTH] += hit.length;\n this[$059a8401eb22b5e6$var$LRU_LIST].unshift(hit);\n this[$059a8401eb22b5e6$var$CACHE].set(key, this[$059a8401eb22b5e6$var$LRU_LIST].head);\n $059a8401eb22b5e6$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$059a8401eb22b5e6$var$CACHE].has(key)) return false;\n const hit = this[$059a8401eb22b5e6$var$CACHE].get(key).value;\n return !$059a8401eb22b5e6$var$isStale(this, hit);\n }\n get(key) {\n return $059a8401eb22b5e6$var$get(this, key, true);\n }\n peek(key) {\n return $059a8401eb22b5e6$var$get(this, key, false);\n }\n pop() {\n const node = this[$059a8401eb22b5e6$var$LRU_LIST].tail;\n if (!node) return null;\n $059a8401eb22b5e6$var$del(this, node);\n return node.value;\n }\n del(key) {\n $059a8401eb22b5e6$var$del(this, this[$059a8401eb22b5e6$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$059a8401eb22b5e6$var$CACHE].forEach((value, key)=>$059a8401eb22b5e6$var$get(this, key, false));\n }\n}\nconst $059a8401eb22b5e6$var$get = (self, key, doUse)=>{\n const node = self[$059a8401eb22b5e6$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($059a8401eb22b5e6$var$isStale(self, hit)) {\n $059a8401eb22b5e6$var$del(self, node);\n if (!self[$059a8401eb22b5e6$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$059a8401eb22b5e6$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$059a8401eb22b5e6$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $059a8401eb22b5e6$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$059a8401eb22b5e6$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$059a8401eb22b5e6$var$MAX_AGE] && diff > self[$059a8401eb22b5e6$var$MAX_AGE];\n};\nconst $059a8401eb22b5e6$var$trim = (self)=>{\n if (self[$059a8401eb22b5e6$var$LENGTH] > self[$059a8401eb22b5e6$var$MAX]) for(let walker = self[$059a8401eb22b5e6$var$LRU_LIST].tail; self[$059a8401eb22b5e6$var$LENGTH] > self[$059a8401eb22b5e6$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $059a8401eb22b5e6$var$del(self, walker);\n walker = prev;\n }\n};\nconst $059a8401eb22b5e6$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$059a8401eb22b5e6$var$DISPOSE]) self[$059a8401eb22b5e6$var$DISPOSE](hit.key, hit.value);\n self[$059a8401eb22b5e6$var$LENGTH] -= hit.length;\n self[$059a8401eb22b5e6$var$CACHE].delete(hit.key);\n self[$059a8401eb22b5e6$var$LRU_LIST].removeNode(node);\n }\n};\nclass $059a8401eb22b5e6$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $059a8401eb22b5e6$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($059a8401eb22b5e6$var$isStale(self, hit)) {\n $059a8401eb22b5e6$var$del(self, node);\n if (!self[$059a8401eb22b5e6$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $059a8401eb22b5e6$var$LRUCache;\n\n});\nparcelRegister(\"8VtHa\", function(module, exports) {\n\"use strict\";\nmodule.exports = $67faae78dc454350$var$Yallist;\n$67faae78dc454350$var$Yallist.Node = $67faae78dc454350$var$Node;\n$67faae78dc454350$var$Yallist.create = $67faae78dc454350$var$Yallist;\nfunction $67faae78dc454350$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $67faae78dc454350$var$Yallist)) self = new $67faae78dc454350$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$67faae78dc454350$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$67faae78dc454350$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$67faae78dc454350$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$67faae78dc454350$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$67faae78dc454350$var$push(this, arguments[i]);\n return this.length;\n};\n$67faae78dc454350$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$67faae78dc454350$var$unshift(this, arguments[i]);\n return this.length;\n};\n$67faae78dc454350$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$67faae78dc454350$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$67faae78dc454350$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$67faae78dc454350$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$67faae78dc454350$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $67faae78dc454350$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $67faae78dc454350$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$67faae78dc454350$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$67faae78dc454350$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$67faae78dc454350$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$67faae78dc454350$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$67faae78dc454350$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $67faae78dc454350$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $67faae78dc454350$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $67faae78dc454350$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$67faae78dc454350$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $67faae78dc454350$var$insert(self, node, value) {\n var inserted = node === self.head ? new $67faae78dc454350$var$Node(value, null, node, self) : new $67faae78dc454350$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $67faae78dc454350$var$push(self, item) {\n self.tail = new $67faae78dc454350$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $67faae78dc454350$var$unshift(self, item) {\n self.head = new $67faae78dc454350$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $67faae78dc454350$var$Node(value, prev, next, list) {\n if (!(this instanceof $67faae78dc454350$var$Node)) return new $67faae78dc454350$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"iDH6t\"))($67faae78dc454350$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"iDH6t\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"h0AH5\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $c61ee66e825b833b$var$satisfies = (version, range, options)=>{\n try {\n range = new $3ZIKH(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $c61ee66e825b833b$var$satisfies;\n\n});\n\nparcelRegister(\"iGUY3\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n// Mostly just for testing and legacy API reasons\nconst $d9b856cbb52d7485$var$toComparators = (range, options)=>new $3ZIKH(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $d9b856cbb52d7485$var$toComparators;\n\n});\n\nparcelRegister(\"jpWIo\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $e22de5b256aee447$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $3ZIKH(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $bmedX(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $e22de5b256aee447$var$maxSatisfying;\n\n});\n\nparcelRegister(\"dJyj1\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $9ffa16baebb6172d$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $3ZIKH(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $bmedX(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $9ffa16baebb6172d$var$minSatisfying;\n\n});\n\nparcelRegister(\"9inVR\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\nconst $6c485befcc0d8d86$var$minVersion = (range, loose)=>{\n range = new $3ZIKH(range, loose);\n let minver = new $bmedX(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $bmedX(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $bmedX(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cmfRl(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cmfRl(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $6c485befcc0d8d86$var$minVersion;\n\n});\n\nparcelRegister(\"5wxvo\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $4059ee5dc358195f$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $3ZIKH(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $4059ee5dc358195f$var$validRange;\n\n});\n\nparcelRegister(\"16OoL\", function(module, exports) {\n\nvar $bmedX = parcelRequire(\"bmedX\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\nconst { ANY: $0ced720887f8e111$var$ANY } = $hf4vi;\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $cmfRl = parcelRequire(\"cmfRl\");\n\nvar $9cmQV = parcelRequire(\"9cmQV\");\n\nvar $eekMY = parcelRequire(\"eekMY\");\n\nvar $8dSFQ = parcelRequire(\"8dSFQ\");\nconst $0ced720887f8e111$var$outside = (version, range, hilo, options)=>{\n version = new $bmedX(version, options);\n range = new $3ZIKH(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cmfRl;\n ltefn = $eekMY;\n ltfn = $9cmQV;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $9cmQV;\n ltefn = $8dSFQ;\n ltfn = $cmfRl;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($h0AH5(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $0ced720887f8e111$var$ANY) comparator = new $hf4vi(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $0ced720887f8e111$var$outside;\n\n});\n\nparcelRegister(\"aNIaY\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $16OoL = parcelRequire(\"16OoL\");\nconst $7dd0bf66272f2aa5$var$gtr = (version, range, options)=>$16OoL(version, range, \">\", options);\nmodule.exports = $7dd0bf66272f2aa5$var$gtr;\n\n});\n\nparcelRegister(\"huA22\", function(module, exports) {\n\nvar $16OoL = parcelRequire(\"16OoL\");\n// Determine if version is less than all the versions possible in the range\nconst $cbc1302becc6ade2$var$ltr = (version, range, options)=>$16OoL(version, range, \"<\", options);\nmodule.exports = $cbc1302becc6ade2$var$ltr;\n\n});\n\nparcelRegister(\"hRcmf\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\nconst $d000f8ee70e292e2$var$intersects = (r1, r2, options)=>{\n r1 = new $3ZIKH(r1, options);\n r2 = new $3ZIKH(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $d000f8ee70e292e2$var$intersects;\n\n});\n\nparcelRegister(\"fnXJa\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$dKY2K(a, b, options));\n for (const version of v){\n const included = $h0AH5(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"cVjo2\", function(module, exports) {\n\nvar $3ZIKH = parcelRequire(\"3ZIKH\");\n\nvar $hf4vi = parcelRequire(\"hf4vi\");\nconst { ANY: $9689d8b7ef65728f$var$ANY } = $hf4vi;\n\nvar $h0AH5 = parcelRequire(\"h0AH5\");\n\nvar $dKY2K = parcelRequire(\"dKY2K\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $9689d8b7ef65728f$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $3ZIKH(sub, options);\n dom = new $3ZIKH(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $9689d8b7ef65728f$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $9689d8b7ef65728f$var$minimumVersionWithPreRelease = [\n new $hf4vi(\">=0.0.0-0\")\n];\nconst $9689d8b7ef65728f$var$minimumVersion = [\n new $hf4vi(\">=0.0.0\")\n];\nconst $9689d8b7ef65728f$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $9689d8b7ef65728f$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $9689d8b7ef65728f$var$ANY) return true;\n else if (options.includePrerelease) sub = $9689d8b7ef65728f$var$minimumVersionWithPreRelease;\n else sub = $9689d8b7ef65728f$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $9689d8b7ef65728f$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $9689d8b7ef65728f$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $9689d8b7ef65728f$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $9689d8b7ef65728f$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $dKY2K(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$h0AH5(eq, String(gt), options)) return null;\n if (lt && !$h0AH5(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$h0AH5(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $9689d8b7ef65728f$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$h0AH5(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $9689d8b7ef65728f$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$h0AH5(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $9689d8b7ef65728f$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $dKY2K(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $9689d8b7ef65728f$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $dKY2K(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $9689d8b7ef65728f$var$subset;\n\n});\n\n\nparcelRegister(\"fQ0Jj\", function(module, exports) {\n\"use strict\";\nvar $b87c474932ac0f16$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($b87c474932ac0f16$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"6afW1\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $47d0099950e01565$export$f8b9fb4db095815b);\n\nasync function $47d0099950e01565$export$f8b9fb4db095815b(path) {\n try {\n await (0, $fnyYE$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $47d0099950e01565$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($fnyYE$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"e19ul\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $50261410344d920a$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $50261410344d920a$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $50261410344d920a$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $fnyYE$path.dirname);\n$parcel$export(module.exports, \"join\", () => $fnyYE$path.join);\n\n\nvar $hImoI = parcelRequire(\"hImoI\");\n\nvar $f2mBC = parcelRequire(\"f2mBC\");\nfunction $50261410344d920a$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $50261410344d920a$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $50261410344d920a$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $fnyYE$path.basename)(e) : (0, $fnyYE$path.basename)(e, (0, $fnyYE$path.extname)(e));\n}\nfunction $50261410344d920a$export$873fead74fe2f1ff(e) {\n return (0, $fnyYE$path.normalize)(e).replace(RegExp((0, $hImoI.default)((0, $fnyYE$path.sep)) + \"$\"), \"\");\n}\nfunction $50261410344d920a$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $50261410344d920a$export$3e333f8cb13439c(e, a) {\n const r = (0, $fnyYE$path.extname)(e), s = `${a}${(0, $fnyYE$path.basename)(e, r)}${r}`;\n return (0, $fnyYE$path.join)((0, $fnyYE$path.dirname)(e), s);\n}\nfunction $50261410344d920a$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $fnyYE$path.extname)(e), s = `${(0, $fnyYE$path.basename)(e, r)}${a}${r}`;\n return (0, $fnyYE$path.join)((0, $fnyYE$path.dirname)(e), s);\n}\nfunction $50261410344d920a$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $50261410344d920a$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $50261410344d920a$export$19c5468f88f6e968(e) {\n const a = (0, $fnyYE$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $50261410344d920a$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($f2mBC)))(e, a);\n}\nfunction $50261410344d920a$export$7d0573375890d05c(e, a) {\n const r = (0, $fnyYE$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $fnyYE$path.sep)) || r === (0, $fnyYE$path.resolve)(e));\n}\nvar $50261410344d920a$var$O = {}, $50261410344d920a$var$R = {};\n$50261410344d920a$var$a($50261410344d920a$var$R, \"name\", ()=>$50261410344d920a$export$a8ff84c12d48cfa6);\nvar $50261410344d920a$var$A = {};\n$50261410344d920a$var$a($50261410344d920a$var$A, \"normalizeTrim\", ()=>$50261410344d920a$export$873fead74fe2f1ff);\nvar $50261410344d920a$var$I = {};\n$50261410344d920a$var$a($50261410344d920a$var$I, \"addExeExt\", ()=>$50261410344d920a$export$2d20c564cade3c93);\nvar $50261410344d920a$var$T = {};\n$50261410344d920a$var$a($50261410344d920a$var$T, \"addNamePrefix\", ()=>$50261410344d920a$export$3e333f8cb13439c);\nvar $50261410344d920a$var$_ = {};\n$50261410344d920a$var$a($50261410344d920a$var$_, \"addNameSuffix\", ()=>$50261410344d920a$export$3b60a3e9bd1aef9d);\nvar $50261410344d920a$var$k = {};\n$50261410344d920a$var$a($50261410344d920a$var$k, \"addShExt\", ()=>$50261410344d920a$export$609be29b80b555e1);\nvar $50261410344d920a$var$M = {};\n$50261410344d920a$var$a($50261410344d920a$var$M, \"addShRelativePrefix\", ()=>$50261410344d920a$export$e1f23f8d3e53fe6);\nvar $50261410344d920a$var$W = {};\n$50261410344d920a$var$a($50261410344d920a$var$W, \"removeExt\", ()=>$50261410344d920a$export$19c5468f88f6e968);\nvar $50261410344d920a$var$q = {};\n$50261410344d920a$var$a($50261410344d920a$var$q, \"replaceExt\", ()=>$50261410344d920a$export$e9c34737ac8e53d2);\nvar $50261410344d920a$var$B = {};\n$50261410344d920a$var$a($50261410344d920a$var$B, \"isPathInside\", ()=>$50261410344d920a$export$7d0573375890d05c), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$R), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$A), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$I), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$T), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$_), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$k), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$M), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$W), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$q), $50261410344d920a$var$e($50261410344d920a$var$O, $50261410344d920a$var$B);\n\n});\nparcelRegister(\"hImoI\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $ce57eb70ef70e8ad$export$2e2bcd8739ae039);\nfunction $ce57eb70ef70e8ad$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"f2mBC\", function(module, exports) {\n\"use strict\";\n\nfunction $af2893f38bb1ffcd$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $fnyYE$path.basename(npath, $fnyYE$path.extname(npath)) + ext;\n var nFilepath = $fnyYE$path.join($fnyYE$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($af2893f38bb1ffcd$var$startsWithSingleDot(npath)) return \".\" + $fnyYE$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $af2893f38bb1ffcd$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $fnyYE$path.sep || first2chars === \"./\";\n}\nmodule.exports = $af2893f38bb1ffcd$var$replaceExt;\n\n});\n\n\nparcelRegister(\"jGHPG\", function(module, exports) {\n\"use strict\";\nvar $e553f0cadbd2b95a$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $e553f0cadbd2b95a$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $e553f0cadbd2b95a$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $e553f0cadbd2b95a$var$__createBinding(result, mod, k);\n }\n $e553f0cadbd2b95a$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $e553f0cadbd2b95a$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $e553f0cadbd2b95a$var$path = $e553f0cadbd2b95a$var$__importStar($fnyYE$path);\n\nconst $e553f0cadbd2b95a$var$ioUtil = $e553f0cadbd2b95a$var$__importStar((parcelRequire(\"akQoU\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $e553f0cadbd2b95a$var$cp(source, dest, options = {}) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $e553f0cadbd2b95a$var$readCopyOptions(options);\n const destStat = (yield $e553f0cadbd2b95a$var$ioUtil.exists(dest)) ? yield $e553f0cadbd2b95a$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $e553f0cadbd2b95a$var$path.join(dest, $e553f0cadbd2b95a$var$path.basename(source)) : dest;\n if (!(yield $e553f0cadbd2b95a$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $e553f0cadbd2b95a$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $e553f0cadbd2b95a$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($e553f0cadbd2b95a$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $e553f0cadbd2b95a$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $e553f0cadbd2b95a$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $e553f0cadbd2b95a$var$mv(source, dest, options = {}) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $e553f0cadbd2b95a$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $e553f0cadbd2b95a$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $e553f0cadbd2b95a$var$path.join(dest, $e553f0cadbd2b95a$var$path.basename(source));\n destExists = yield $e553f0cadbd2b95a$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $e553f0cadbd2b95a$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $e553f0cadbd2b95a$var$mkdirP($e553f0cadbd2b95a$var$path.dirname(dest));\n yield $e553f0cadbd2b95a$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $e553f0cadbd2b95a$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $e553f0cadbd2b95a$var$rmRF(inputPath) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $e553f0cadbd2b95a$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $e553f0cadbd2b95a$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $e553f0cadbd2b95a$var$mkdirP(fsPath) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n $fnyYE$assert.ok(fsPath, \"a path argument must be provided\");\n yield $e553f0cadbd2b95a$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $e553f0cadbd2b95a$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $e553f0cadbd2b95a$var$which(tool, check) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $e553f0cadbd2b95a$var$which(tool, false);\n if (!result) {\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $e553f0cadbd2b95a$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $e553f0cadbd2b95a$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $e553f0cadbd2b95a$var$findInPath(tool) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($e553f0cadbd2b95a$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($e553f0cadbd2b95a$var$ioUtil.isRooted(tool)) {\n const filePath = yield $e553f0cadbd2b95a$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($e553f0cadbd2b95a$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($e553f0cadbd2b95a$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $e553f0cadbd2b95a$var$ioUtil.tryGetExecutablePath($e553f0cadbd2b95a$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $e553f0cadbd2b95a$var$findInPath;\nfunction $e553f0cadbd2b95a$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $e553f0cadbd2b95a$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $e553f0cadbd2b95a$var$mkdirP(destDir);\n const files = yield $e553f0cadbd2b95a$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $e553f0cadbd2b95a$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $e553f0cadbd2b95a$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $e553f0cadbd2b95a$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $e553f0cadbd2b95a$var$ioUtil.chmod(destDir, (yield $e553f0cadbd2b95a$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $e553f0cadbd2b95a$var$copyFile(srcFile, destFile, force) {\n return $e553f0cadbd2b95a$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $e553f0cadbd2b95a$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $e553f0cadbd2b95a$var$ioUtil.lstat(destFile);\n yield $e553f0cadbd2b95a$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $e553f0cadbd2b95a$var$ioUtil.chmod(destFile, \"0666\");\n yield $e553f0cadbd2b95a$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $e553f0cadbd2b95a$var$ioUtil.readlink(srcFile);\n yield $e553f0cadbd2b95a$var$ioUtil.symlink(symlinkFull, destFile, $e553f0cadbd2b95a$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $e553f0cadbd2b95a$var$ioUtil.exists(destFile)) || force) yield $e553f0cadbd2b95a$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"akQoU\", function(module, exports) {\n\"use strict\";\nvar $78646b550a341622$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $78646b550a341622$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $78646b550a341622$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $78646b550a341622$var$__createBinding(result, mod, k);\n }\n $78646b550a341622$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $78646b550a341622$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $78646b550a341622$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $78646b550a341622$var$fs = $78646b550a341622$var$__importStar($fnyYE$fs);\n\nconst $78646b550a341622$var$path = $78646b550a341622$var$__importStar($fnyYE$path);\n$78646b550a341622$var$_a = $78646b550a341622$var$fs.promises, module.exports.chmod = $78646b550a341622$var$_a.chmod, module.exports.copyFile = $78646b550a341622$var$_a.copyFile, module.exports.lstat = $78646b550a341622$var$_a.lstat, module.exports.mkdir = $78646b550a341622$var$_a.mkdir, module.exports.open = $78646b550a341622$var$_a.open, module.exports.readdir = $78646b550a341622$var$_a.readdir, module.exports.readlink = $78646b550a341622$var$_a.readlink, module.exports.rename = $78646b550a341622$var$_a.rename, module.exports.rm = $78646b550a341622$var$_a.rm, module.exports.rmdir = $78646b550a341622$var$_a.rmdir, module.exports.stat = $78646b550a341622$var$_a.stat, module.exports.symlink = $78646b550a341622$var$_a.symlink, module.exports.unlink = $78646b550a341622$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $78646b550a341622$var$fs.constants.O_RDONLY;\nfunction $78646b550a341622$var$exists(fsPath) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $78646b550a341622$var$exists;\nfunction $78646b550a341622$var$isDirectory(fsPath, useStat = false) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $78646b550a341622$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $78646b550a341622$var$isRooted(p) {\n p = $78646b550a341622$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $78646b550a341622$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $78646b550a341622$var$tryGetExecutablePath(filePath, extensions) {\n return $78646b550a341622$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $78646b550a341622$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($78646b550a341622$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $78646b550a341622$var$path.dirname(filePath);\n const upperName = $78646b550a341622$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $78646b550a341622$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($78646b550a341622$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $78646b550a341622$var$tryGetExecutablePath;\nfunction $78646b550a341622$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $78646b550a341622$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $78646b550a341622$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $78646b550a341622$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"aUW7f\", function(module, exports) {\n\"use strict\";\nvar $7f2c36ee4c1c2579$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $7f2c36ee4c1c2579$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $7f2c36ee4c1c2579$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $7f2c36ee4c1c2579$var$__createBinding(result, mod, k);\n }\n $7f2c36ee4c1c2579$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $7f2c36ee4c1c2579$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $7f2c36ee4c1c2579$var$semver = $7f2c36ee4c1c2579$var$__importStar((parcelRequire(\"1mmqj\")));\n\nvar $lUL8q = parcelRequire(\"lUL8q\");\n\n\n\nfunction $7f2c36ee4c1c2579$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $7f2c36ee4c1c2579$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $fnyYE$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $lUL8q.debug(`check ${version} satisfies ${versionSpec}`);\n if ($7f2c36ee4c1c2579$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $lUL8q.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $7f2c36ee4c1c2579$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $lUL8q.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $7f2c36ee4c1c2579$var$_findMatch;\nfunction $7f2c36ee4c1c2579$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $fnyYE$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $fnyYE$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $7f2c36ee4c1c2579$var$_getOsVersion;\nfunction $7f2c36ee4c1c2579$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($fnyYE$fs.existsSync(lsbReleaseFile)) contents = $fnyYE$fs.readFileSync(lsbReleaseFile).toString();\n else if ($fnyYE$fs.existsSync(osReleaseFile)) contents = $fnyYE$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $7f2c36ee4c1c2579$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"1mmqj\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"b4HqL\", function(module, exports) {\n\nvar $djHKf = parcelRequire(\"djHKf\");\n\nvar $CMWjw = parcelRequire(\"CMWjw\");\nfunction $8101c1dee09e6f84$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $djHKf)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $CMWjw(rnds);\n}\nmodule.exports = $8101c1dee09e6f84$var$v4;\n\n});\nparcelRegister(\"djHKf\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $fnyYE$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"CMWjw\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $074983196b00f550$var$byteToHex = [];\nfor(var $074983196b00f550$var$i = 0; $074983196b00f550$var$i < 256; ++$074983196b00f550$var$i)$074983196b00f550$var$byteToHex[$074983196b00f550$var$i] = ($074983196b00f550$var$i + 0x100).toString(16).substr(1);\nfunction $074983196b00f550$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $074983196b00f550$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $074983196b00f550$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"ioM8U\", function(module, exports) {\n\"use strict\";\nvar $d64fd000bc54e123$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d64fd000bc54e123$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d64fd000bc54e123$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d64fd000bc54e123$var$__createBinding(result, mod, k);\n }\n $d64fd000bc54e123$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d64fd000bc54e123$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $d64fd000bc54e123$var$tr = $d64fd000bc54e123$var$__importStar((parcelRequire(\"7Ee0q\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $d64fd000bc54e123$var$exec(commandLine, args, options) {\n return $d64fd000bc54e123$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $d64fd000bc54e123$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $d64fd000bc54e123$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $d64fd000bc54e123$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $d64fd000bc54e123$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $d64fd000bc54e123$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $fnyYE$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $fnyYE$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $d64fd000bc54e123$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $d64fd000bc54e123$var$getExecOutput;\n\n});\nparcelRegister(\"7Ee0q\", function(module, exports) {\n\"use strict\";\nvar $59172219f851c8e5$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $59172219f851c8e5$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $59172219f851c8e5$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $59172219f851c8e5$var$__createBinding(result, mod, k);\n }\n $59172219f851c8e5$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $59172219f851c8e5$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $59172219f851c8e5$var$os = $59172219f851c8e5$var$__importStar($fnyYE$os);\n\nconst $59172219f851c8e5$var$events = $59172219f851c8e5$var$__importStar($fnyYE$events);\n\nconst $59172219f851c8e5$var$child = $59172219f851c8e5$var$__importStar($fnyYE$child_process);\n\nconst $59172219f851c8e5$var$path = $59172219f851c8e5$var$__importStar($fnyYE$path);\n\nconst $59172219f851c8e5$var$io = $59172219f851c8e5$var$__importStar((parcelRequire(\"jGHPG\")));\n\nconst $59172219f851c8e5$var$ioUtil = $59172219f851c8e5$var$__importStar((parcelRequire(\"akQoU\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $59172219f851c8e5$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $59172219f851c8e5$var$ToolRunner extends $59172219f851c8e5$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($59172219f851c8e5$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $59172219f851c8e5$var$os.EOL.length);\n n = s.indexOf($59172219f851c8e5$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($59172219f851c8e5$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $59172219f851c8e5$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$59172219f851c8e5$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $59172219f851c8e5$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $59172219f851c8e5$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $59172219f851c8e5$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$59172219f851c8e5$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $59172219f851c8e5$var$os.EOL);\n const state = new $59172219f851c8e5$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $59172219f851c8e5$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $59172219f851c8e5$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $59172219f851c8e5$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $59172219f851c8e5$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $59172219f851c8e5$var$argStringToArray;\nclass $59172219f851c8e5$var$ExecState extends $59172219f851c8e5$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $fnyYE$timers.setTimeout($59172219f851c8e5$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"kqI8i\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.10530df8.js\")).then(()=>parcelRequire(\"i1n7v\"));\n\n});\n\nparcelRegister(\"9KKJA\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $719ca9645c2503ac$export$1059c6e7d2ce5669, (v) => $719ca9645c2503ac$export$1059c6e7d2ce5669 = v);\nvar $719ca9645c2503ac$export$181392475aa39887;\nvar $719ca9645c2503ac$export$ba13e0e2f19e61a1;\nvar $719ca9645c2503ac$export$1059c6e7d2ce5669;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\n\nvar $1cH1m = parcelRequire(\"1cH1m\");\n\nvar $hPwcE = parcelRequire(\"hPwcE\");\n\nvar $4t75f = parcelRequire(\"4t75f\");\nvar $719ca9645c2503ac$var$DOMImplementation = $1cH1m.DOMImplementation;\nvar $719ca9645c2503ac$var$NAMESPACE = $4u2Un.NAMESPACE;\nvar $719ca9645c2503ac$var$ParseError = $4t75f.ParseError;\nvar $719ca9645c2503ac$var$XMLReader = $4t75f.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $719ca9645c2503ac$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $719ca9645c2503ac$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$719ca9645c2503ac$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $719ca9645c2503ac$var$XMLReader();\n var domBuilder = options.domBuilder || new $719ca9645c2503ac$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $hPwcE.HTML_ENTITIES : $hPwcE.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $719ca9645c2503ac$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $719ca9645c2503ac$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $719ca9645c2503ac$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $719ca9645c2503ac$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $719ca9645c2503ac$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $719ca9645c2503ac$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $719ca9645c2503ac$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $719ca9645c2503ac$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $719ca9645c2503ac$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $719ca9645c2503ac$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $719ca9645c2503ac$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $719ca9645c2503ac$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $719ca9645c2503ac$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $719ca9645c2503ac$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $719ca9645c2503ac$var$position(this.locator, ins);\n $719ca9645c2503ac$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $719ca9645c2503ac$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $719ca9645c2503ac$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $719ca9645c2503ac$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $719ca9645c2503ac$var$position(this.locator, comm);\n $719ca9645c2503ac$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $719ca9645c2503ac$var$position(this.locator, dt);\n $719ca9645c2503ac$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $719ca9645c2503ac$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $719ca9645c2503ac$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $719ca9645c2503ac$var$ParseError(error, this.locator);\n }\n};\nfunction $719ca9645c2503ac$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $719ca9645c2503ac$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $719ca9645c2503ac$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $719ca9645c2503ac$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$719ca9645c2503ac$export$181392475aa39887 = $719ca9645c2503ac$var$DOMHandler;\n$719ca9645c2503ac$export$ba13e0e2f19e61a1 = $719ca9645c2503ac$var$normalizeLineEndings;\n$719ca9645c2503ac$export$1059c6e7d2ce5669 = $719ca9645c2503ac$var$DOMParser;\n\n});\nparcelRegister(\"4u2Un\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $343c384d805ce09c$export$71aa6c912b956294, (v) => $343c384d805ce09c$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $343c384d805ce09c$export$792f3d81ea979f55, (v) => $343c384d805ce09c$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $343c384d805ce09c$export$6aad947bda0f3f46, (v) => $343c384d805ce09c$export$6aad947bda0f3f46 = v);\nvar $343c384d805ce09c$export$e6e34fd1f2686227;\nvar $343c384d805ce09c$export$71aa6c912b956294;\nvar $343c384d805ce09c$export$792f3d81ea979f55;\nvar $343c384d805ce09c$export$c6cb9dd1e3ada1aa;\nvar $343c384d805ce09c$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $343c384d805ce09c$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $343c384d805ce09c$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $343c384d805ce09c$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $343c384d805ce09c$var$MIME_TYPE = $343c384d805ce09c$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $343c384d805ce09c$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $343c384d805ce09c$var$NAMESPACE = $343c384d805ce09c$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $343c384d805ce09c$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$343c384d805ce09c$export$e6e34fd1f2686227 = $343c384d805ce09c$var$assign;\n$343c384d805ce09c$export$71aa6c912b956294 = $343c384d805ce09c$var$find;\n$343c384d805ce09c$export$792f3d81ea979f55 = $343c384d805ce09c$var$freeze;\n$343c384d805ce09c$export$c6cb9dd1e3ada1aa = $343c384d805ce09c$var$MIME_TYPE;\n$343c384d805ce09c$export$6aad947bda0f3f46 = $343c384d805ce09c$var$NAMESPACE;\n\n});\n\nparcelRegister(\"1cH1m\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $0e08487d194d8d81$export$455426655eab1d48, (v) => $0e08487d194d8d81$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $0e08487d194d8d81$export$64f0bed4ae6f0f24, (v) => $0e08487d194d8d81$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $0e08487d194d8d81$export$d1d99cf900472499;\nvar $0e08487d194d8d81$export$fe58bcf938607f6a;\nvar $0e08487d194d8d81$export$455426655eab1d48;\nvar $0e08487d194d8d81$export$db77ccec0bb4ccac;\nvar $0e08487d194d8d81$export$85c928794f8d04d4;\nvar $0e08487d194d8d81$export$79b41aa5d56abdff;\nvar $0e08487d194d8d81$export$64f0bed4ae6f0f24;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $0e08487d194d8d81$var$find = $4u2Un.find;\nvar $0e08487d194d8d81$var$NAMESPACE = $4u2Un.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $0e08487d194d8d81$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($0e08487d194d8d81$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $0e08487d194d8d81$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $0e08487d194d8d81$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $0e08487d194d8d81$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($0e08487d194d8d81$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $0e08487d194d8d81$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $0e08487d194d8d81$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $0e08487d194d8d81$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $0e08487d194d8d81$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $0e08487d194d8d81$var$NodeType = {};\nvar $0e08487d194d8d81$var$ELEMENT_NODE = $0e08487d194d8d81$var$NodeType.ELEMENT_NODE = 1;\nvar $0e08487d194d8d81$var$ATTRIBUTE_NODE = $0e08487d194d8d81$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $0e08487d194d8d81$var$TEXT_NODE = $0e08487d194d8d81$var$NodeType.TEXT_NODE = 3;\nvar $0e08487d194d8d81$var$CDATA_SECTION_NODE = $0e08487d194d8d81$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE = $0e08487d194d8d81$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $0e08487d194d8d81$var$ENTITY_NODE = $0e08487d194d8d81$var$NodeType.ENTITY_NODE = 6;\nvar $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE = $0e08487d194d8d81$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $0e08487d194d8d81$var$COMMENT_NODE = $0e08487d194d8d81$var$NodeType.COMMENT_NODE = 8;\nvar $0e08487d194d8d81$var$DOCUMENT_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_NODE = 9;\nvar $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE = $0e08487d194d8d81$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $0e08487d194d8d81$var$NOTATION_NODE = $0e08487d194d8d81$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $0e08487d194d8d81$var$ExceptionCode = {};\nvar $0e08487d194d8d81$var$ExceptionMessage = {};\nvar $0e08487d194d8d81$var$INDEX_SIZE_ERR = $0e08487d194d8d81$var$ExceptionCode.INDEX_SIZE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $0e08487d194d8d81$var$DOMSTRING_SIZE_ERR = $0e08487d194d8d81$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR = $0e08487d194d8d81$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($0e08487d194d8d81$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $0e08487d194d8d81$var$WRONG_DOCUMENT_ERR = $0e08487d194d8d81$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($0e08487d194d8d81$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $0e08487d194d8d81$var$INVALID_CHARACTER_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_CHARACTER_ERR = ($0e08487d194d8d81$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $0e08487d194d8d81$var$NO_DATA_ALLOWED_ERR = $0e08487d194d8d81$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $0e08487d194d8d81$var$NO_MODIFICATION_ALLOWED_ERR = $0e08487d194d8d81$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $0e08487d194d8d81$var$NOT_FOUND_ERR = $0e08487d194d8d81$var$ExceptionCode.NOT_FOUND_ERR = ($0e08487d194d8d81$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $0e08487d194d8d81$var$NOT_SUPPORTED_ERR = $0e08487d194d8d81$var$ExceptionCode.NOT_SUPPORTED_ERR = ($0e08487d194d8d81$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR = $0e08487d194d8d81$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $0e08487d194d8d81$var$INVALID_STATE_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_STATE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $0e08487d194d8d81$var$SYNTAX_ERR = $0e08487d194d8d81$var$ExceptionCode.SYNTAX_ERR = ($0e08487d194d8d81$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $0e08487d194d8d81$var$INVALID_MODIFICATION_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($0e08487d194d8d81$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $0e08487d194d8d81$var$NAMESPACE_ERR = $0e08487d194d8d81$var$ExceptionCode.NAMESPACE_ERR = ($0e08487d194d8d81$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $0e08487d194d8d81$var$INVALID_ACCESS_ERR = $0e08487d194d8d81$var$ExceptionCode.INVALID_ACCESS_ERR = ($0e08487d194d8d81$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $0e08487d194d8d81$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $0e08487d194d8d81$var$ExceptionMessage[code]);\n this.message = $0e08487d194d8d81$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $0e08487d194d8d81$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$0e08487d194d8d81$var$DOMException.prototype = Error.prototype;\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$ExceptionCode, $0e08487d194d8d81$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $0e08487d194d8d81$var$NodeList() {}\n$0e08487d194d8d81$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$0e08487d194d8d81$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $0e08487d194d8d81$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $0e08487d194d8d81$var$_updateLiveList(this);\n}\nfunction $0e08487d194d8d81$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $0e08487d194d8d81$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $0e08487d194d8d81$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$0e08487d194d8d81$var$LiveNodeList.prototype.item = function(i) {\n $0e08487d194d8d81$var$_updateLiveList(this);\n return this[i] || null;\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$LiveNodeList, $0e08487d194d8d81$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $0e08487d194d8d81$var$NamedNodeMap() {}\nfunction $0e08487d194d8d81$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $0e08487d194d8d81$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$0e08487d194d8d81$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, oldAttr);\n $0e08487d194d8d81$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $0e08487d194d8d81$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $0e08487d194d8d81$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$0e08487d194d8d81$var$NamedNodeMap.prototype = {\n length: 0,\n item: $0e08487d194d8d81$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $0e08487d194d8d81$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $0e08487d194d8d81$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $0e08487d194d8d81$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $0e08487d194d8d81$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $0e08487d194d8d81$var$DOMImplementation() {}\n$0e08487d194d8d81$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $0e08487d194d8d81$var$Document();\n doc.implementation = this;\n doc.childNodes = new $0e08487d194d8d81$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $0e08487d194d8d81$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $0e08487d194d8d81$var$Node() {}\n$0e08487d194d8d81$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $0e08487d194d8d81$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $0e08487d194d8d81$var$_insertBefore(this, newChild, oldChild, $0e08487d194d8d81$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $0e08487d194d8d81$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $0e08487d194d8d81$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $0e08487d194d8d81$var$TEXT_NODE && child.nodeType == $0e08487d194d8d81$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $0e08487d194d8d81$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $0e08487d194d8d81$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $0e08487d194d8d81$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$NodeType, $0e08487d194d8d81$var$Node);\n$0e08487d194d8d81$var$copy($0e08487d194d8d81$var$NodeType, $0e08487d194d8d81$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $0e08487d194d8d81$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($0e08487d194d8d81$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $0e08487d194d8d81$var$Document() {\n this.ownerDocument = this;\n}\nfunction $0e08487d194d8d81$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $0e08487d194d8d81$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $0e08487d194d8d81$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $0e08487d194d8d81$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $0e08487d194d8d81$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $0e08487d194d8d81$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $0e08487d194d8d81$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$hasInsertableNodeType(node) {\n return node && ($0e08487d194d8d81$var$isElementNode(node) || $0e08487d194d8d81$var$isTextNode(node) || $0e08487d194d8d81$var$isDocTypeNode(node) || node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.COMMENT_NODE || node.nodeType === $0e08487d194d8d81$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isDocTypeNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isElementNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $0e08487d194d8d81$var$isTextNode(node) {\n return node && node.nodeType === $0e08487d194d8d81$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode) || $0e08487d194d8d81$var$isDocTypeNode(child)) return false;\n var docTypeNode = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $0e08487d194d8d81$var$isElementNode(node) && node !== child;\n }\n if ($0e08487d194d8d81$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$0e08487d194d8d81$var$hasValidParentNodeType(parent)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$0e08487d194d8d81$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $0e08487d194d8d81$var$isDocTypeNode(node) && parent.nodeType !== $0e08487d194d8d81$var$Node.DOCUMENT_NODE) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($0e08487d194d8d81$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $0e08487d194d8d81$var$find(nodeChildNodes, $0e08487d194d8d81$var$isTextNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$0e08487d194d8d81$var$isElementInsertionPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($0e08487d194d8d81$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$0e08487d194d8d81$var$isElementInsertionPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($0e08487d194d8d81$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isDocTypeNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $0e08487d194d8d81$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($0e08487d194d8d81$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $0e08487d194d8d81$var$find(nodeChildNodes, $0e08487d194d8d81$var$isTextNode)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$0e08487d194d8d81$var$isElementReplacementPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($0e08487d194d8d81$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$0e08487d194d8d81$var$isElementReplacementPossible(parent, child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($0e08487d194d8d81$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $0e08487d194d8d81$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($0e08487d194d8d81$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $0e08487d194d8d81$var$find(parentChildNodes, $0e08487d194d8d81$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $0e08487d194d8d81$var$DOMException($0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $0e08487d194d8d81$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $0e08487d194d8d81$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $0e08487d194d8d81$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $0e08487d194d8d81$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $0e08487d194d8d81$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $0e08487d194d8d81$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $0e08487d194d8d81$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$0e08487d194d8d81$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $0e08487d194d8d81$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $0e08487d194d8d81$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $0e08487d194d8d81$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $0e08487d194d8d81$var$_insertBefore(this, newChild, oldChild, $0e08487d194d8d81$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($0e08487d194d8d81$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $0e08487d194d8d81$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $0e08487d194d8d81$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $0e08487d194d8d81$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $0e08487d194d8d81$var$toOrderedSet(classNames);\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $0e08487d194d8d81$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $0e08487d194d8d81$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($0e08487d194d8d81$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $0e08487d194d8d81$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n var attrs = node.attributes = new $0e08487d194d8d81$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $0e08487d194d8d81$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $0e08487d194d8d81$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $0e08487d194d8d81$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $0e08487d194d8d81$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $0e08487d194d8d81$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $0e08487d194d8d81$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $0e08487d194d8d81$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $0e08487d194d8d81$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $0e08487d194d8d81$var$NamedNodeMap();\n node.childNodes = new $0e08487d194d8d81$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $0e08487d194d8d81$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Document, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Element() {\n this._nsMap = {};\n}\n$0e08487d194d8d81$var$Element.prototype = {\n nodeType: $0e08487d194d8d81$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $0e08487d194d8d81$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n $0e08487d194d8d81$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $0e08487d194d8d81$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $0e08487d194d8d81$var$LiveNodeList(this, function(base) {\n var ls = [];\n $0e08487d194d8d81$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $0e08487d194d8d81$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$0e08487d194d8d81$var$Document.prototype.getElementsByTagName = $0e08487d194d8d81$var$Element.prototype.getElementsByTagName;\n$0e08487d194d8d81$var$Document.prototype.getElementsByTagNameNS = $0e08487d194d8d81$var$Element.prototype.getElementsByTagNameNS;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Element, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Attr() {}\n$0e08487d194d8d81$var$Attr.prototype.nodeType = $0e08487d194d8d81$var$ATTRIBUTE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Attr, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$CharacterData() {}\n$0e08487d194d8d81$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($0e08487d194d8d81$var$ExceptionMessage[$0e08487d194d8d81$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$CharacterData, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Text() {}\n$0e08487d194d8d81$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $0e08487d194d8d81$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Text, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$Comment() {}\n$0e08487d194d8d81$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $0e08487d194d8d81$var$COMMENT_NODE\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Comment, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$CDATASection() {}\n$0e08487d194d8d81$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $0e08487d194d8d81$var$CDATA_SECTION_NODE\n};\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$CDATASection, $0e08487d194d8d81$var$CharacterData);\nfunction $0e08487d194d8d81$var$DocumentType() {}\n$0e08487d194d8d81$var$DocumentType.prototype.nodeType = $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$DocumentType, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Notation() {}\n$0e08487d194d8d81$var$Notation.prototype.nodeType = $0e08487d194d8d81$var$NOTATION_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Notation, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$Entity() {}\n$0e08487d194d8d81$var$Entity.prototype.nodeType = $0e08487d194d8d81$var$ENTITY_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$Entity, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$EntityReference() {}\n$0e08487d194d8d81$var$EntityReference.prototype.nodeType = $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$EntityReference, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$DocumentFragment() {}\n$0e08487d194d8d81$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$0e08487d194d8d81$var$DocumentFragment.prototype.nodeType = $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$DocumentFragment, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$ProcessingInstruction() {}\n$0e08487d194d8d81$var$ProcessingInstruction.prototype.nodeType = $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE;\n$0e08487d194d8d81$var$_extends($0e08487d194d8d81$var$ProcessingInstruction, $0e08487d194d8d81$var$Node);\nfunction $0e08487d194d8d81$var$XMLSerializer() {}\n$0e08487d194d8d81$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $0e08487d194d8d81$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$0e08487d194d8d81$var$Node.prototype.toString = $0e08487d194d8d81$var$nodeSerializeToString;\nfunction $0e08487d194d8d81$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $0e08487d194d8d81$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $0e08487d194d8d81$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $0e08487d194d8d81$var$NAMESPACE.XML || uri === $0e08487d194d8d81$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $0e08487d194d8d81$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $0e08487d194d8d81$var$_xmlEncoder), '\"');\n}\nfunction $0e08487d194d8d81$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $0e08487d194d8d81$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $0e08487d194d8d81$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($0e08487d194d8d81$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $0e08487d194d8d81$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $0e08487d194d8d81$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $0e08487d194d8d81$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $0e08487d194d8d81$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $0e08487d194d8d81$var$DOCUMENT_NODE:\n case $0e08487d194d8d81$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $0e08487d194d8d81$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $0e08487d194d8d81$var$ATTRIBUTE_NODE:\n return $0e08487d194d8d81$var$addSerializedAttribute(buf, node.name, node.value);\n case $0e08487d194d8d81$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $0e08487d194d8d81$var$_xmlEncoder));\n case $0e08487d194d8d81$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$COMMENT_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $0e08487d194d8d81$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $0e08487d194d8d81$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $0e08487d194d8d81$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $0e08487d194d8d81$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $cfb02df52129631c$export$91f0e5ff03dc84f, (v) => $cfb02df52129631c$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $cfb02df52129631c$export$b7e4d4631df36afa, (v) => $cfb02df52129631c$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $cfb02df52129631c$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $cfb02df52129631c$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $cfb02df52129631c$export$79451380caed3f98;\n\"use strict\";\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $cfb02df52129631c$require$freeze = $4u2Un.freeze;\n$cfb02df52129631c$export$91f0e5ff03dc84f = $cfb02df52129631c$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$cfb02df52129631c$export$b7e4d4631df36afa = $cfb02df52129631c$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$cfb02df52129631c$export$79451380caed3f98 = $cfb02df52129631c$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"4t75f\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $340f5d84067e3062$export$ccbc9f9f018333e9, (v) => $340f5d84067e3062$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $340f5d84067e3062$export$f9c837a54db411d, (v) => $340f5d84067e3062$export$f9c837a54db411d = v);\nvar $340f5d84067e3062$export$ccbc9f9f018333e9;\nvar $340f5d84067e3062$export$f9c837a54db411d;\n\nvar $4u2Un = parcelRequire(\"4u2Un\");\nvar $340f5d84067e3062$require$NAMESPACE = $4u2Un.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $340f5d84067e3062$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $340f5d84067e3062$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $340f5d84067e3062$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $340f5d84067e3062$var$tagNamePattern = new RegExp(\"^\" + $340f5d84067e3062$var$nameStartChar.source + $340f5d84067e3062$var$nameChar.source + \"*(?::\" + $340f5d84067e3062$var$nameStartChar.source + $340f5d84067e3062$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $340f5d84067e3062$var$S_TAG = 0; //tag name offerring\nvar $340f5d84067e3062$var$S_ATTR = 1; //attr name offerring\nvar $340f5d84067e3062$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $340f5d84067e3062$var$S_EQ = 3; //=space?\nvar $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $340f5d84067e3062$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $340f5d84067e3062$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $340f5d84067e3062$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $340f5d84067e3062$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $340f5d84067e3062$var$ParseError);\n}\n$340f5d84067e3062$var$ParseError.prototype = new Error();\n$340f5d84067e3062$var$ParseError.prototype.name = $340f5d84067e3062$var$ParseError.name;\nfunction $340f5d84067e3062$var$XMLReader() {}\n$340f5d84067e3062$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $340f5d84067e3062$var$_copy(defaultNSMap, defaultNSMap = {});\n $340f5d84067e3062$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $340f5d84067e3062$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $340f5d84067e3062$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $340f5d84067e3062$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $340f5d84067e3062$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $340f5d84067e3062$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $340f5d84067e3062$var$S_EQ;\n } else if (s === $340f5d84067e3062$var$S_ATTR_SPACE) s = $340f5d84067e3062$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $340f5d84067e3062$var$S_EQ || s === $340f5d84067e3062$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $340f5d84067e3062$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $340f5d84067e3062$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $340f5d84067e3062$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $340f5d84067e3062$var$S_ATTR_END:\n case $340f5d84067e3062$var$S_TAG_SPACE:\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n s = $340f5d84067e3062$var$S_TAG_CLOSE;\n el.closed = true;\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n case $340f5d84067e3062$var$S_ATTR:\n break;\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $340f5d84067e3062$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $340f5d84067e3062$var$S_ATTR_END:\n case $340f5d84067e3062$var$S_TAG_SPACE:\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n break; //normal\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n case $340f5d84067e3062$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n if (s === $340f5d84067e3062$var$S_ATTR_SPACE) value = attrName;\n if (s == $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$340f5d84067e3062$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $340f5d84067e3062$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $340f5d84067e3062$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $340f5d84067e3062$var$S_TAG_SPACE;\n break;\n case $340f5d84067e3062$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $340f5d84067e3062$var$S_ATTR_SPACE;\n break;\n case $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $340f5d84067e3062$var$S_ATTR_END:\n s = $340f5d84067e3062$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $340f5d84067e3062$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$340f5d84067e3062$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $340f5d84067e3062$var$S_ATTR;\n break;\n case $340f5d84067e3062$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $340f5d84067e3062$var$S_TAG_SPACE:\n s = $340f5d84067e3062$var$S_ATTR;\n start = p;\n break;\n case $340f5d84067e3062$var$S_EQ:\n s = $340f5d84067e3062$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $340f5d84067e3062$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $340f5d84067e3062$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $340f5d84067e3062$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $340f5d84067e3062$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $340f5d84067e3062$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $340f5d84067e3062$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $340f5d84067e3062$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.10530df8.js\"))).then(() => parcelRequire('i1n7v'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"aaTTc\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\n\n\n\nvar $8iLt9 = parcelRequire(\"8iLt9\");\nlet $76863105e00d02cd$var$tunnel;\nvar $76863105e00d02cd$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($76863105e00d02cd$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $76863105e00d02cd$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($76863105e00d02cd$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $76863105e00d02cd$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($76863105e00d02cd$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $76863105e00d02cd$var$getProxyUrl(serverUrl) {\n let proxyUrl = $8iLt9.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $76863105e00d02cd$var$getProxyUrl;\nconst $76863105e00d02cd$var$HttpRedirectCodes = [\n $76863105e00d02cd$var$HttpCodes.MovedPermanently,\n $76863105e00d02cd$var$HttpCodes.ResourceMoved,\n $76863105e00d02cd$var$HttpCodes.SeeOther,\n $76863105e00d02cd$var$HttpCodes.TemporaryRedirect,\n $76863105e00d02cd$var$HttpCodes.PermanentRedirect\n];\nconst $76863105e00d02cd$var$HttpResponseRetryCodes = [\n $76863105e00d02cd$var$HttpCodes.BadGateway,\n $76863105e00d02cd$var$HttpCodes.ServiceUnavailable,\n $76863105e00d02cd$var$HttpCodes.GatewayTimeout\n];\nconst $76863105e00d02cd$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $76863105e00d02cd$var$ExponentialBackoffCeiling = 10;\nconst $76863105e00d02cd$var$ExponentialBackoffTimeSlice = 5;\nclass $76863105e00d02cd$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $76863105e00d02cd$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $76863105e00d02cd$var$HttpClientError;\nclass $76863105e00d02cd$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject)=>{\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n });\n }\n}\nmodule.exports.HttpClientResponse = $76863105e00d02cd$var$HttpClientResponse;\nfunction $76863105e00d02cd$var$isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $76863105e00d02cd$var$isHttps;\n\nclass $76863105e00d02cd$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[$76863105e00d02cd$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.Accept, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$76863105e00d02cd$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.Accept, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n additionalHeaders[$76863105e00d02cd$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.ContentType, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$76863105e00d02cd$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.Accept, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n additionalHeaders[$76863105e00d02cd$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.ContentType, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$76863105e00d02cd$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.Accept, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n additionalHeaders[$76863105e00d02cd$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $76863105e00d02cd$var$Headers.ContentType, $76863105e00d02cd$var$MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ async request(verb, requestUrl, data, headers) {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && $76863105e00d02cd$var$RetryableHttpVerbs.indexOf(verb) != -1 ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while(numTries < maxTries){\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $76863105e00d02cd$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for(let i = 0; i < this.handlers.length; i++)if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while($76863105e00d02cd$var$HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == \"https:\" && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(let header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if ($76863105e00d02cd$var$HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return new Promise((resolve, reject)=>{\n let callbackForResult = function(err, res) {\n if (err) reject(err);\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === \"string\") info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n let callbackCalled = false;\n let handleResult = (err, res)=>{\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg)=>{\n let res = new $76863105e00d02cd$var$HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(\"Request timeout: \" + info.options.path), null);\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $kC5q1$https : $kC5q1$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) this.handlers.forEach((handler)=>{\n handler.prepareRequest(info.options);\n });\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = $8iLt9.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (!!agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (!!this.requestOptions) maxSockets = this.requestOptions.maxSockets || $kC5q1$http.globalAgent.maxSockets;\n if (useProxy) {\n // If using proxy, need tunnel\n if (!$76863105e00d02cd$var$tunnel) $76863105e00d02cd$var$tunnel = (parcelRequire(\"3RDK7\"));\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...(proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n },\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $76863105e00d02cd$var$tunnel.httpsOverHttps : $76863105e00d02cd$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $76863105e00d02cd$var$tunnel.httpOverHttps : $76863105e00d02cd$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $kC5q1$https.Agent(options) : new $kC5q1$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $kC5q1$https.globalAgent : $kC5q1$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min($76863105e00d02cd$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $76863105e00d02cd$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject)=>{\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == $76863105e00d02cd$var$HttpCodes.NotFound) resolve(response);\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, $76863105e00d02cd$var$HttpClient.dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = \"Failed request: (\" + statusCode + \")\";\n let err = new $76863105e00d02cd$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n });\n }\n}\nmodule.exports.HttpClient = $76863105e00d02cd$var$HttpClient;\n\n});\nparcelRegister(\"8iLt9\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nfunction $60b4d38a92d549aa$var$getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === \"https:\";\n let proxyUrl;\n if ($60b4d38a92d549aa$var$checkBypass(reqUrl)) return proxyUrl;\n let proxyVar;\n if (usingSsl) proxyVar = process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else proxyVar = process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n if (proxyVar) proxyUrl = new URL(proxyVar);\n return proxyUrl;\n}\nmodule.exports.getProxyUrl = $60b4d38a92d549aa$var$getProxyUrl;\nfunction $60b4d38a92d549aa$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n let noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n let upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperReqHosts.some((x)=>x === upperNoProxyItem)) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $60b4d38a92d549aa$var$checkBypass;\n\n});\n\n\nparcelRegister(\"cJF00\", function(module, exports) {\n\nvar $deqr0 = parcelRequire(\"deqr0\");\n\nvar $a2pIT = parcelRequire(\"a2pIT\");\nfunction $94597d95bd65179d$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $deqr0)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $a2pIT(rnds);\n}\nmodule.exports = $94597d95bd65179d$var$v4;\n\n});\nparcelRegister(\"deqr0\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $kC5q1$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"a2pIT\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $74ee0b5ffb7b42cf$var$byteToHex = [];\nfor(var $74ee0b5ffb7b42cf$var$i = 0; $74ee0b5ffb7b42cf$var$i < 256; ++$74ee0b5ffb7b42cf$var$i)$74ee0b5ffb7b42cf$var$byteToHex[$74ee0b5ffb7b42cf$var$i] = ($74ee0b5ffb7b42cf$var$i + 0x100).toString(16).substr(1);\nfunction $74ee0b5ffb7b42cf$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $74ee0b5ffb7b42cf$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $74ee0b5ffb7b42cf$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"1kmXt\", function(module, exports) {\n\"use strict\";\nvar $0f7977bd7cf4fb09$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $0f7977bd7cf4fb09$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $0f7977bd7cf4fb09$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $0f7977bd7cf4fb09$var$__createBinding(result, mod, k);\n }\n $0f7977bd7cf4fb09$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $0f7977bd7cf4fb09$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $0f7977bd7cf4fb09$var$core = $0f7977bd7cf4fb09$var$__importStar((parcelRequire(\"1o3Gj\")));\n/**\n * Internal class for retries\n */ class $0f7977bd7cf4fb09$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $0f7977bd7cf4fb09$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $0f7977bd7cf4fb09$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $0f7977bd7cf4fb09$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $0f7977bd7cf4fb09$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $0f7977bd7cf4fb09$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"ktIgk\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $8f071548850771d5$export$43d689d19c89c31d);\n\n\nvar $impuq = parcelRequire(\"impuq\");\n\nvar $56hu0 = parcelRequire(\"56hu0\");\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\nasync function $8f071548850771d5$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $8f071548850771d5$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $impuq.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $impuq.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $1o3Gj.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $1o3Gj.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $8f071548850771d5$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $impuq.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $56hu0.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $kC5q1$path.join(installDir, pipDir);\n const binaryExtension = (0, $56hu0.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $kC5q1$path.join((0, $56hu0.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $impuq.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $1o3Gj.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $1o3Gj.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $1o3Gj.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $1o3Gj.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $1o3Gj.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $1o3Gj.addPath(pythonLocation);\n $1o3Gj.addPath(_binDir);\n }\n $1o3Gj.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $1o3Gj.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $8f071548850771d5$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $56hu0.IS_WINDOWS) ? $8f071548850771d5$export$139298be7eb2bd(pythonVersion) : $5DFAC.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $56hu0.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $56hu0.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $coVwk.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $1o3Gj.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $8f071548850771d5$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $impuq.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $56hu0.validateVersion)(pythonVersion) || !(0, $56hu0.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $56hu0.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $8f071548850771d5$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $56hu0.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $5DFAC.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"impuq\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $7f55f27b3e761a95$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $7f55f27b3e761a95$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $7f55f27b3e761a95$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $7f55f27b3e761a95$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $7f55f27b3e761a95$export$4e25ef8c836002b9);\n\n\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $aaTTc = parcelRequire(\"aaTTc\");\n\nvar $bHzmH = parcelRequire(\"bHzmH\");\n\n\nvar $56hu0 = parcelRequire(\"56hu0\");\nasync function $7f55f27b3e761a95$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases !== null && releases !== void 0 ? releases : await $7f55f27b3e761a95$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $1o3Gj.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($kC5q1$os.EOL));\n releaseData = $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $1o3Gj.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $5DFAC.downloadTool(downloadUrl);\n $1o3Gj.info(\"Extracting downloaded archive...\");\n if (0, $56hu0.IS_WINDOWS) downloadDir = await $5DFAC.extractZip(pypyPath);\n else downloadDir = await $5DFAC.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($kC5q1$fs))).readdirSync(downloadDir)[0];\n const toolDir = $kC5q1$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $56hu0.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $5DFAC.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $56hu0.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $7f55f27b3e761a95$export$a053ce7a690fbb2e(installDir);\n await $7f55f27b3e761a95$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $7f55f27b3e761a95$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $5DFAC.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $1o3Gj.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $1o3Gj.info(err.message);\n if (err.stack !== undefined) $1o3Gj.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $7f55f27b3e761a95$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $aaTTc.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $7f55f27b3e761a95$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $coVwk.coerce(pythonVersion);\n const pythonBinaryPostfix = $coVwk.major(version);\n const pythonMinor = $coVwk.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $56hu0.IS_WINDOWS) ? \".exe\" : \"\";\n $1o3Gj.info(\"Creating symlinks...\");\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $7f55f27b3e761a95$var$installPip(pythonLocation) {\n $1o3Gj.info(\"Installing and updating pip\");\n const pythonBinary = $kC5q1$path.join(pythonLocation, \"python\");\n await $bHzmH.exec(`${pythonBinary} -m ensurepip`);\n await $bHzmH.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $coVwk.satisfies($coVwk.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $56hu0.isNightlyKeyword)(pypyVersion) && (0, $56hu0.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $coVwk.satisfies($7f55f27b3e761a95$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $56hu0.IS_WINDOWS) ? $7f55f27b3e761a95$export$652444ba12a0c7bb(item, architecture) : $7f55f27b3e761a95$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $coVwk.compare($coVwk.coerce($7f55f27b3e761a95$export$4e25ef8c836002b9(current.pypy_version)), $coVwk.coerce($7f55f27b3e761a95$export$4e25ef8c836002b9(previous.pypy_version))) || $coVwk.compare($coVwk.coerce(current.python_version), $coVwk.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $56hu0.IS_WINDOWS) ? $7f55f27b3e761a95$export$672a33957a3c888(foundRelease, architecture) : $7f55f27b3e761a95$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $7f55f27b3e761a95$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $kC5q1$path.join(installDir, \"bin\");\n return (0, $56hu0.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $7f55f27b3e761a95$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $7f55f27b3e761a95$export$652444ba12a0c7bb(item, architecture) {\n architecture = $7f55f27b3e761a95$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $56hu0.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $7f55f27b3e761a95$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $7f55f27b3e761a95$export$672a33957a3c888(releases, architecture) {\n architecture = $7f55f27b3e761a95$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $56hu0.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $7f55f27b3e761a95$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $7f55f27b3e761a95$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.7877377d.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/dist/legacy/actions_python.c7411d6b.js b/dist/legacy/actions_python.c7411d6b.js deleted file mode 100644 index c42ea6b9..00000000 --- a/dist/legacy/actions_python.c7411d6b.js +++ /dev/null @@ -1,3 +0,0 @@ -function $parcel$export(e,t,r,i){Object.defineProperty(e,t,{get:r,set:i,enumerable:!0,configurable:!0});}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e;}var $kC5q1$path=require("path"),$kC5q1$os=require("os"),$kC5q1$fs=require("fs"),$kC5q1$stream=require("stream"),$kC5q1$util=require("util"),$kC5q1$assert=require("assert"),$kC5q1$child_process=require("child_process"),$kC5q1$crypto=require("crypto"),$parcel$global=globalThis,parcelRequire=$parcel$global.parcelRequire810d,parcelRegister=parcelRequire.register;parcelRegister("8L9T2",function(e,t){var r,i,n,s,o,a,h,c,l;function u(e){return e.startsWith("pypy");}async function p(e,t,o){var c;h.IS_MAC&&(process.env.AGENT_TOOLSDIRECTORY="/Users/runner/hostedtoolcache");let l=null===(c=process.env.AGENT_TOOLSDIRECTORY)||void 0===c?void 0:c.trim();if("string"==typeof l&&""!==l&&(process.env.RUNNER_TOOL_CACHE=process.env.AGENT_TOOLSDIRECTORY),(0,s.debug)("Python is expected to be installed into "+process.env.RUNNER_TOOL_CACHE),e){let t;if(u(e)){let r=await(0,i.findPyPyVersion)(e,o,!0,d,!1);t=`${r.resolvedPyPyVersion}-${r.resolvedPythonVersion}`,(0,n.info)(`Successfully set up PyPy ${r.resolvedPyPyVersion} with Python (${r.resolvedPythonVersion})`);}else{let i=await(0,r.useCpythonVersion)(e,o,!0,d,!1);t=i.version,(0,n.info)(`Successfully set up ${i.impl} (${t})`);}}a.GITHUB_ACTIONS&&(await f());}async function f(){let e=(0,o.join)(l,"python_matcher.json");if(!(await(0,c.pathExists)(e)))return(0,n.warning)("the python_matcher.json file does not exist in the same folder as setup-cpp.js");(0,n.info)("::add-matcher::"+e);}$parcel$export(e.exports,"setupActionsPython",()=>p),r=parcelRequire("i8mEC"),i=parcelRequire("ktIgk"),n=parcelRequire("hHq4F"),s=parcelRequire("1o3Gj"),o=parcelRequire("eAXk4"),a=parcelRequire("dAuy6"),h=parcelRequire("56hu0"),c=parcelRequire("6t4SD"),l=$kC5q1$path.resolve(__dirname,"../../src/python");let d=!1;}),parcelRegister("i8mEC",function(e,t){var r,i,n,s,o;function a(e){return r.IS_WINDOWS?$kC5q1$path.join(e,"Scripts"):$kC5q1$path.join(e,"bin");}async function h(e,t,h,p,f){let d=null,m=u(c(e),f);if(s.debug(`Semantic version spec of ${e} is ${m}`),p){var y;d=await n.getManifest();let e=null===(y=await n.findReleaseFromManifest(m,t,d))||void 0===y?void 0:y.version;e?(m=e,s.info(`Resolved as '${m}'`)):s.info(`Failed to resolve version ${m} from manifest`);}let E=o.find("Python",m,t);if(!E){s.info(`Version ${m} was not found in the local cache`);let e=await n.findReleaseFromManifest(m,t,d);e&&e.files&&e.files.length>0&&(s.info(`Version ${m} is available for downloading`),await n.installCpythonFromRelease(e),E=o.find("Python",m,t));}if(!E){let i=await(0,r.getOSInfo)();throw Error([`The version '${e}' with architecture '${t}' was not found for ${i?`${i.osName} ${i.osVersion}`:"this operating system"}.`,"The list of all available versions can be found here: "+n.MANIFEST_URL].join($kC5q1$os.EOL));}let g=a(E),w=r.IS_WINDOWS?".exe":"",x=$kC5q1$path.join(r.IS_WINDOWS?E:g,"python"+w);if(h){if(s.exportVariable("pythonLocation",E),s.exportVariable("PKG_CONFIG_PATH",E+"/lib/pkgconfig"),s.exportVariable("pythonLocation",E),s.exportVariable("Python_ROOT_DIR",E),s.exportVariable("Python2_ROOT_DIR",E),s.exportVariable("Python3_ROOT_DIR",E),s.exportVariable("PKG_CONFIG_PATH",E+"/lib/pkgconfig"),r.IS_LINUX){let e=process.env.LD_LIBRARY_PATH?":"+process.env.LD_LIBRARY_PATH:"",t=$kC5q1$path.join(E,"lib");e.split(":").includes(t)||s.exportVariable("LD_LIBRARY_PATH",t+e);}if(s.addPath(E),s.addPath(g),r.IS_WINDOWS){let e=$kC5q1$path.basename($kC5q1$path.dirname(E)),t=i.major(e),r=i.minor(e),n=$kC5q1$path.join(process.env.APPDATA||"","Python",`Python${t}${r}`,"Scripts");s.addPath(n);}}let v=l(E);return s.setOutput("python-version",v),s.setOutput("python-path",x),{impl:"CPython",version:v};}function c(e){let t=/^(\d+)\.(\d+)-dev$/;return e.replace(t,"~$1.$2.0-0");}function l(e){let t=e.split($kC5q1$path.sep),r=t.findIndex(e=>"PyPy"===e||"Python"===e);return t[r+1]||"";}function u(e,t){let r=/(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g,i=/^(\d+)\.(\d+)$/,n=e.replace(r,"$1-$2");return t&&(n=n.replace(i,"~$1.$2.0-0")),n;}$parcel$export(e.exports,"useCpythonVersion",()=>h),r=parcelRequire("56hu0"),i=parcelRequire("coVwk"),n=parcelRequire("aN96g"),s=parcelRequire("1o3Gj"),o=parcelRequire("5DFAC");}),parcelRegister("56hu0",function(e,t){var r,i,n;function s(e,t,r,i=!1){let n=$kC5q1$path.join(e,t),s=$kC5q1$path.join(e,r);$parcel$interopDefault($kC5q1$fs).existsSync(s)||($parcel$interopDefault($kC5q1$fs).symlinkSync(n,s),!y&&i&&$parcel$interopDefault($kC5q1$fs).chmodSync(s,"755"));}function o(e){return a(e)||!!i.validRange(e);}function a(e){return"nightly"===e;}function h(e){return $kC5q1$path.basename($kC5q1$path.dirname(e));}function c(e){let t="",r=$kC5q1$path.join(e,v);return $parcel$interopDefault($kC5q1$fs).existsSync(r)&&(t=$parcel$interopDefault($kC5q1$fs).readFileSync(r).toString().trim()),t;}function l(e,t){let r=$kC5q1$path.join(e,v);$parcel$interopDefault($kC5q1$fs).writeFileSync(r,t);}function u(e){return /^\d+\.\d+$/.test(e);}async function p(){let{stdout:e}=await n.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{osName:"Windows",osVersion:e.trim().split(" ")[3]};}async function f(){let{stdout:e}=await n.getExecOutput("sw_vers",["-productVersion"],{silent:!0});return{osName:"macOS",osVersion:e.trim()};}async function d(){let{stdout:e}=await n.getExecOutput("lsb_release",["-i","-r","-s"],{silent:!0}),[t,i]=e.trim().split("\n");return r.debug(`OS Name: ${t}, Version: ${i}`),{osName:t,osVersion:i};}async function m(){let e;try{y?e=await p():E?e=await d():g&&(e=await f());}catch(t){let e=t;r.debug(e.message);}finally{return e;}}$parcel$export(e.exports,"IS_WINDOWS",()=>y),$parcel$export(e.exports,"IS_LINUX",()=>E),$parcel$export(e.exports,"IS_MAC",()=>g),$parcel$export(e.exports,"WINDOWS_ARCHS",()=>w),$parcel$export(e.exports,"WINDOWS_PLATFORMS",()=>x),$parcel$export(e.exports,"createSymlinkInFolder",()=>s),$parcel$export(e.exports,"validateVersion",()=>o),$parcel$export(e.exports,"isNightlyKeyword",()=>a),$parcel$export(e.exports,"getPyPyVersionFromPath",()=>h),$parcel$export(e.exports,"readExactPyPyVersionFile",()=>c),$parcel$export(e.exports,"writeExactPyPyVersionFile",()=>l),$parcel$export(e.exports,"validatePythonVersionFormatForPyPy",()=>u),$parcel$export(e.exports,"getOSInfo",()=>m),r=parcelRequire("1o3Gj"),i=parcelRequire("coVwk"),parcelRequire("jyjVK"),n=parcelRequire("bHzmH");let y="win32"===process.platform,E="linux"===process.platform,g="darwin"===process.platform,w=["x86","x64"],x=["win32","win64"],v="PYPY_VERSION";}),parcelRegister("jyjVK",function(e,t){var r;$parcel$export(e.exports,"parse",()=>r,e=>r=e),r=parcelRequire("3YHpW"),parcelRequire("AMirQ");}),parcelRegister("3YHpW",function(e,t){e.exports=parcelRequire("4ElZQ"),e.exports.async=parcelRequire("cn5IV"),e.exports.stream=parcelRequire("6Gy5N"),e.exports.prettyError=parcelRequire("2Aiv1");}),parcelRegister("4ElZQ",function(e,t){var r,i;function n(e){$parcel$global.Buffer&&$parcel$global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r();try{return t.parse(e),t.finish();}catch(t){throw i(t,e);}}e.exports=n,r=parcelRequire("kdMBf"),i=parcelRequire("2Aiv1");}),parcelRegister("kdMBf",function(module,exports){var $65V8s,$2Gq8U,$ackbS,$k3cxx;let _custom;function isDigit(e){return e>=CHAR_0&&e<=CHAR_9;}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9;}function isBit(e){return e===CHAR_1||e===CHAR_0;}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7;}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1);}function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}});}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE;}function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}});}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE;}function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}});}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST;}function List(){return Object.defineProperties([],{[_type]:{value:LIST}});}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST;}function Integer(e){let t=+e;return(Object.is(t,-0)&&(t=0),$parcel$global.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this);}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}});}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER;}function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}});}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT;}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer";}}return t;}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table();}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine();}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M;}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`));}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"));}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement);}recordAssignStatement(e){let t=this.ctx,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseWhitespaceToEOL);}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword);}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot);}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0;}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword);}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'));}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue);}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e});}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar());}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList);}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext);}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore);}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext);}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore);}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t;}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"));}recordValue(e){return this.returnNow(e);}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey);}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"));}while(this.nextChar());}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString);}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow();}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent);}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent));}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent));}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString);}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString);}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow();}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent);}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}errorControlCharInString(){let e="\\u00";return this.char<16&&(e+="0"),e+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${e} instead`));}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent);}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent));}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent));}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape);}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"));}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow();}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char));}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t));}catch(e){throw this.error(TomlError.wrap(e));}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan);}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart);}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger);}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf));}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf));}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"));}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf));}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly);}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf));}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"));}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"));}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf));}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth);}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour);}if(this.atEndOfWord())return this.returnNow($ackbS(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow($ackbS(this.state.result)):this.goto(this.parseTimeHour);}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"));}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction);}else throw this.error(new TomlError("Incomplete datetime"));}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin);}throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe);}else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return($k3cxx(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction);}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow($k3cxx(this.state.result+"."+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($65V8s(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($2Gq8U(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($65V8s(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($2Gq8U(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep);}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"));}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return($65V8s(this.state.result+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0;}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue);}recordInlineListValue(e){if(this.state.resultArr){let t=this.state.resultArr[_contentType],r=tomlType(e);if(t!==r)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${t} and ${r}`));}else this.state.resultArr=InlineList(tomlType(e));return isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext);}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue));}recordInlineTableValue(e){let t=this.state.resultTable,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseInlineTableNext);}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}}return t;}module.exports=makeParserClass(parcelRequire("a18Cz")),module.exports.makeParserClass=makeParserClass;class TomlError extends Error{constructor(e){super(e),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,TomlError),this.fromTOML=!0,this.wrapped=null;}}TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t;},module.exports.TomlError=TomlError,$65V8s=parcelRequire("65V8s"),$2Gq8U=parcelRequire("2Gq8U"),$ackbS=parcelRequire("ackbS"),$k3cxx=parcelRequire("k3cxx");let CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"},_type=Symbol(),_declared=Symbol(),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0},INLINE_TABLE=Symbol(),TABLE=Symbol(),_contentType=Symbol(),INLINE_LIST=Symbol(),LIST=Symbol();try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom;}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=$parcel$global.BigInt.asIntN(64,e);}catch(e){this.value=null;}Object.defineProperty(this,_type,{value:INTEGER});}isNaN(){return null===this.value;}toString(){return this.value+"";}[_inspect](){return`[BigInt: ${this.toString()}]}`;}valueOf(){return this.value;}}let INTEGER=Symbol(),FLOAT=Symbol();}),parcelRegister("a18Cz",function(e,t){let r=1114112;class i extends Error{constructor(e,t,r){super("[ParserError] "+e,t,r),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,i);}}class n{constructor(e){this.parser=e,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null;}}class s{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new n(this.parseStart);}parse(e){let t;if(0!==e.length&&null!=e.length){for(this._buf=e+"",this.ii=-1,this.char=-1;!1===t||this.nextChar();)t=this.runOne();this._buf=null;}}nextChar(){return 10===this.char&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer();}haveBuffer(){return this.ii{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("2Gq8U",function(e,t){var r=parcelRequire("d28ir");class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0;}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("d28ir",function(e,t){e.exports=(e,t)=>{for(t+="";t.length{let t=new n(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("k3cxx",function(e,t){var r=parcelRequire("d28ir");class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0;}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("2Aiv1",function(e,t){function r(e,t){if(null==e.pos||null==e.line)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: -`,t&&t.split){let i=t.split(/\n/),n=(Math.min(i.length,e.line+3)+"").length,s=" ";for(;s.length "+i[t]+"\n"+s+" ";for(let t=0;t=e.length)try{return s(a.finish());}catch(t){return o(i(t,e));}try{a.parse(e.slice(t,t+r)),setImmediate(n,t+r,r,s,o);}catch(t){o(i(t,e));}}t||(t={});let s=0,o=t.blocksize||40960,a=new r();return new Promise((e,t)=>{setImmediate(n,s,o,e,t);});}e.exports=n,r=parcelRequire("kdMBf"),i=parcelRequire("2Aiv1");}),parcelRegister("6Gy5N",function(e,t){var r;function i(e){return e?n(e):s(e);}function n(e){let t=new r();return e.setEncoding("utf8"),new Promise((r,i)=>{let n;function s(){if(h=!0,!n)try{r(t.finish());}catch(e){i(e);}}function o(e){c=!0,i(e);}function a(){let r;for(n=!0;null!==(r=e.read());)try{t.parse(r);}catch(e){return o(e);}if(n=!1,h)return s();c||e.once("readable",a);}let h=!1,c=!1;e.once("end",s),e.once("error",o),a();});}function s(){let e=new r();return new $kC5q1$stream.Transform({objectMode:!0,transform(t,r,i){try{e.parse(t.toString(r));}catch(e){this.emit("error",e);}i();},flush(t){try{this.push(e.finish());}catch(e){this.emit("error",e);}t();}});}e.exports=i,r=parcelRequire("kdMBf");}),parcelRegister("AMirQ",function(e,t){function r(e){if(null===e)throw i("null");if(void 0===e)throw i("undefined");if("object"!=typeof e)throw i(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=l(e);if("table"!==t)throw i(t);return h("","",e);}function i(e){return Error("Can only stringify objects, not "+e);}function n(){return Error("Array values can't have mixed types");}function s(e){return Object.keys(e).filter(t=>c(e[t]));}function o(e){return Object.keys(e).filter(t=>!c(e[t]));}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))!e[r]||"function"!=typeof e[r].toJSON||"toISOString"in e[r]?t[r]=e[r]:t[r]=e[r].toJSON();return t;}function h(e,t,r){i=s(r=a(r)),n=o(r);var i,n,h=[],c=t||"";i.forEach(e=>{var t=l(r[e]);"undefined"!==t&&"null"!==t&&h.push(c+u(e)+" = "+E(r[e],!0));}),h.length>0&&h.push("");var p=e&&i.length>0?t+" ":"";return n.forEach(t=>{h.push(R(e,p,t,r[t]));}),h.join("\n");}function c(e){switch(l(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==l(e[0]);case"table":return 0===Object.keys(e).length;default:return!1;}}function l(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table";}function u(e){var t=e+"";return /^[-A-Za-z0-9_]+$/.test(t)?t:p(t);}function p(e){return'"'+m(e).replace(/"/g,'\\"')+'"';}function f(e){return"'"+e+"'";}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)));}function y(e){let t=e.split(/\n/).map(e=>m(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""';}function E(e,t){let r=l(e);return"string"===r&&(t&&/\n/.test(e)?r="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(r="string-literal")),g(e,r);}function g(e,t){switch(t||(t=l(e)),t){case"string-multiline":return y(e);case"string":return p(e);case"string-literal":return f(e);case"integer":return w(e);case"float":return x(e);case"boolean":return v(e);case"datetime":return I(e);case"array":return S(e.filter(e=>"null"!==l(e)&&"undefined"!==l(e)&&"nan"!==l(e)));case"table":return T(e);default:throw i(t);}}function w(e){return(e+"").replace(/\B(?=(\d{3})+(?!\d))/g,"_");}function x(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";var t=(e+"").split("."),r=t[0],i=t[1]||0;return w(r)+"."+i;}function v(e){return e+"";}function I(e){return e.toISOString();}function b(e){return"float"===e||"integer"===e;}function O(e){var t=l(e[0]);return e.every(e=>l(e)===t)?t:e.every(e=>b(l(e)))?"float":"mixed";}function N(e){let t=O(e);if("mixed"===t)throw n();return t;}function S(e){let t=N(e=a(e));var r="[",i=e.map(e=>g(e,t));return i.join(", ").length>60||/\n/.test(i)?r+="\n "+i.join(",\n ")+"\n":r+=" "+i.join(", ")+(i.length>0?" ":""),r+"]";}function T(e){e=a(e);var t=[];return Object.keys(e).forEach(r=>{t.push(u(r)+" = "+E(e[r],!1));}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}";}function R(e,t,r,n){var s=l(n);if("array"===s)return P(e,t,r,n);if("table"===s)return A(e,t,r,n);throw i(s);}function P(e,t,r,n){N(n=a(n));var s=l(n[0]);if("table"!==s)throw i(s);var o=e+u(r),c="";return n.forEach(e=>{c.length>0&&(c+="\n"),c+=t+"[["+o+"]]\n"+h(o+".",t,e);}),c;}function A(e,t,r,i){var n=e+u(r),o="";return s(i).length>0&&(o+=t+"["+n+"]\n"),o+h(n+".",t,i);}e.exports=r,e.exports.value=g;}),parcelRegister("aN96g",function(e,t){var r,i,n,s;async function o(e,t,r){return r||(r=await a()),await i.findFromManifest(e,!1,r,t);}function a(){return r.debug(`Getting manifest from ${p}/${f}@${d}`),i.getManifestFromRepo(p,f,u,d);}async function h(e){let t={cwd:e,env:{...process.env,...(s.IS_LINUX&&{LD_LIBRARY_PATH:$kC5q1$path.join(e,"lib")})},silent:!0,listeners:{stdout(e){r.info(e.toString().trim());},stderr(e){r.error(e.toString().trim());}}};s.IS_WINDOWS?await n.exec("powershell",["./setup.ps1"],t):await n.exec("bash",["./setup.sh"],t);}async function c(e){let t=e.files[0].download_url;r.info(`Download from "${t}"`);let n="";try{let e;n=await i.downloadTool(t,void 0,u),r.info("Extract downloaded archive"),e=s.IS_WINDOWS?await i.extractZip(n):await i.extractTar(n),r.info("Execute installation script"),await h(e);}catch(e){throw e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),e.stack&&r.debug(e.stack)),e;}}$parcel$export(e.exports,"MANIFEST_URL",()=>m),$parcel$export(e.exports,"findReleaseFromManifest",()=>o),$parcel$export(e.exports,"getManifest",()=>a),$parcel$export(e.exports,"installCpythonFromRelease",()=>c),r=parcelRequire("1o3Gj"),i=parcelRequire("5DFAC"),n=parcelRequire("bHzmH"),s=parcelRequire("56hu0");let l=r.getInput("token"),u=l?"token "+l:void 0,p="actions",f="python-versions",d="main",m=`https://raw.githubusercontent.com/${p}/${f}/${d}/versions-manifest.json`;}),parcelRegister("5DFAC",function(e,t){function r(e,t,r,n){return R(this,void 0,void 0,function*(){t=t||F.join(I(),H.default()),yield D.mkdirP(F.dirname(t)),_.debug("Downloading "+e),_.debug("Destination "+t);let s=3,o=b("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),a=b("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),h=new L.RetryHelper(s,o,a);return yield h.execute(()=>R(this,void 0,void 0,function*(){return yield i(e,t||"",r,n);}),e=>!(e instanceof W)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});}function i(e,t,r,i){return R(this,void 0,void 0,function*(){if(M.existsSync(t))throw Error(`Destination file path ${t} already exists`);let n=new V.HttpClient(q,[],{allowRetries:!1});r&&(_.debug("set auth"),void 0===i&&(i={}),i.authorization=r);let s=yield n.get(e,i);if(200!==s.message.statusCode){let t=new W(s.message.statusCode);throw _.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),t;}let o=G.promisify(k.pipeline),a=b("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),h=!1;try{return yield o(a,M.createWriteStream(t)),_.debug("download complete"),h=!0,t;}finally{if(!h){_.debug("download failed");try{yield D.rmRF(t);}catch(e){_.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}function n(e,t,r){return R(this,void 0,void 0,function*(){$kC5q1$assert.ok(B,"extract7z() not supported on current OS"),$kC5q1$assert.ok(e,'parameter "file" is required'),t=yield y(t);let i=process.cwd();if(process.chdir(t),r)try{let t=_.isDebug()?"-bb1":"-bb0",i=["x",t,"-bd","-sccUTF-8",e],n={silent:!0};yield A.exec(`"${r}"`,i,n);}finally{process.chdir(i);}else{let r=F.join(C,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),n=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),s=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${r}' -Source '${n}' -Target '${s}'`],a={silent:!0};try{let e=yield D.which("powershell",!0);yield A.exec(`"${e}"`,o,a);}finally{process.chdir(i);}}return t;});}function s(e,t,r="xz"){return R(this,void 0,void 0,function*(){let i;if(!e)throw Error("parameter 'file' is required");t=yield y(t),_.debug("Checking tar --version");let n="";yield A.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>n+=e.toString(),stderr:e=>n+=e.toString()}}),_.debug(n.trim());let s=n.toUpperCase().includes("GNU TAR");i=r instanceof Array?r:[r],_.isDebug()&&!r.includes("v")&&i.push("-v");let o=t,a=e;return B&&s&&(i.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),s&&(i.push("--warning=no-unknown-keyword"),i.push("--overwrite")),i.push("-C",o,"-f",a),yield A.exec("tar",i),t;});}function o(e,t,r=[]){return R(this,void 0,void 0,function*(){let i;$kC5q1$assert.ok(X,"extractXar() not supported on current OS"),$kC5q1$assert.ok(e,'parameter "file" is required'),t=yield y(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),_.isDebug()&&i.push("-v");let n=yield D.which("xar",!0);return yield A.exec(`"${n}"`,O(i)),t;});}function a(e,t){return R(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield y(t),B?yield h(e,t):yield c(e,t),t;});}function h(e,t){return R(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=yield D.which("pwsh",!1);if(n){let e=["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else { throw $_ } } ;`];_.debug("Using pwsh at path: "+n),yield A.exec(`"${n}"`,e);}else{let e=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) }`],t=yield D.which("powershell",!0);_.debug("Using powershell at path: "+t),yield A.exec(`"${t}"`,e);}});}function c(e,t){return R(this,void 0,void 0,function*(){let r=yield D.which("unzip",!0),i=[e];_.isDebug()||i.unshift("-q"),i.unshift("-o"),yield A.exec(`"${r}"`,i,{cwd:t});});}function l(e,t,r,i){return R(this,void 0,void 0,function*(){if(r=U.clean(r)||r,i=i||j.arch(),_.debug(`Caching tool ${t} ${r} ${i}`),_.debug("source dir: "+e),!M.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let n=yield E(t,r,i);for(let t of M.readdirSync(e)){let r=F.join(e,t);yield D.cp(r,n,{recursive:!0});}return g(t,r,i),n;});}function u(e,t,r,i,n){return R(this,void 0,void 0,function*(){if(i=U.clean(i)||i,n=n||j.arch(),_.debug(`Caching tool ${r} ${i} ${n}`),_.debug("source file: "+e),!M.statSync(e).isFile())throw Error("sourceFile is not a file");let s=yield E(r,i,n),o=F.join(s,t);return _.debug("destination file "+o),yield D.cp(e,o),g(r,i,n),s;});}function p(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||j.arch(),w(t)||(t=x(f(e,r),t));let i="";if(t){t=U.clean(t)||"";let n=F.join(v(),e,t,r);_.debug("checking cache: "+n),M.existsSync(n)&&M.existsSync(`${n}.complete`)?(_.debug(`Found tool in cache ${e} ${t} ${r}`),i=n):_.debug("not found");}return i;}function f(e,t){let r=[];t=t||j.arch();let i=F.join(v(),e);if(M.existsSync(i)){for(let e of M.readdirSync(i))if(w(e)){let n=F.join(i,e,t||"");M.existsSync(n)&&M.existsSync(`${n}.complete`)&&r.push(e);}}return r;}function d(e,t,r,i="master"){return R(this,void 0,void 0,function*(){let n=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${i}`,o=new V.HttpClient("tool-cache"),a={};r&&(_.debug("set auth"),a.authorization=r);let h=yield o.getJson(s,a);if(!h.result)return n;let c="";for(let e of h.result.tree)if("versions-manifest.json"===e.path){c=e.url;break;}a.accept="application/vnd.github.VERSION.raw";let l=yield(yield o.get(c,a)).readBody();if(l){l=l.replace(/^\uFEFF/,"");try{n=JSON.parse(l);}catch(e){_.debug("Invalid json");}}return n;});}function m(e,t,r,i=j.arch()){return R(this,void 0,void 0,function*(){return yield $._findMatch(e,t,r,i);});}function y(e){return R(this,void 0,void 0,function*(){return e||(e=F.join(I(),H.default())),yield D.mkdirP(e),e;});}function E(e,t,r){return R(this,void 0,void 0,function*(){let i=F.join(v(),e,U.clean(t)||t,r||"");_.debug("destination "+i);let n=`${i}.complete`;return yield D.rmRF(i),yield D.rmRF(n),yield D.mkdirP(i),i;});}function g(e,t,r){let i=F.join(v(),e,U.clean(t)||t,r||""),n=`${i}.complete`;M.writeFileSync(n,""),_.debug("finished caching tool");}function w(e){let t=U.clean(e)||"";_.debug("isExplicit: "+t);let r=null!=U.valid(t);return _.debug("explicit? "+r),r;}function x(e,t){let r="";_.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>U.gt(e,t)?1:-1);for(let i=e.length-1;i>=0;i--){let n=e[i];if(U.satisfies(n,t)){r=n;break;}}return r?_.debug("matched: "+r):_.debug("match not found"),r;}function v(){let e=process.env.RUNNER_TOOL_CACHE||"";return $kC5q1$assert.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function I(){let e=process.env.RUNNER_TEMP||"";return $kC5q1$assert.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function b(e,t){let r=$parcel$global[e];return void 0!==r?r:t;}function O(e){return Array.from(new Set(e));}var N,S,T,R,P,A,L,C=$kC5q1$path.resolve(__dirname,"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib");N=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),S=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),T=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&N(t,e,r);return S(t,e),t;},R=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},P=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.evaluateVersions=e.exports.isExplicitVersion=e.exports.findFromManifest=e.exports.getManifestFromRepo=e.exports.findAllVersions=e.exports.find=e.exports.cacheFile=e.exports.cacheDir=e.exports.extractZip=e.exports.extractXar=e.exports.extractTar=e.exports.extract7z=e.exports.downloadTool=e.exports.HTTPError=void 0;let _=T(parcelRequire("1o3Gj")),D=T(parcelRequire("zdagz")),M=T($kC5q1$fs),$=T(parcelRequire("hzNJS")),j=T($kC5q1$os),F=T($kC5q1$path),V=T(parcelRequire("eamjo")),U=T(parcelRequire("4IOon")),k=T($kC5q1$stream),G=T($kC5q1$util),H=P(parcelRequire("cJF00"));A=parcelRequire("bHzmH"),L=parcelRequire("1kmXt");class W extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}e.exports.HTTPError=W;let B="win32"===process.platform,X="darwin"===process.platform,q="actions/tool-cache";e.exports.downloadTool=r,e.exports.extract7z=n,e.exports.extractTar=s,e.exports.extractXar=o,e.exports.extractZip=a,e.exports.cacheDir=l,e.exports.cacheFile=u,e.exports.find=p,e.exports.findAllVersions=f,e.exports.getManifestFromRepo=d,e.exports.findFromManifest=m,e.exports.isExplicitVersion=w,e.exports.evaluateVersions=x;}),parcelRegister("hzNJS",function(e,t){var r,i,n,s,o;function a(t,r,i,n){return s(this,void 0,void 0,function*(){let s,a,h;let c=$kC5q1$os.platform();for(let s of i){let i=s.version;if(o.debug(`check ${i} satisfies ${t}`),l.satisfies(i,t)&&(!r||s.stable===r)&&(h=s.files.find(t=>{o.debug(`${t.arch}===${n} && ${t.platform}===${c}`);let r=t.arch===n&&t.platform===c;if(r&&t.platform_version){let i=e.exports._getOsVersion();r=i===t.platform_version||l.satisfies(i,t.platform_version);}return r;}))){o.debug("matched "+s.version),a=s;break;}}return a&&h&&((s=Object.assign({},a)).files=[h]),s;});}function h(){let t=$kC5q1$os.platform(),r="";if("darwin"===t)r=$kC5q1$child_process.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;}function c(){let e="/etc/lsb-release",t="/etc/os-release",r="";return $kC5q1$fs.existsSync(e)?r=$kC5q1$fs.readFileSync(e).toString():$kC5q1$fs.existsSync(t)&&(r=$kC5q1$fs.readFileSync(t).toString()),r;}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),i=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t;},s=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let l=n(parcelRequire("4IOon"));o=parcelRequire("1o3Gj"),e.exports._findMatch=a,e.exports._getOsVersion=h,e.exports._readLinuxVersionFile=c;}),parcelRegister("4IOon",function(e,t){function r(e){eh[e]=ec++;}function i(e){for(var t=0;tet||!(t.loose?eo[eh.LOOSE]:eo[eh.FULL]).test(e))return null;try{return new a(e,t);}catch(e){return null;}}function s(e,t){var r=n(e,t);return r?r.version:null;}function o(e,t){var r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null;}function a(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof a){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>et)throw TypeError("version is longer than "+et+" characters");if(!(this instanceof a))return new a(e,t);ee("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?eo[eh.LOOSE]:eo[eh.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>er||this.major<0)throw TypeError("Invalid major version");if(this.minor>er||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>er||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function u(e,t){return l(t,e);}function p(e,t){return new a(e,t).major;}function f(e,t){return new a(e,t).minor;}function d(e,t){return new a(e,t).patch;}function m(e,t,r){return new a(e,r).compare(new a(t,r));}function y(e,t){return m(e,t,!0);}function E(e,t,r){var i=new a(e,r),n=new a(t,r);return i.compare(n)||i.compareBuild(n);}function g(e,t,r){return m(t,e,r);}function w(e,r){return e.sort(function(e,i){return t.compareBuild(e,i,r);});}function x(e,r){return e.sort(function(e,i){return t.compareBuild(i,e,r);});}function v(e,t,r){return m(e,t,r)>0;}function I(e,t,r){return 0>m(e,t,r);}function b(e,t,r){return 0===m(e,t,r);}function O(e,t,r){return 0!==m(e,t,r);}function N(e,t,r){return m(e,t,r)>=0;}function S(e,t,r){return 0>=m(e,t,r);}function T(e,t,r,i){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return b(e,r,i);case"!=":return O(e,r,i);case">":return v(e,r,i);case">=":return N(e,r,i);case"<":return I(e,r,i);case"<=":return S(e,r,i);default:throw TypeError("Invalid operator: "+t);}}function R(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof R){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof R))return new R(e,t);e=e.trim().split(/\s+/).join(" "),ee("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ey?this.value="":this.value=this.operator+this.semver.version,ee("comp",this);}function P(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof P)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new P(e.raw,t);if(e instanceof R)return new P(e.value,t);if(!(this instanceof P))return new P(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function A(e,t){for(var r=!0,i=e.slice(),n=i.pop();r&&i.length;)r=i.every(function(e){return n.intersects(e,t);}),n=i.pop();return r;}function L(e,t){return new P(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});}function C(e,t){return ee("comp",e,t),e=$(e,t),ee("caret",e),e=D(e,t),ee("tildes",e),e=F(e,t),ee("xrange",e),e=U(e,t),ee("stars",e),e;}function _(e){return!e||"x"===e.toLowerCase()||"*"===e;}function D(e,t){return e.trim().split(/\s+/).map(function(e){return M(e,t);}).join(" ");}function M(e,t){var r=t.loose?eo[eh.TILDELOOSE]:eo[eh.TILDE];return e.replace(r,function(t,r,i,n,s){var o;return ee("tilde",e,t,r,i,n,s),_(r)?o="":_(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":_(n)?o=">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":s?(ee("replaceTilde pr",s),o=">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0"):o=">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0",ee("tilde return",o),o;});}function $(e,t){return e.trim().split(/\s+/).map(function(e){return j(e,t);}).join(" ");}function j(e,t){ee("caret",e,t);var r=t.loose?eo[eh.CARETLOOSE]:eo[eh.CARET];return e.replace(r,function(t,r,i,n,s){var o;return ee("caret",e,t,r,i,n,s),_(r)?o="":_(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":_(n)?o="0"===r?">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":">="+r+"."+i+".0 <"+(+r+1)+".0.0":s?(ee("replaceCaret pr",s),o="0"===r?"0"===i?">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+"-"+s+" <"+(+r+1)+".0.0"):(ee("no pr"),o="0"===r?"0"===i?">="+r+"."+i+"."+n+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+" <"+(+r+1)+".0.0"),ee("caret return",o),o;});}function F(e,t){return ee("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return V(e,t);}).join(" ");}function V(e,t){e=e.trim();var r=t.loose?eo[eh.XRANGELOOSE]:eo[eh.XRANGE];return e.replace(r,function(r,i,n,s,o,a){ee("xRange",e,r,i,n,s,o,a);var h=_(n),c=h||_(s),l=c||_(o),u=l;return"="===i&&u&&(i=""),a=t.includePrerelease?"-0":"",h?r=">"===i||"<"===i?"<0.0.0-0":"*":i&&u?(c&&(s=0),o=0,">"===i?(i=">=",c?(n=+n+1,s=0):s=+s+1,o=0):"<="===i&&(i="<",c?n=+n+1:s=+s+1),r=i+n+"."+s+"."+o+a):c?r=">="+n+".0.0"+a+" <"+(+n+1)+".0.0"+a:l&&(r=">="+n+"."+s+".0"+a+" <"+n+"."+(+s+1)+".0"+a),ee("xRange return",r),r;});}function U(e,t){return ee("replaceStars",e,t),e.trim().replace(eo[eh.STAR],"");}function k(e,t,r,i,n,s,o,a,h,c,l,u,p){return((t=_(r)?"":_(i)?">="+r+".0.0":_(n)?">="+r+"."+i+".0":">="+t)+" "+(a=_(h)?"":_(c)?"<"+(+h+1)+".0.0":_(l)?"<"+h+"."+(+c+1)+".0":u?"<="+h+"."+c+"."+l+"-"+u:"<="+a)).trim();}function G(e,t,r){for(var i=0;i0){var n=e[i].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;}function H(e,t,r){try{t=new P(t,r);}catch(e){return!1;}return t.test(e);}function W(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||-1===n.compare(e))&&(n=new a(i=e,r));}),i;}function B(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||1===n.compare(e))&&(n=new a(i=e,r));}),i;}function X(e,t){e=new P(e,t);var r=new a("0.0.0");if(e.test(r)||(r=new a("0.0.0-0"),e.test(r)))return r;r=null;for(var i=0;i":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||v(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;}function q(e,t){try{return new P(e,t).range||"*";}catch(e){return null;}}function z(e,t,r){return K(e,t,"<",r);}function Z(e,t,r){return K(e,t,">",r);}function K(e,t,r,i){switch(e=new a(e,i),t=new P(t,i),r){case">":n=v,s=S,o=I,h=">",c=">=";break;case"<":n=I,s=N,o=v,h="<",c="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(H(e,t,i))return!1;for(var n,s,o,h,c,l=0;l=0.0.0")),p=p||e,f=f||e,n(e.semver,p.semver,i)?p=e:o(e.semver,f.semver,i)&&(f=e);}),p.operator===h||p.operator===c||(!f.operator||f.operator===h)&&s(e,f.semver)||f.operator===c&&o(e,f.semver))return!1;}return!0;}function Y(e,t){var r=n(e,t);return r&&r.prerelease.length?r.prerelease:null;}function J(e,t,r){return e=new P(e,r),t=new P(t,r),e.intersects(t);}function Q(e,t){if(e instanceof a)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,i=null;if((t=t||{}).rtl){for(;(r=eo[eh.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),eo[eh.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;eo[eh.COERCERTL].lastIndex=-1;}else i=e.match(eo[eh.COERCE]);return null===i?null:n(i[2]+"."+(i[3]||"0")+"."+(i[4]||"0"),t);}t=e.exports=a,ee="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",et=256,er=Number.MAX_SAFE_INTEGER||9007199254740991,ei=16,en=et-6,es=t.re=[],eo=t.safeRe=[],ea=t.src=[],eh=t.tokens={},ec=0,eu=[["\\s",1],["\\d",et],[el="[a-zA-Z0-9-]",en]],r("NUMERICIDENTIFIER"),ea[eh.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),ea[eh.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),ea[eh.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+el+"*",r("MAINVERSION"),ea[eh.MAINVERSION]="("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),ea[eh.MAINVERSIONLOOSE]="("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),ea[eh.PRERELEASEIDENTIFIER]="(?:"+ea[eh.NUMERICIDENTIFIER]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),ea[eh.PRERELEASEIDENTIFIERLOOSE]="(?:"+ea[eh.NUMERICIDENTIFIERLOOSE]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),ea[eh.PRERELEASE]="(?:-("+ea[eh.PRERELEASEIDENTIFIER]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),ea[eh.PRERELEASELOOSE]="(?:-?("+ea[eh.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),ea[eh.BUILDIDENTIFIER]=el+"+",r("BUILD"),ea[eh.BUILD]="(?:\\+("+ea[eh.BUILDIDENTIFIER]+"(?:\\."+ea[eh.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),ea[eh.FULLPLAIN]="v?"+ea[eh.MAINVERSION]+ea[eh.PRERELEASE]+"?"+ea[eh.BUILD]+"?",ea[eh.FULL]="^"+ea[eh.FULLPLAIN]+"$",r("LOOSEPLAIN"),ea[eh.LOOSEPLAIN]="[v=\\s]*"+ea[eh.MAINVERSIONLOOSE]+ea[eh.PRERELEASELOOSE]+"?"+ea[eh.BUILD]+"?",r("LOOSE"),ea[eh.LOOSE]="^"+ea[eh.LOOSEPLAIN]+"$",r("GTLT"),ea[eh.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),ea[eh.XRANGEIDENTIFIERLOOSE]=ea[eh.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),ea[eh.XRANGEIDENTIFIER]=ea[eh.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),ea[eh.XRANGEPLAIN]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:"+ea[eh.PRERELEASE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),ea[eh.XRANGEPLAINLOOSE]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:"+ea[eh.PRERELEASELOOSE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGE"),ea[eh.XRANGE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAIN]+"$",r("XRANGELOOSE"),ea[eh.XRANGELOOSE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAINLOOSE]+"$",r("COERCE"),ea[eh.COERCE]="(^|[^\\d])(\\d{1,"+ei+"})(?:\\.(\\d{1,"+ei+"}))?(?:\\.(\\d{1,"+ei+"}))?(?:$|[^\\d])",r("COERCERTL"),es[eh.COERCERTL]=RegExp(ea[eh.COERCE],"g"),eo[eh.COERCERTL]=RegExp(i(ea[eh.COERCE]),"g"),r("LONETILDE"),ea[eh.LONETILDE]="(?:~>?)",r("TILDETRIM"),ea[eh.TILDETRIM]="(\\s*)"+ea[eh.LONETILDE]+"\\s+",es[eh.TILDETRIM]=RegExp(ea[eh.TILDETRIM],"g"),eo[eh.TILDETRIM]=RegExp(i(ea[eh.TILDETRIM]),"g"),ep="$1~",r("TILDE"),ea[eh.TILDE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAIN]+"$",r("TILDELOOSE"),ea[eh.TILDELOOSE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAINLOOSE]+"$",r("LONECARET"),ea[eh.LONECARET]="(?:\\^)",r("CARETTRIM"),ea[eh.CARETTRIM]="(\\s*)"+ea[eh.LONECARET]+"\\s+",es[eh.CARETTRIM]=RegExp(ea[eh.CARETTRIM],"g"),eo[eh.CARETTRIM]=RegExp(i(ea[eh.CARETTRIM]),"g"),ef="$1^",r("CARET"),ea[eh.CARET]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAIN]+"$",r("CARETLOOSE"),ea[eh.CARETLOOSE]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),ea[eh.COMPARATORLOOSE]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),ea[eh.COMPARATOR]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),ea[eh.COMPARATORTRIM]="(\\s*)"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+"|"+ea[eh.XRANGEPLAIN]+")",es[eh.COMPARATORTRIM]=RegExp(ea[eh.COMPARATORTRIM],"g"),eo[eh.COMPARATORTRIM]=RegExp(i(ea[eh.COMPARATORTRIM]),"g"),ed="$1$2$3",r("HYPHENRANGE"),ea[eh.HYPHENRANGE]="^\\s*("+ea[eh.XRANGEPLAIN]+")\\s+-\\s+("+ea[eh.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),ea[eh.HYPHENRANGELOOSE]="^\\s*("+ea[eh.XRANGEPLAINLOOSE]+")\\s+-\\s+("+ea[eh.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),ea[eh.STAR]="(<|>)?=?\\s*\\*";for(var ee,et,er,ei,en,es,eo,ea,eh,ec,el,eu,ep,ef,ed,em,ey,eE=0;eE=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=h,t.diff=c,t.compareIdentifiers=l,em=/^[0-9]+$/,t.rcompareIdentifiers=u,t.major=p,t.minor=f,t.patch=d,t.compare=m,t.compareLoose=y,t.compareBuild=E,t.rcompare=g,t.sort=w,t.rsort=x,t.gt=v,t.lt=I,t.eq=b,t.neq=O,t.gte=N,t.lte=S,t.cmp=T,t.Comparator=R,ey={},R.prototype.parse=function(e){var t=this.options.loose?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new a(r[2],this.options.loose):this.semver=ey;},R.prototype.toString=function(){return this.value;},R.prototype.test=function(e){if(ee("Comparator.test",e,this.options.loose),this.semver===ey||e===ey)return!0;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}return T(e,this.operator,this.semver,this.options);},R.prototype.intersects=function(e,t){if(!(e instanceof R))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new P(e.value,t),H(this.value,r,t));if(""===e.operator)return""===e.value||(r=new P(this.value,t),H(e.semver,r,t));var r,i=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),n=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),s=this.semver.version===e.semver.version,o=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),a=T(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),h=T(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||n||s&&o||a||h;},t.Range=P,P.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},P.prototype.toString=function(){return this.range;},P.prototype.parseRange=function(e){var t=this.options.loose,r=t?eo[eh.HYPHENRANGELOOSE]:eo[eh.HYPHENRANGE];e=e.replace(r,k),ee("hyphen replace",e),e=e.replace(eo[eh.COMPARATORTRIM],ed),ee("comparator trim",e,eo[eh.COMPARATORTRIM]),e=(e=(e=e.replace(eo[eh.TILDETRIM],ep)).replace(eo[eh.CARETTRIM],ef)).split(/\s+/).join(" ");var i=t?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],n=e.split(" ").map(function(e){return C(e,this.options);},this).join(" ").split(/\s+/);return this.options.loose&&(n=n.filter(function(e){return!!e.match(i);})),n=n.map(function(e){return new R(e,this.options);},this);},P.prototype.intersects=function(e,t){if(!(e instanceof P))throw TypeError("a Range is required");return this.set.some(function(r){return A(r,t)&&e.set.some(function(e){return A(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=L,P.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}for(var t=0;tthis.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return s(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}}e.exports.RetryHelper=a;}),parcelRegister("ktIgk",function(e,t){var r,i,n,s,o;async function a(e,t,n,o,a){let l,u,p="",f="",d=c(e);if(o&&(u=await r.getAvailablePyPyVersions())&&u.length>0){let e=r.findRelease(u,d.pythonVersion,d.pypyVersion,t,!1);e?(s.info(`Resolved as PyPy ${e.resolvedPyPyVersion} with Python (${e.resolvedPythonVersion})`),d.pythonVersion=e.resolvedPythonVersion,d.pypyVersion=e.resolvedPyPyVersion):s.info(`Failed to resolve PyPy ${d.pypyVersion} with Python (${d.pythonVersion}) from manifest`);}({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=h(d.pythonVersion,d.pypyVersion,t)),l||({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=await r.installPyPy(d.pypyVersion,d.pythonVersion,t,a,u));let m=i.IS_WINDOWS?"Scripts":"bin",y=$kC5q1$path.join(l,m),E=i.IS_WINDOWS?".exe":"",g=$kC5q1$path.join(i.IS_WINDOWS?l:y,"python"+E),w=r.getPyPyBinaryPath(l);return n&&(s.exportVariable("pythonLocation",l),s.exportVariable("Python_ROOT_DIR",l),s.exportVariable("Python2_ROOT_DIR",l),s.exportVariable("Python3_ROOT_DIR",l),s.exportVariable("PKG_CONFIG_PATH",w+"/lib/pkgconfig"),s.addPath(w),s.addPath(y)),s.setOutput("python-version","pypy"+p),s.setOutput("python-path",g),{resolvedPyPyVersion:p,resolvedPythonVersion:f};}function h(e,t,r){let a="",h="",c=i.IS_WINDOWS?l(e):o.find("PyPy",e,r);return c&&(h=(0,i.getPyPyVersionFromPath)(c),a=(0,i.readExactPyPyVersionFile)(c),n.satisfies(a,t)||(c=null,a="",h="")),c||s.info(`PyPy version ${e} (${t}) was not found in the local cache`),{installDir:c,resolvedPythonVersion:h,resolvedPyPyVersion:a};}function c(e){let t;let n=e.split("-").filter(e=>!!e);if(/^(pypy)(.+)/.test(n[0])){let e=n[0].replace("pypy","");n.splice(0,1,"pypy",e);}if(n.length<2||"pypy"!=n[0])throw Error("Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.");let s=n[1];if(t=n.length>2?r.pypyVersionToSemantic(n[2]):"x",!(0,i.validateVersion)(s)||!(0,i.validateVersion)(t))throw Error("Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.");if(!(0,i.validatePythonVersionFormatForPyPy)(s))throw Error("Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.");return{pypyVersion:t,pythonVersion:s};}function l(e){let t="";return(0,i.WINDOWS_ARCHS).forEach(r=>t=t||o.find("PyPy",e,r)),t;}$parcel$export(e.exports,"findPyPyVersion",()=>a),r=parcelRequire("impuq"),i=parcelRequire("56hu0"),n=parcelRequire("coVwk"),s=parcelRequire("1o3Gj"),o=parcelRequire("5DFAC");}),parcelRegister("impuq",function(e,t){var r,i,n,s,o,a;async function h(e,t,n,s,o){let h;if(!(o=null!=o?o:await c())||0===o.length)throw Error("No release was found in PyPy version.json");let d=p(o,t,e,n,!1);if(!s||d&&d.foundAsset||(r.info([`Stable PyPy version ${t} (${e}) with arch ${n} not found`,"Trying pre-release versions"].join($kC5q1$os.EOL)),d=p(o,t,e,n,!0)),!d||!d.foundAsset)throw Error(`PyPy version ${t} (${e}) with arch ${n} not found`);let{foundAsset:m,resolvedPythonVersion:y,resolvedPyPyVersion:E}=d,g=""+m.download_url;r.info(`Downloading PyPy from "${g}" ...`);try{let e=await i.downloadTool(g);r.info("Extracting downloaded archive..."),h=a.IS_WINDOWS?await i.extractZip(e):await i.extractTar(e,void 0,"x");let t=$parcel$interopDefault($kC5q1$fs).readdirSync(h)[0],s=$kC5q1$path.join(h,t),o=s;(0,a.isNightlyKeyword)(E)||(o=await i.cacheDir(s,"PyPy",y,n)),(0,a.writeExactPyPyVersionFile)(o,E);let c=f(o);return await l(c,y),await u(c),{installDir:o,resolvedPythonVersion:y,resolvedPyPyVersion:E};}catch(e){throw e instanceof Error&&(e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode)?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),void 0!==e.stack&&r.debug(e.stack)),e;}}async function c(){let e="https://downloads.python.org/pypy/versions.json",t=new s.HttpClient("tool-cache"),r=await t.getJson(e);if(!r.result)throw Error(`Unable to retrieve the list of available PyPy versions from '${e}'`);return r.result;}async function l(e,t){let i=n.coerce(t),s=n.major(i),o=n.minor(i),h=2===s?"":"3",c=`${s}.${o}`,l=a.IS_WINDOWS?".exe":"";r.info("Creating symlinks..."),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`python${s}${l}`,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,"python"+l,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`pypy${c}${l}`,!0);}async function u(e){r.info("Installing and updating pip");let t=$kC5q1$path.join(e,"python");await o.exec(`${t} -m ensurepip`),await o.exec(`${e}/python -m pip install --ignore-installed pip`);}function p(e,t,r,i,s){let o={includePrerelease:s},h=e.filter(e=>{let s=n.satisfies(n.coerce(e.python_version),t),h=(0,a.isNightlyKeyword)(r)&&(0,a.isNightlyKeyword)(e.pypy_version)||n.satisfies(d(e.pypy_version),r,o),c=e.files&&(a.IS_WINDOWS?m(e,i):y(e,i,process.platform));return s&&h&&c;});if(0===h.length)return null;let c=h.sort((e,t)=>n.compare(n.coerce(d(t.pypy_version)),n.coerce(d(e.pypy_version)))||n.compare(n.coerce(t.python_version),n.coerce(e.python_version)))[0];return{foundAsset:a.IS_WINDOWS?E(c,i):g(c,i,process.platform),resolvedPythonVersion:c.python_version,resolvedPyPyVersion:c.pypy_version.trim()};}function f(e){let t=$kC5q1$path.join(e,"bin");return a.IS_WINDOWS?e:t;}function d(e){let t=/(\d+\.\d+\.\d+)((?:a|b|rc))(\d*)/g;return e.replace(t,"$1-$2.$3");}function m(e,t){return t=w(t),e.files.some(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function y(e,t,r){return e.files.some(e=>e.arch===t&&e.platform===r);}function E(e,t){return t=w(t),e.files.find(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function g(e,t,r){return e.files.find(e=>e.arch===t&&e.platform===r);}function w(e){return"x32"===e&&(e="x86"),e;}$parcel$export(e.exports,"installPyPy",()=>h),$parcel$export(e.exports,"getAvailablePyPyVersions",()=>c),$parcel$export(e.exports,"findRelease",()=>p),$parcel$export(e.exports,"getPyPyBinaryPath",()=>f),$parcel$export(e.exports,"pypyVersionToSemantic",()=>d),r=parcelRequire("1o3Gj"),i=parcelRequire("5DFAC"),n=parcelRequire("coVwk"),s=parcelRequire("eamjo"),o=parcelRequire("bHzmH"),a=parcelRequire("56hu0");}); -//# sourceMappingURL=actions_python.c7411d6b.js.map \ No newline at end of file diff --git a/dist/legacy/actions_python.c7411d6b.js.map b/dist/legacy/actions_python.c7411d6b.js.map deleted file mode 100644 index 20ba888a..00000000 --- a/dist/legacy/actions_python.c7411d6b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"actions_python.c7411d6b.js","names":["u","e","startsWith","p","t","o","c","h","IS_MAC","process","env","AGENT_TOOLSDIRECTORY","l","trim","RUNNER_TOOL_CACHE","s","debug","r","i","findPyPyVersion","d","resolvedPyPyVersion","resolvedPythonVersion","n","info","useCpythonVersion","version","impl","a","GITHUB_ACTIONS","f","join","pathExists","warning","IS_WINDOWS","$kC5q1$path","m","y","getManifest","findReleaseFromManifest","E","find","files","length","installCpythonFromRelease","getOSInfo","Error","osName","osVersion","MANIFEST_URL","$kC5q1$os","EOL","g","w","x","exportVariable","IS_LINUX","LD_LIBRARY_PATH","split","includes","addPath","basename","dirname","major","minor","APPDATA","v","setOutput","replace","sep","findIndex","$parcel$interopDefault","$kC5q1$fs","existsSync","symlinkSync","chmodSync","validRange","readFileSync","toString","writeFileSync","test","stdout","getExecOutput","silent","message","parcelRequire","platform","exports","async","stream","prettyError","$parcel$global","Buffer","isBuffer","parse","finish","_custom","isDigit","CHAR_0","CHAR_9","isHexit","CHAR_A","CHAR_F","CHAR_a","CHAR_f","isBit","CHAR_1","isOctit","CHAR_7","isAlphaNumQuoteHyphen","CHAR_Z","CHAR_z","CHAR_APOS","CHAR_QUOT","CHAR_LOWBAR","CHAR_HYPHEN","isAlphaNumHyphen","hasKey","hasOwnProperty","call","defineProperty","descriptor","InlineTable","Object","defineProperties","_type","value","INLINE_TABLE","isInlineTable","Table","TABLE","_declared","writable","isTable","InlineList","INLINE_LIST","_contentType","isInlineList","List","LIST","isList","Integer","is","BigInt","Number","isSafeInteger","BoxedBigInt","isNaN","INTEGER","_inspect","isInteger","Float","FLOAT","isFloat","tomlType","Date","makeParserClass","constructor","ctx","obj","atEndOfWord","char","CHAR_NUM","CTRL_I","CHAR_SP","atEndOfLine","END","CTRL_J","CTRL_M","parseStart","CHAR_LSQB","parseTableOrList","parseComment","callNow","parseAssignStatement","error","TomlError","parseWhitespaceToEOL","goto","return","parseAssign","recordAssignStatement","key","pop","valueOf","parseKeyword","recordAssignKeyword","state","resultTable","push","parseAssignKeywordPreDot","CHAR_PERIOD","next","parseAssignKeywordPostDot","parseAssignEqual","CHAR_EQUALS","parseAssignPreValue","parseValue","recordAssignValue","returnNow","nextChar","parseTable","parseList","parseTableNext","parseTableMore","CHAR_RSQB","parseListNext","parseListMore","parseListEnd","parseDoubleString","parseSingleString","CHAR_PLUS","parseNumberSign","CHAR_i","parseInf","CHAR_n","parseNan","parseNumberOrDateTime","CHAR_t","parseBoolean","parseInlineList","recordValue","CHAR_LCUB","parseInlineTable","parseInf2","buf","parseNan2","NaN","parseBasicString","parseLiteralString","parseBareKey","consume","parseLiteralMultiStringMaybe","CHAR_DEL","CTRL_CHAR_BOUNDARY","errorControlCharInString","parseLiteralMultiString","parseLiteralMultiStringContent","parseLiteralMultiEnd","parseLiteralMultiEnd2","parseMultiStringMaybe","CHAR_BSOL","parseEscape","recordEscapeReplacement","parseMultiString","parseMultiStringContent","parseMultiEscape","recordMultiEscapeReplacement","parseMultiEnd","parseMultiEnd2","parseMultiTrim","parsePreMultiTrim","escapes","CHAR_u","parseSmallUnicode","parseUnicodeReturn","CHAR_U","parseLargeUnicode","parseInt","SURROGATE_FIRST","SURROGATE_LAST","String","fromCodePoint","wrap","parseMaybeSignedInfOrNan","parseNoUnder","parseNumberIntegerStart","parseNumberIntegerExponentOrDecimal","parseNumberInteger","parseNumberFloat","CHAR_E","CHAR_e","parseNumberExponentSign","parseNoUnderHexOctBinLiteral","parseNumberExponent","parseNumberBaseOrDateTime","parseNumberOrDateTimeOnly","parseDateTime","CHAR_COLON","parseOnlyTimeHour","parseDateTimeOnly","CHAR_b","parseIntegerBin","CHAR_o","parseIntegerOct","CHAR_x","parseIntegerHex","result","parseDateMonth","parseDateDay","CHAR_T","parseStartTimeHour","$ackbS","parseTimeHour","parseTimeMin","parseTimeSec","parseTimeZoneOrFraction","parseOnlyTimeMin","parseOnlyTimeSec","parseOnlyTimeFractionMaybe","$k3cxx","parseOnlyTimeFraction","parseDateTimeFraction","parseTimeZoneHour","$65V8s","$2Gq8U","parseTimeZoneSep","parseTimeZoneMin","parseTrue_r","parseFalse_a","CHAR_r","parseTrue_u","parseTrue_e","parseFalse_l","CHAR_l","parseFalse_s","CHAR_s","parseFalse_e","resultArr","recordInlineListValue","parseInlineListNext","CHAR_COMMA","CHAR_RCUB","recordInlineTableValue","parseInlineTableNext","module","name","captureStackTrace","fromTOML","wrapped","code","Symbol","prototype","configurable","enumerable","utilInspect","eval","custom","_","asIntN","parser","returned","pos","col","line","stack","_buf","ii","runOne","codePointAt","haveBuffer","JSON","stringify","TypeError","isFloating","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","isDate","isTime","Math","min","max","slice","setImmediate","blocksize","Promise","setEncoding","read","once","$kC5q1$stream","Transform","objectMode","transform","emit","flush","toJSON","keys","filter","Array","isArray","forEach","R","map","I","S","T","b","O","every","N","P","A","findFromManifest","getManifestFromRepo","cwd","listeners","stderr","exec","download_url","downloadTool","extractZip","extractTar","HTTPError","httpStatusCode","getInput","F","H","default","D","mkdirP","L","RetryHelper","execute","W","M","V","HttpClient","q","allowRetries","authorization","get","statusCode","statusMessage","G","promisify","k","pipeline","createWriteStream","rmRF","$kC5q1$assert","ok","B","chdir","isDebug","C","which","ignoreReturnCode","toUpperCase","X","unshift","U","clean","j","arch","statSync","isDirectory","readdirSync","cp","recursive","isFile","getJson","tree","path","url","accept","readBody","$","_findMatch","valid","sort","gt","satisfies","RUNNER_TEMP","from","Set","$kC5q1$util","setPrototypeOf","new","target","extract7z","extractXar","cacheDir","cacheFile","findAllVersions","isExplicitVersion","evaluateVersions","stable","platform_version","_getOsVersion","assign","$kC5q1$child_process","execSync","_readLinuxVersionFile","eh","ec","eu","loose","includePrerelease","et","eo","LOOSE","FULL","ee","options","match","raw","patch","er","prerelease","build","format","inc","em","compare","compareBuild","semver","ey","operator","set","parseRange","intersects","toLowerCase","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","range","z","K","Z","Y","J","Q","rtl","COERCERTL","index","lastIndex","COERCE","NODE_DEBUG","arguments","console","log","apply","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","ei","en","es","re","safeRe","ea","src","tokens","el","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","LOOSEPLAIN","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","RegExp","LONETILDE","TILDETRIM","ep","LONECARET","CARETTRIM","ef","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","ed","HYPHENRANGE","HYPHENRANGELOOSE","eE","SemVer","compareMain","comparePre","diff","compareIdentifiers","rcompareIdentifiers","compareLoose","rcompare","rsort","lt","eq","neq","gte","lte","cmp","Comparator","Range","some","toComparators","maxSatisfying","minSatisfying","minVersion","ltr","gtr","outside","coerce","random","rng","$kC5q1$crypto","randomBytes","substr","maxAttempts","minSeconds","floor","maxSeconds","getSleepAmount","sleep","setTimeout","getAvailablePyPyVersions","findRelease","pythonVersion","pypyVersion","installDir","installPyPy","getPyPyBinaryPath","getPyPyVersionFromPath","readExactPyPyVersionFile","splice","pypyVersionToSemantic","validateVersion","validatePythonVersionFormatForPyPy","WINDOWS_ARCHS","foundAsset","isNightlyKeyword","writeExactPyPyVersionFile","createSymlinkInFolder","python_version","pypy_version","WINDOWS_PLATFORMS"],"sources":["../../","../../src/python/actions_python.ts","../../node_modules/setup-python/src/find-python.ts","../../node_modules/setup-python/src/utils.ts","../../node_modules/@iarna/toml/toml.js","../../node_modules/@iarna/toml/parse.js","../../node_modules/@iarna/toml/parse-string.js","../../node_modules/@iarna/toml/lib/toml-parser.js","../../node_modules/@iarna/toml/lib/parser.js","../../node_modules/@iarna/toml/lib/create-datetime.js","../../node_modules/@iarna/toml/lib/create-datetime-float.js","../../node_modules/@iarna/toml/lib/format-num.js","../../node_modules/@iarna/toml/lib/create-date.js","../../node_modules/@iarna/toml/lib/create-time.js","../../node_modules/@iarna/toml/parse-pretty-error.js","../../node_modules/@iarna/toml/parse-async.js","../../node_modules/@iarna/toml/parse-stream.js","../../node_modules/@iarna/toml/stringify.js","../../node_modules/setup-python/src/install-python.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/setup-python/node_modules/uuid/v4.js","../../node_modules/setup-python/node_modules/uuid/lib/rng.js","../../node_modules/setup-python/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/retry-helper.ts","../../node_modules/setup-python/src/find-pypy.ts","../../node_modules/setup-python/src/install-pypy.ts"],"sourcesContent":["var $kC5q1$path = require(\"path\");\nvar $kC5q1$os = require(\"os\");\nvar $kC5q1$fs = require(\"fs\");\nvar $kC5q1$stream = require(\"stream\");\nvar $kC5q1$util = require(\"util\");\nvar $kC5q1$assert = require(\"assert\");\nvar $kC5q1$child_process = require(\"child_process\");\nvar $kC5q1$crypto = require(\"crypto\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire810d\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"8L9T2\", function(module, exports) {\n\n$parcel$export(module.exports, \"setupActionsPython\", () => $00d4fba27c89d70b$export$5655ebf4048b68d5);\n\nvar $i8mEC = parcelRequire(\"i8mEC\");\n\nvar $ktIgk = parcelRequire(\"ktIgk\");\n\nvar $hHq4F = parcelRequire(\"hHq4F\");\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $eAXk4 = parcelRequire(\"eAXk4\");\n\nvar $dAuy6 = parcelRequire(\"dAuy6\");\n\nvar $56hu0 = parcelRequire(\"56hu0\");\n\nvar $6t4SD = parcelRequire(\"6t4SD\");\n\nvar $00d4fba27c89d70b$var$$parcel$__dirname = $kC5q1$path.resolve(__dirname, \"../../src/python\");\nfunction $00d4fba27c89d70b$var$isPyPyVersion(versionSpec) {\n return versionSpec.startsWith(\"pypy\");\n}\nconst $00d4fba27c89d70b$var$checkLatest = false;\nasync function $00d4fba27c89d70b$export$5655ebf4048b68d5(version, _setupDir, arch) {\n var _process_env_AGENT_TOOLSDIRECTORY;\n if (0, $56hu0.IS_MAC) process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\";\n const agent_toolsdirectory = (_process_env_AGENT_TOOLSDIRECTORY = process.env.AGENT_TOOLSDIRECTORY) === null || _process_env_AGENT_TOOLSDIRECTORY === void 0 ? void 0 : _process_env_AGENT_TOOLSDIRECTORY.trim();\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY;\n (0, $1o3Gj.debug)(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`);\n if (version) {\n let pythonVersion;\n if ($00d4fba27c89d70b$var$isPyPyVersion(version)) {\n const installed = await (0, $ktIgk.findPyPyVersion)(version, arch, true, $00d4fba27c89d70b$var$checkLatest, false);\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;\n (0, $hHq4F.info)(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`);\n } else {\n const installed = await (0, $i8mEC.useCpythonVersion)(version, arch, true, $00d4fba27c89d70b$var$checkLatest, false);\n pythonVersion = installed.version;\n (0, $hHq4F.info)(`Successfully set up ${installed.impl} (${pythonVersion})`);\n }\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n if (0, $dAuy6.GITHUB_ACTIONS) await $00d4fba27c89d70b$var$addPythonLoggingMatcher();\n return undefined;\n}\nasync function $00d4fba27c89d70b$var$addPythonLoggingMatcher() {\n const matcherPath = (0, $eAXk4.join)($00d4fba27c89d70b$var$$parcel$__dirname, \"python_matcher.json\");\n if (!await (0, $6t4SD.pathExists)(matcherPath)) return (0, $hHq4F.warning)(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\");\n (0, $hHq4F.info)(`::add-matcher::${matcherPath}`);\n}\n\n});\nparcelRegister(\"i8mEC\", function(module, exports) {\n\n$parcel$export(module.exports, \"useCpythonVersion\", () => $a7921d52fbaa3a56$export$c90655100676e173);\n\n\n\nvar $56hu0 = parcelRequire(\"56hu0\");\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $aN96g = parcelRequire(\"aN96g\");\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\nfunction $a7921d52fbaa3a56$var$binDir(installDir) {\n if (0, $56hu0.IS_WINDOWS) return $kC5q1$path.join(installDir, \"Scripts\");\n else return $kC5q1$path.join(installDir, \"bin\");\n}\nasync function $a7921d52fbaa3a56$export$c90655100676e173(version, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let manifest = null;\n const desugaredVersionSpec = $a7921d52fbaa3a56$var$desugarDevVersion(version);\n let semanticVersionSpec = $a7921d52fbaa3a56$export$2630b06843feee21(desugaredVersionSpec, allowPreReleases);\n $1o3Gj.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n if (checkLatest) {\n var _this;\n manifest = await $aN96g.getManifest();\n const resolvedVersion = (_this = await $aN96g.findReleaseFromManifest(semanticVersionSpec, architecture, manifest)) === null || _this === void 0 ? void 0 : _this.version;\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n $1o3Gj.info(`Resolved as '${semanticVersionSpec}'`);\n } else $1o3Gj.info(`Failed to resolve version ${semanticVersionSpec} from manifest`);\n }\n let installDir = $5DFAC.find(\"Python\", semanticVersionSpec, architecture);\n if (!installDir) {\n $1o3Gj.info(`Version ${semanticVersionSpec} was not found in the local cache`);\n const foundRelease = await $aN96g.findReleaseFromManifest(semanticVersionSpec, architecture, manifest);\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n $1o3Gj.info(`Version ${semanticVersionSpec} is available for downloading`);\n await $aN96g.installCpythonFromRelease(foundRelease);\n installDir = $5DFAC.find(\"Python\", semanticVersionSpec, architecture);\n }\n }\n if (!installDir) {\n const osInfo = await (0, $56hu0.getOSInfo)();\n throw new Error([\n `The version '${version}' with architecture '${architecture}' was not found for ${osInfo ? `${osInfo.osName} ${osInfo.osVersion}` : \"this operating system\"}.`,\n `The list of all available versions can be found here: ${$aN96g.MANIFEST_URL}`\n ].join($kC5q1$os.EOL));\n }\n const _binDir = $a7921d52fbaa3a56$var$binDir(installDir);\n const binaryExtension = (0, $56hu0.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $kC5q1$path.join((0, $56hu0.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n if (updateEnvironment) {\n $1o3Gj.exportVariable(\"pythonLocation\", installDir);\n $1o3Gj.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n $1o3Gj.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $1o3Gj.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $1o3Gj.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $1o3Gj.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $1o3Gj.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n if (0, $56hu0.IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH ? `:${process.env.LD_LIBRARY_PATH}` : \"\";\n const pyLibPath = $kC5q1$path.join(installDir, \"lib\");\n if (!libPath.split(\":\").includes(pyLibPath)) $1o3Gj.exportVariable(\"LD_LIBRARY_PATH\", pyLibPath + libPath);\n }\n $1o3Gj.addPath(installDir);\n $1o3Gj.addPath(_binDir);\n if (0, $56hu0.IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = $kC5q1$path.basename($kC5q1$path.dirname(installDir));\n const major = $coVwk.major(version);\n const minor = $coVwk.minor(version);\n const userScriptsDir = $kC5q1$path.join(process.env[\"APPDATA\"] || \"\", \"Python\", `Python${major}${minor}`, \"Scripts\");\n $1o3Gj.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n const installed = $a7921d52fbaa3a56$var$versionFromPath(installDir);\n $1o3Gj.setOutput(\"python-version\", installed);\n $1o3Gj.setOutput(\"python-path\", pythonPath);\n return {\n impl: \"CPython\",\n version: installed\n };\n}\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */ function $a7921d52fbaa3a56$var$desugarDevVersion(versionSpec) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, \"~$1.$2.0-0\");\n}\n/** Extracts python version from install path from hosted tool cache as described in README.md */ function $a7921d52fbaa3a56$var$versionFromPath(installDir) {\n const parts = installDir.split($kC5q1$path.sep);\n const idx = parts.findIndex((part)=>part === \"PyPy\" || part === \"Python\");\n return parts[idx + 1] || \"\";\n}\nfunction $a7921d52fbaa3a56$export$2630b06843feee21(versionSpec, allowPreReleases) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, \"$1-$2\");\n if (allowPreReleases) result = result.replace(majorMinor, \"~$1.$2.0-0\");\n return result;\n}\n\n});\nparcelRegister(\"56hu0\", function(module, exports) {\n\n$parcel$export(module.exports, \"IS_WINDOWS\", () => $64457127516113fc$export$82633ee808573685);\n$parcel$export(module.exports, \"IS_LINUX\", () => $64457127516113fc$export$25e95d65b6faeb9a);\n$parcel$export(module.exports, \"IS_MAC\", () => $64457127516113fc$export$ff23e6b4c4401383);\n$parcel$export(module.exports, \"WINDOWS_ARCHS\", () => $64457127516113fc$export$175751bac16078cf);\n$parcel$export(module.exports, \"WINDOWS_PLATFORMS\", () => $64457127516113fc$export$da6ba390a22488d5);\n$parcel$export(module.exports, \"createSymlinkInFolder\", () => $64457127516113fc$export$b0a6cbd0a3e3c63a);\n$parcel$export(module.exports, \"validateVersion\", () => $64457127516113fc$export$7880c8f0bb8a6afd);\n$parcel$export(module.exports, \"isNightlyKeyword\", () => $64457127516113fc$export$ea46fc8abcf9f209);\n$parcel$export(module.exports, \"getPyPyVersionFromPath\", () => $64457127516113fc$export$8a23ea91582cecbc);\n$parcel$export(module.exports, \"readExactPyPyVersionFile\", () => $64457127516113fc$export$15e4ce4ad93c8c8a);\n$parcel$export(module.exports, \"writeExactPyPyVersionFile\", () => $64457127516113fc$export$8fb7815f538587a8);\n$parcel$export(module.exports, \"validatePythonVersionFormatForPyPy\", () => $64457127516113fc$export$3dc910628be7a364);\n$parcel$export(module.exports, \"getOSInfo\", () => $64457127516113fc$export$471d7e4c229dedf);\n/* eslint no-unsafe-finally: \"off\" */ \nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\n\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $jyjVK = parcelRequire(\"jyjVK\");\n\nvar $bHzmH = parcelRequire(\"bHzmH\");\nconst $64457127516113fc$export$82633ee808573685 = process.platform === \"win32\";\nconst $64457127516113fc$export$25e95d65b6faeb9a = process.platform === \"linux\";\nconst $64457127516113fc$export$ff23e6b4c4401383 = process.platform === \"darwin\";\nconst $64457127516113fc$export$175751bac16078cf = [\n \"x86\",\n \"x64\"\n];\nconst $64457127516113fc$export$da6ba390a22488d5 = [\n \"win32\",\n \"win64\"\n];\nconst $64457127516113fc$var$PYPY_VERSION_FILE = \"PYPY_VERSION\";\nfunction $64457127516113fc$export$b0a6cbd0a3e3c63a(folderPath, sourceName, targetName, setExecutable = false) {\n const sourcePath = $kC5q1$path.join(folderPath, sourceName);\n const targetPath = $kC5q1$path.join(folderPath, targetName);\n if ((0, ($parcel$interopDefault($kC5q1$fs))).existsSync(targetPath)) return;\n (0, ($parcel$interopDefault($kC5q1$fs))).symlinkSync(sourcePath, targetPath);\n if (!$64457127516113fc$export$82633ee808573685 && setExecutable) (0, ($parcel$interopDefault($kC5q1$fs))).chmodSync(targetPath, \"755\");\n}\nfunction $64457127516113fc$export$7880c8f0bb8a6afd(version) {\n return $64457127516113fc$export$ea46fc8abcf9f209(version) || Boolean($coVwk.validRange(version));\n}\nfunction $64457127516113fc$export$ea46fc8abcf9f209(pypyVersion) {\n return pypyVersion === \"nightly\";\n}\nfunction $64457127516113fc$export$8a23ea91582cecbc(installDir) {\n return $kC5q1$path.basename($kC5q1$path.dirname(installDir));\n}\nfunction $64457127516113fc$export$15e4ce4ad93c8c8a(installDir) {\n let pypyVersion = \"\";\n const fileVersion = $kC5q1$path.join(installDir, $64457127516113fc$var$PYPY_VERSION_FILE);\n if ((0, ($parcel$interopDefault($kC5q1$fs))).existsSync(fileVersion)) pypyVersion = (0, ($parcel$interopDefault($kC5q1$fs))).readFileSync(fileVersion).toString().trim();\n return pypyVersion;\n}\nfunction $64457127516113fc$export$8fb7815f538587a8(installDir, resolvedPyPyVersion) {\n const pypyFilePath = $kC5q1$path.join(installDir, $64457127516113fc$var$PYPY_VERSION_FILE);\n (0, ($parcel$interopDefault($kC5q1$fs))).writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\nfunction $64457127516113fc$export$3dc910628be7a364(version) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\nfunction $64457127516113fc$export$ebd6064652549ce9(message) {\n const warningPrefix = \"[warning]\";\n $1o3Gj.info(`${warningPrefix}${message}`);\n}\nasync function $64457127516113fc$var$getWindowsInfo() {\n const { stdout: stdout } = await $bHzmH.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n const windowsVersion = stdout.trim().split(\" \")[3];\n return {\n osName: \"Windows\",\n osVersion: windowsVersion\n };\n}\nasync function $64457127516113fc$var$getMacOSInfo() {\n const { stdout: stdout } = await $bHzmH.getExecOutput(\"sw_vers\", [\n \"-productVersion\"\n ], {\n silent: true\n });\n const macOSVersion = stdout.trim();\n return {\n osName: \"macOS\",\n osVersion: macOSVersion\n };\n}\nasync function $64457127516113fc$export$734019fa9b4b8da() {\n const { stdout: stdout } = await $bHzmH.getExecOutput(\"lsb_release\", [\n \"-i\",\n \"-r\",\n \"-s\"\n ], {\n silent: true\n });\n const [osName, osVersion] = stdout.trim().split(\"\\n\");\n $1o3Gj.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n return {\n osName: osName,\n osVersion: osVersion\n };\n}\nasync function $64457127516113fc$export$471d7e4c229dedf() {\n let osInfo;\n try {\n if ($64457127516113fc$export$82633ee808573685) osInfo = await $64457127516113fc$var$getWindowsInfo();\n else if ($64457127516113fc$export$25e95d65b6faeb9a) osInfo = await $64457127516113fc$export$734019fa9b4b8da();\n else if ($64457127516113fc$export$ff23e6b4c4401383) osInfo = await $64457127516113fc$var$getMacOSInfo();\n } catch (err) {\n const error = err;\n $1o3Gj.debug(error.message);\n } finally{\n return osInfo;\n }\n}\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */ function $64457127516113fc$var$extractValue(obj, keys) {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) return $64457127516113fc$var$extractValue(value, keys.slice(1));\n else return value;\n } else return;\n}\nfunction $64457127516113fc$export$62b63db2b7d00b3a(versionFile) {\n $1o3Gj.debug(`Trying to resolve version form ${versionFile}`);\n const pyprojectFile = (0, ($parcel$interopDefault($kC5q1$fs))).readFileSync(versionFile, \"utf8\");\n const pyprojectConfig = $jyjVK.parse(pyprojectFile);\n let keys = [];\n if (\"project\" in pyprojectConfig) // standard project metadata (PEP 621)\n keys = [\n \"project\",\n \"requires-python\"\n ];\n else // python poetry\n keys = [\n \"tool\",\n \"poetry\",\n \"dependencies\",\n \"python\"\n ];\n const versions = [];\n const version = $64457127516113fc$var$extractValue(pyprojectConfig, keys);\n if (version !== undefined) versions.push(version);\n $1o3Gj.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, (version)=>version.split(\",\").join(\" \"));\n const validatedVersions = rawVersions.map((item)=>$coVwk.validRange(item, true)).filter((versionRange, index)=>{\n if (!versionRange) $1o3Gj.debug(`The version ${rawVersions[index]} is not valid SemVer range`);\n return !!versionRange;\n });\n return validatedVersions;\n}\nfunction $64457127516113fc$export$6bdea68547837ebb(versionFile) {\n $1o3Gj.debug(`Trying to resolve version form ${versionFile}`);\n const version = (0, ($parcel$interopDefault($kC5q1$fs))).readFileSync(versionFile, \"utf8\");\n $1o3Gj.info(`Resolved ${versionFile} as ${version}`);\n return [\n version\n ];\n}\nfunction $64457127516113fc$export$7ffda0a4baa8880a(versionFile) {\n if (versionFile.endsWith(\".toml\")) return $64457127516113fc$export$62b63db2b7d00b3a(versionFile);\n else return $64457127516113fc$export$6bdea68547837ebb(versionFile);\n}\n\n});\nparcelRegister(\"jyjVK\", function(module, exports) {\n\n$parcel$export(module.exports, \"parse\", () => $e3c0a70a209b5af0$export$98e6a39c04603d36, (v) => $e3c0a70a209b5af0$export$98e6a39c04603d36 = v);\nvar $e3c0a70a209b5af0$export$98e6a39c04603d36;\nvar $e3c0a70a209b5af0$export$fac44ee5b035f737;\n\"use strict\";\n\n$e3c0a70a209b5af0$export$98e6a39c04603d36 = (parcelRequire(\"3YHpW\"));\n\n$e3c0a70a209b5af0$export$fac44ee5b035f737 = (parcelRequire(\"AMirQ\"));\n\n});\nparcelRegister(\"3YHpW\", function(module, exports) {\n\"use strict\";\n\nmodule.exports = (parcelRequire(\"4ElZQ\"));\n\nmodule.exports.async = (parcelRequire(\"cn5IV\"));\n\nmodule.exports.stream = (parcelRequire(\"6Gy5N\"));\n\nmodule.exports.prettyError = (parcelRequire(\"2Aiv1\"));\n\n});\nparcelRegister(\"4ElZQ\", function(module, exports) {\n\"use strict\";\nmodule.exports = $362bf5e305ed9455$var$parseString;\n\nvar $kdMBf = parcelRequire(\"kdMBf\");\n\nvar $2Aiv1 = parcelRequire(\"2Aiv1\");\nfunction $362bf5e305ed9455$var$parseString(str) {\n if ($parcel$global.Buffer && $parcel$global.Buffer.isBuffer(str)) str = str.toString(\"utf8\");\n const parser = new $kdMBf();\n try {\n parser.parse(str);\n return parser.finish();\n } catch (err) {\n throw $2Aiv1(err, str);\n }\n}\n\n});\nparcelRegister(\"kdMBf\", function(module, exports) {\n\"use strict\";\n\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ module.exports = makeParserClass((parcelRequire(\"a18Cz\")));\nmodule.exports.makeParserClass = makeParserClass;\nclass TomlError extends Error {\n constructor(msg){\n super(msg);\n this.name = \"TomlError\";\n /* istanbul ignore next */ if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError);\n this.fromTOML = true;\n this.wrapped = null;\n }\n}\nTomlError.wrap = (err)=>{\n const terr = new TomlError(err.message);\n terr.code = err.code;\n terr.wrapped = err;\n return terr;\n};\nmodule.exports.TomlError = TomlError;\n\nvar $65V8s = parcelRequire(\"65V8s\");\n\nvar $2Gq8U = parcelRequire(\"2Gq8U\");\n\nvar $ackbS = parcelRequire(\"ackbS\");\n\nvar $k3cxx = parcelRequire(\"k3cxx\");\nconst CTRL_I = 0x09;\nconst CTRL_J = 0x0A;\nconst CTRL_M = 0x0D;\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\n;\nconst CHAR_SP = 0x20;\nconst CHAR_QUOT = 0x22;\nconst CHAR_NUM = 0x23;\nconst CHAR_APOS = 0x27;\nconst CHAR_PLUS = 0x2B;\nconst CHAR_COMMA = 0x2C;\nconst CHAR_HYPHEN = 0x2D;\nconst CHAR_PERIOD = 0x2E;\nconst CHAR_0 = 0x30;\nconst CHAR_1 = 0x31;\nconst CHAR_7 = 0x37;\nconst CHAR_9 = 0x39;\nconst CHAR_COLON = 0x3A;\nconst CHAR_EQUALS = 0x3D;\nconst CHAR_A = 0x41;\nconst CHAR_E = 0x45;\nconst CHAR_F = 0x46;\nconst CHAR_T = 0x54;\nconst CHAR_U = 0x55;\nconst CHAR_Z = 0x5A;\nconst CHAR_LOWBAR = 0x5F;\nconst CHAR_a = 0x61;\nconst CHAR_b = 0x62;\nconst CHAR_e = 0x65;\nconst CHAR_f = 0x66;\nconst CHAR_i = 0x69;\nconst CHAR_l = 0x6C;\nconst CHAR_n = 0x6E;\nconst CHAR_o = 0x6F;\nconst CHAR_r = 0x72;\nconst CHAR_s = 0x73;\nconst CHAR_t = 0x74;\nconst CHAR_u = 0x75;\nconst CHAR_x = 0x78;\nconst CHAR_z = 0x7A;\nconst CHAR_LCUB = 0x7B;\nconst CHAR_RCUB = 0x7D;\nconst CHAR_LSQB = 0x5B;\nconst CHAR_BSOL = 0x5C;\nconst CHAR_RSQB = 0x5D;\nconst CHAR_DEL = 0x7F;\nconst SURROGATE_FIRST = 0xD800;\nconst SURROGATE_LAST = 0xDFFF;\nconst escapes = {\n [CHAR_b]: \"\\b\",\n [CHAR_t]: \"\t\",\n [CHAR_n]: \"\\n\",\n [CHAR_f]: \"\\f\",\n [CHAR_r]: \"\\r\",\n [CHAR_QUOT]: '\"',\n [CHAR_BSOL]: \"\\\\\"\n};\nfunction isDigit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isHexit(cp) {\n return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isBit(cp) {\n return cp === CHAR_1 || cp === CHAR_0;\n}\nfunction isOctit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_7;\n}\nfunction isAlphaNumQuoteHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nfunction isAlphaNumHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nconst _type = Symbol(\"type\");\nconst _declared = Symbol(\"declared\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defineProperty = Object.defineProperty;\nconst descriptor = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: undefined\n};\nfunction hasKey(obj, key) {\n if (hasOwnProperty.call(obj, key)) return true;\n if (key === \"__proto__\") defineProperty(obj, \"__proto__\", descriptor);\n return false;\n}\nconst INLINE_TABLE = Symbol(\"inline-table\");\nfunction InlineTable() {\n return Object.defineProperties({}, {\n [_type]: {\n value: INLINE_TABLE\n }\n });\n}\nfunction isInlineTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_TABLE;\n}\nconst TABLE = Symbol(\"table\");\nfunction Table() {\n return Object.defineProperties({}, {\n [_type]: {\n value: TABLE\n },\n [_declared]: {\n value: false,\n writable: true\n }\n });\n}\nfunction isTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === TABLE;\n}\nconst _contentType = Symbol(\"content-type\");\nconst INLINE_LIST = Symbol(\"inline-list\");\nfunction InlineList(type) {\n return Object.defineProperties([], {\n [_type]: {\n value: INLINE_LIST\n },\n [_contentType]: {\n value: type\n }\n });\n}\nfunction isInlineList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_LIST;\n}\nconst LIST = Symbol(\"list\");\nfunction List() {\n return Object.defineProperties([], {\n [_type]: {\n value: LIST\n }\n });\n}\nfunction isList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === LIST;\n}\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom;\ntry {\n const utilInspect = eval(\"require('util').inspect\");\n _custom = utilInspect.custom;\n} catch (_) {\n/* eval require not available in transpiled bundle */ }\n/* istanbul ignore next */ const _inspect = _custom || \"inspect\";\nclass BoxedBigInt {\n constructor(value){\n try {\n this.value = $parcel$global.BigInt.asIntN(64, value);\n } catch (_) {\n /* istanbul ignore next */ this.value = null;\n }\n Object.defineProperty(this, _type, {\n value: INTEGER\n });\n }\n isNaN() {\n return this.value === null;\n }\n /* istanbul ignore next */ toString() {\n return String(this.value);\n }\n /* istanbul ignore next */ [_inspect]() {\n return `[BigInt: ${this.toString()}]}`;\n }\n valueOf() {\n return this.value;\n }\n}\nconst INTEGER = Symbol(\"integer\");\nfunction Integer(value) {\n let num = Number(value);\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0;\n /* istanbul ignore else */ if ($parcel$global.BigInt && !Number.isSafeInteger(num)) return new BoxedBigInt(value);\n else /* istanbul ignore next */ return Object.defineProperties(new Number(num), {\n isNaN: {\n value: function() {\n return isNaN(this);\n }\n },\n [_type]: {\n value: INTEGER\n },\n [_inspect]: {\n value: ()=>`[Integer: ${value}]`\n }\n });\n}\nfunction isInteger(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INTEGER;\n}\nconst FLOAT = Symbol(\"float\");\nfunction Float(value) {\n /* istanbul ignore next */ return Object.defineProperties(new Number(value), {\n [_type]: {\n value: FLOAT\n },\n [_inspect]: {\n value: ()=>`[Float: ${value}]`\n }\n });\n}\nfunction isFloat(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === FLOAT;\n}\nfunction tomlType(value) {\n const type = typeof value;\n if (type === \"object\") {\n /* istanbul ignore if */ if (value === null) return \"null\";\n if (value instanceof Date) return \"datetime\";\n /* istanbul ignore else */ if (_type in value) switch(value[_type]){\n case INLINE_TABLE:\n return \"inline-table\";\n case INLINE_LIST:\n return \"inline-list\";\n /* istanbul ignore next */ case TABLE:\n return \"table\";\n /* istanbul ignore next */ case LIST:\n return \"list\";\n case FLOAT:\n return \"float\";\n case INTEGER:\n return \"integer\";\n }\n }\n return type;\n}\nfunction makeParserClass(Parser) {\n class TOMLParser extends Parser {\n constructor(){\n super();\n this.ctx = this.obj = Table();\n }\n /* MATCH HELPER */ atEndOfWord() {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine();\n }\n atEndOfLine() {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M;\n }\n parseStart() {\n if (this.char === Parser.END) return null;\n else if (this.char === CHAR_LSQB) return this.call(this.parseTableOrList);\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (isAlphaNumQuoteHyphen(this.char)) return this.callNow(this.parseAssignStatement);\n else throw this.error(new TomlError(`Unknown character \"${this.char}\"`));\n }\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (this.char === CHAR_NUM) return this.goto(this.parseComment);\n else if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n else throw this.error(new TomlError(\"Unexpected character, expected only whitespace or comments till end of line\"));\n }\n /* ASSIGNMENT: key = value */ parseAssignStatement() {\n return this.callNow(this.parseAssign, this.recordAssignStatement);\n }\n recordAssignStatement(kv) {\n let target = this.ctx;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseWhitespaceToEOL);\n }\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */ parseAssign() {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n recordAssignKeyword(key) {\n if (this.state.resultTable) this.state.resultTable.push(key);\n else this.state.resultTable = [\n key\n ];\n return this.goto(this.parseAssignKeywordPreDot);\n }\n parseAssignKeywordPreDot() {\n if (this.char === CHAR_PERIOD) return this.next(this.parseAssignKeywordPostDot);\n else if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.goto(this.parseAssignEqual);\n }\n parseAssignKeywordPostDot() {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n parseAssignEqual() {\n if (this.char === CHAR_EQUALS) return this.next(this.parseAssignPreValue);\n else throw this.error(new TomlError('Invalid character, expected \"=\"'));\n }\n parseAssignPreValue() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseValue, this.recordAssignValue);\n }\n recordAssignValue(value) {\n return this.returnNow({\n key: this.state.resultTable,\n value: value\n });\n }\n /* COMMENTS: #...eol */ parseComment() {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n }while (this.nextChar());\n }\n /* TABLES AND LISTS, [foo] and [[foo]] */ parseTableOrList() {\n if (this.char === CHAR_LSQB) this.next(this.parseList);\n else return this.goto(this.parseTable);\n }\n /* TABLE [foo.bar.baz] */ parseTable() {\n this.ctx = this.obj;\n return this.goto(this.parseTableNext);\n }\n parseTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseTableMore);\n }\n parseTableMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table();\n this.ctx[_declared] = true;\n }\n return this.next(this.parseWhitespaceToEOL);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else throw this.error(new TomlError(\"Can't redefine existing key\"));\n return this.next(this.parseTableNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* LIST [[a.b.c]] */ parseList() {\n this.ctx = this.obj;\n return this.goto(this.parseListNext);\n }\n parseListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseListMore);\n }\n parseListMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) this.ctx[keyword] = List();\n if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isList(this.ctx[keyword])) {\n const next = Table();\n this.ctx[keyword].push(next);\n this.ctx = next;\n } else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListEnd);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isInlineTable(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline table\"));\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n parseListEnd(keyword) {\n if (this.char === CHAR_RSQB) return this.next(this.parseWhitespaceToEOL);\n else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* VALUE string, number, boolean, inline list, inline object */ parseValue() {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key without value\"));\n else if (this.char === CHAR_QUOT) return this.next(this.parseDoubleString);\n if (this.char === CHAR_APOS) return this.next(this.parseSingleString);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) return this.goto(this.parseNumberSign);\n else if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else if (isDigit(this.char)) return this.goto(this.parseNumberOrDateTime);\n else if (this.char === CHAR_t || this.char === CHAR_f) return this.goto(this.parseBoolean);\n else if (this.char === CHAR_LSQB) return this.call(this.parseInlineList, this.recordValue);\n else if (this.char === CHAR_LCUB) return this.call(this.parseInlineTable, this.recordValue);\n else throw this.error(new TomlError(\"Unexpected character, expecting string, number, datetime, boolean, inline array or inline table\"));\n }\n recordValue(value) {\n return this.returnNow(value);\n }\n parseInf() {\n if (this.char === CHAR_n) return this.next(this.parseInf2);\n else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseInf2() {\n if (this.char === CHAR_f) {\n if (this.state.buf === \"-\") return this.return(-Infinity);\n else return this.return(Infinity);\n } else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseNan() {\n if (this.char === CHAR_a) return this.next(this.parseNan2);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n parseNan2() {\n if (this.char === CHAR_n) return this.return(NaN);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n /* KEYS, barewords or basic, literal, or dotted */ parseKeyword() {\n if (this.char === CHAR_QUOT) return this.next(this.parseBasicString);\n else if (this.char === CHAR_APOS) return this.next(this.parseLiteralString);\n else return this.goto(this.parseBareKey);\n }\n /* KEYS: barewords */ parseBareKey() {\n do {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key ended without value\"));\n else if (isAlphaNumHyphen(this.char)) this.consume();\n else if (this.state.buf.length === 0) throw this.error(new TomlError(\"Empty bare keys are not allowed\"));\n else return this.returnNow();\n }while (this.nextChar());\n }\n /* STRINGS, single quoted (literal) */ parseSingleString() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiStringMaybe);\n else return this.goto(this.parseLiteralString);\n }\n parseLiteralString() {\n do {\n if (this.char === CHAR_APOS) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiStringMaybe() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiString);\n else return this.returnNow();\n }\n parseLiteralMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseLiteralMultiStringContent);\n else return this.goto(this.parseLiteralMultiStringContent);\n }\n parseLiteralMultiStringContent() {\n do {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiEnd() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd2);\n else {\n this.state.buf += \"'\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n parseLiteralMultiEnd2() {\n if (this.char === CHAR_APOS) return this.return();\n else {\n this.state.buf += \"''\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n /* STRINGS double quoted */ parseDoubleString() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiStringMaybe);\n else return this.goto(this.parseBasicString);\n }\n parseBasicString() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseEscape, this.recordEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n recordEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseBasicString);\n }\n parseMultiStringMaybe() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiString);\n else return this.returnNow();\n }\n parseMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseMultiStringContent);\n else return this.goto(this.parseMultiStringContent);\n }\n parseMultiStringContent() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n errorControlCharInString() {\n let displayCode = \"\\\\u00\";\n if (this.char < 16) displayCode += \"0\";\n displayCode += this.char.toString(16);\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`));\n }\n recordMultiEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseMultiStringContent);\n }\n parseMultiEnd() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd2);\n else {\n this.state.buf += '\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEnd2() {\n if (this.char === CHAR_QUOT) return this.return();\n else {\n this.state.buf += '\"\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEscape() {\n if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else if (this.char === CHAR_SP || this.char === CTRL_I) return this.next(this.parsePreMultiTrim);\n else return this.goto(this.parseEscape);\n }\n parsePreMultiTrim() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else throw this.error(new TomlError(\"Can't escape whitespace\"));\n }\n parseMultiTrim() {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else return this.returnNow();\n }\n parseEscape() {\n if (this.char in escapes) return this.return(escapes[this.char]);\n else if (this.char === CHAR_u) return this.call(this.parseSmallUnicode, this.parseUnicodeReturn);\n else if (this.char === CHAR_U) return this.call(this.parseLargeUnicode, this.parseUnicodeReturn);\n else throw this.error(new TomlError(\"Unknown escape character: \" + this.char));\n }\n parseUnicodeReturn(char) {\n try {\n const codePoint = parseInt(char, 16);\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) throw this.error(new TomlError(\"Invalid unicode, character in range 0xD800 - 0xDFFF is reserved\"));\n return this.returnNow(String.fromCodePoint(codePoint));\n } catch (err) {\n throw this.error(TomlError.wrap(err));\n }\n }\n parseSmallUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 4) return this.return();\n }\n }\n parseLargeUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 8) return this.return();\n }\n }\n /* NUMBERS */ parseNumberSign() {\n this.consume();\n return this.next(this.parseMaybeSignedInfOrNan);\n }\n parseMaybeSignedInfOrNan() {\n if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart);\n }\n parseNumberIntegerStart() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberIntegerExponentOrDecimal);\n } else return this.goto(this.parseNumberInteger);\n }\n parseNumberIntegerExponentOrDecimal() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Integer(this.state.buf));\n }\n parseNumberInteger() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseNoUnder() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNoUnderHexOctBinLiteral() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNumberFloat() {\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberFloat);\n else if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Float(this.state.buf));\n }\n parseNumberExponentSign() {\n if (isDigit(this.char)) return this.goto(this.parseNumberExponent);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.call(this.parseNoUnder, this.parseNumberExponent);\n } else throw this.error(new TomlError(\"Unexpected character, expected -, + or digit\"));\n }\n parseNumberExponent() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else return this.returnNow(Float(this.state.buf));\n }\n /* NUMBERS or DATETIMES */ parseNumberOrDateTime() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberBaseOrDateTime);\n } else return this.goto(this.parseNumberOrDateTimeOnly);\n }\n parseNumberOrDateTimeOnly() {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberInteger);\n else if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseDateTimeOnly() {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) return this.consume();\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else throw this.error(new TomlError(\"Expected digit while parsing year part of a date\"));\n } else {\n if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else throw this.error(new TomlError(\"Expected hyphen (-) while parsing year part of date\"));\n }\n }\n parseNumberBaseOrDateTime() {\n if (this.char === CHAR_b) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin);\n } else if (this.char === CHAR_o) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct);\n } else if (this.char === CHAR_x) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex);\n } else if (this.char === CHAR_PERIOD) return this.goto(this.parseNumberInteger);\n else if (isDigit(this.char)) return this.goto(this.parseDateTimeOnly);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseIntegerHex() {\n if (isHexit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerOct() {\n if (isOctit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerBin() {\n if (isBit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n /* DATETIME */ parseDateTime() {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) throw this.error(new TomlError(\"Years less than 1000 must be zero padded to four characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateMonth);\n }\n parseDateMonth() {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Months less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateDay);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseDateDay() {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Days less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseStartTimeHour);\n } else if (this.atEndOfWord()) return this.returnNow($ackbS(this.state.result + \"-\" + this.state.buf));\n else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseStartTimeHour() {\n if (this.atEndOfWord()) return this.returnNow($ackbS(this.state.result));\n else return this.goto(this.parseTimeHour);\n }\n parseTimeHour() {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result += \"T\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeMin);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeSec);\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeZoneOrFraction);\n }\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseOnlyTimeHour() {\n /* istanbul ignore else */ if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeMin);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeSec);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) return this.next(this.parseOnlyTimeFractionMaybe);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeFractionMaybe() {\n this.state.result += \":\" + this.state.buf;\n if (this.char === CHAR_PERIOD) {\n this.state.buf = \"\";\n this.next(this.parseOnlyTimeFraction);\n } else return this.return($k3cxx(this.state.result));\n }\n parseOnlyTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n return this.returnNow($k3cxx(this.state.result + \".\" + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneOrFraction() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n this.next(this.parseDateTimeFraction);\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($65V8s(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($2Gq8U(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseDateTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 1) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($65V8s(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($2Gq8U(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneHour() {\n if (isDigit(this.char)) {\n this.consume();\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n parseTimeZoneSep() {\n if (this.char === CHAR_COLON) {\n this.consume();\n this.next(this.parseTimeZoneMin);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected colon\"));\n }\n parseTimeZoneMin() {\n if (isDigit(this.char)) {\n this.consume();\n if (/\\d\\d$/.test(this.state.buf)) return this.return($65V8s(this.state.result + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n /* BOOLEAN */ parseBoolean() {\n /* istanbul ignore else */ if (this.char === CHAR_t) {\n this.consume();\n return this.next(this.parseTrue_r);\n } else if (this.char === CHAR_f) {\n this.consume();\n return this.next(this.parseFalse_a);\n }\n }\n parseTrue_r() {\n if (this.char === CHAR_r) {\n this.consume();\n return this.next(this.parseTrue_u);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_u() {\n if (this.char === CHAR_u) {\n this.consume();\n return this.next(this.parseTrue_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_e() {\n if (this.char === CHAR_e) return this.return(true);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_a() {\n if (this.char === CHAR_a) {\n this.consume();\n return this.next(this.parseFalse_l);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_l() {\n if (this.char === CHAR_l) {\n this.consume();\n return this.next(this.parseFalse_s);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_s() {\n if (this.char === CHAR_s) {\n this.consume();\n return this.next(this.parseFalse_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_e() {\n if (this.char === CHAR_e) return this.return(false);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n /* INLINE LISTS */ parseInlineList() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_RSQB) return this.return(this.state.resultArr || InlineList());\n else return this.callNow(this.parseValue, this.recordInlineListValue);\n }\n recordInlineListValue(value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType];\n const valueType = tomlType(value);\n if (listType !== valueType) throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`));\n } else this.state.resultArr = InlineList(tomlType(value));\n if (isFloat(value) || isInteger(value)) // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf());\n else this.state.resultArr.push(value);\n return this.goto(this.parseInlineListNext);\n }\n parseInlineListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineList);\n else if (this.char === CHAR_RSQB) return this.goto(this.parseInlineList);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n /* INLINE TABLE */ parseInlineTable() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_RCUB) return this.return(this.state.resultTable || InlineTable());\n else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable();\n return this.callNow(this.parseAssign, this.recordInlineTableValue);\n }\n }\n recordInlineTableValue(kv) {\n let target = this.state.resultTable;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseInlineTableNext);\n }\n parseInlineTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineTable);\n else if (this.char === CHAR_RCUB) return this.goto(this.parseInlineTable);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n }\n return TOMLParser;\n}\n\n});\nparcelRegister(\"a18Cz\", function(module, exports) {\n\"use strict\";\nconst $74b0af55b83c9a99$var$ParserEND = 0x110000;\nclass $74b0af55b83c9a99$var$ParserError extends Error {\n /* istanbul ignore next */ constructor(msg, filename, linenumber){\n super(\"[ParserError] \" + msg, filename, linenumber);\n this.name = \"ParserError\";\n this.code = \"ParserError\";\n if (Error.captureStackTrace) Error.captureStackTrace(this, $74b0af55b83c9a99$var$ParserError);\n }\n}\nclass $74b0af55b83c9a99$var$State {\n constructor(parser){\n this.parser = parser;\n this.buf = \"\";\n this.returned = null;\n this.result = null;\n this.resultTable = null;\n this.resultArr = null;\n }\n}\nclass $74b0af55b83c9a99$var$Parser {\n constructor(){\n this.pos = 0;\n this.col = 0;\n this.line = 0;\n this.obj = {};\n this.ctx = this.obj;\n this.stack = [];\n this._buf = \"\";\n this.char = null;\n this.ii = 0;\n this.state = new $74b0af55b83c9a99$var$State(this.parseStart);\n }\n parse(str) {\n /* istanbul ignore next */ if (str.length === 0 || str.length == null) return;\n this._buf = String(str);\n this.ii = -1;\n this.char = -1;\n let getNext;\n while(getNext === false || this.nextChar())getNext = this.runOne();\n this._buf = null;\n }\n nextChar() {\n if (this.char === 0x0A) {\n ++this.line;\n this.col = -1;\n }\n ++this.ii;\n this.char = this._buf.codePointAt(this.ii);\n ++this.pos;\n ++this.col;\n return this.haveBuffer();\n }\n haveBuffer() {\n return this.ii < this._buf.length;\n }\n runOne() {\n return this.state.parser.call(this, this.state.returned);\n }\n finish() {\n this.char = $74b0af55b83c9a99$var$ParserEND;\n let last;\n do {\n last = this.state.parser;\n this.runOne();\n }while (this.state.parser !== last);\n this.ctx = null;\n this.state = null;\n this._buf = null;\n return this.obj;\n }\n next(fn) {\n /* istanbul ignore next */ if (typeof fn !== \"function\") throw new $74b0af55b83c9a99$var$ParserError(\"Tried to set state to non-existent state: \" + JSON.stringify(fn));\n this.state.parser = fn;\n }\n goto(fn) {\n this.next(fn);\n return this.runOne();\n }\n call(fn, returnWith) {\n if (returnWith) this.next(returnWith);\n this.stack.push(this.state);\n this.state = new $74b0af55b83c9a99$var$State(fn);\n }\n callNow(fn, returnWith) {\n this.call(fn, returnWith);\n return this.runOne();\n }\n return(value) {\n /* istanbul ignore next */ if (this.stack.length === 0) throw this.error(new $74b0af55b83c9a99$var$ParserError(\"Stack underflow\"));\n if (value === undefined) value = this.state.buf;\n this.state = this.stack.pop();\n this.state.returned = value;\n }\n returnNow(value) {\n this.return(value);\n return this.runOne();\n }\n consume() {\n /* istanbul ignore next */ if (this.char === $74b0af55b83c9a99$var$ParserEND) throw this.error(new $74b0af55b83c9a99$var$ParserError(\"Unexpected end-of-buffer\"));\n this.state.buf += this._buf[this.ii];\n }\n error(err) {\n err.line = this.line;\n err.col = this.col;\n err.pos = this.pos;\n return err;\n }\n /* istanbul ignore next */ parseStart() {\n throw new $74b0af55b83c9a99$var$ParserError(\"Must declare a parseStart method\");\n }\n}\n$74b0af55b83c9a99$var$Parser.END = $74b0af55b83c9a99$var$ParserEND;\n$74b0af55b83c9a99$var$Parser.Error = $74b0af55b83c9a99$var$ParserError;\nmodule.exports = $74b0af55b83c9a99$var$Parser;\n\n});\n\nparcelRegister(\"65V8s\", function(module, exports) {\n\"use strict\";\nmodule.exports = (value)=>{\n const date = new Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"2Gq8U\", function(module, exports) {\n\"use strict\";\n\nvar $d28ir = parcelRequire(\"d28ir\");\nclass $1f43c86cb2cd1fc5$var$FloatingDateTime extends Date {\n constructor(value){\n super(value + \"Z\");\n this.isFloating = true;\n }\n toISOString() {\n const date = `${this.getUTCFullYear()}-${$d28ir(2, this.getUTCMonth() + 1)}-${$d28ir(2, this.getUTCDate())}`;\n const time = `${$d28ir(2, this.getUTCHours())}:${$d28ir(2, this.getUTCMinutes())}:${$d28ir(2, this.getUTCSeconds())}.${$d28ir(3, this.getUTCMilliseconds())}`;\n return `${date}T${time}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $1f43c86cb2cd1fc5$var$FloatingDateTime(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\nparcelRegister(\"d28ir\", function(module, exports) {\n\"use strict\";\nmodule.exports = (d, num)=>{\n num = String(num);\n while(num.length < d)num = \"0\" + num;\n return num;\n};\n\n});\n\n\nparcelRegister(\"ackbS\", function(module, exports) {\n\"use strict\";\n\nvar $d28ir = parcelRequire(\"d28ir\");\nconst $76caafd18bebcb54$var$DateTime = $parcel$global.Date;\nclass $76caafd18bebcb54$var$Date extends $76caafd18bebcb54$var$DateTime {\n constructor(value){\n super(value);\n this.isDate = true;\n }\n toISOString() {\n return `${this.getUTCFullYear()}-${$d28ir(2, this.getUTCMonth() + 1)}-${$d28ir(2, this.getUTCDate())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $76caafd18bebcb54$var$Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"k3cxx\", function(module, exports) {\n\"use strict\";\n\nvar $d28ir = parcelRequire(\"d28ir\");\nclass $e98dd09c7605dea4$var$Time extends Date {\n constructor(value){\n super(`0000-01-01T${value}Z`);\n this.isTime = true;\n }\n toISOString() {\n return `${$d28ir(2, this.getUTCHours())}:${$d28ir(2, this.getUTCMinutes())}:${$d28ir(2, this.getUTCSeconds())}.${$d28ir(3, this.getUTCMilliseconds())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $e98dd09c7605dea4$var$Time(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\n\nparcelRegister(\"2Aiv1\", function(module, exports) {\n\"use strict\";\nmodule.exports = $1e1d4b24b1b79001$var$prettyError;\nfunction $1e1d4b24b1b79001$var$prettyError(err, buf) {\n /* istanbul ignore if */ if (err.pos == null || err.line == null) return err;\n let msg = err.message;\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`;\n /* istanbul ignore else */ if (buf && buf.split) {\n const lines = buf.split(/\\n/);\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length;\n let linePadding = \" \";\n while(linePadding.length < lineNumWidth)linePadding += \" \";\n for(let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii){\n let lineNum = String(ii + 1);\n if (lineNum.length < lineNumWidth) lineNum = \" \" + lineNum;\n if (err.line === ii) {\n msg += lineNum + \"> \" + lines[ii] + \"\\n\";\n msg += linePadding + \" \";\n for(let hh = 0; hh < err.col; ++hh)msg += \" \";\n msg += \"^\\n\";\n } else msg += lineNum + \": \" + lines[ii] + \"\\n\";\n }\n }\n err.message = msg + \"\\n\";\n return err;\n}\n\n});\n\n\nparcelRegister(\"cn5IV\", function(module, exports) {\n\"use strict\";\nmodule.exports = $901c129ce2408bc9$var$parseAsync;\n\nvar $kdMBf = parcelRequire(\"kdMBf\");\n\nvar $2Aiv1 = parcelRequire(\"2Aiv1\");\nfunction $901c129ce2408bc9$var$parseAsync(str, opts) {\n if (!opts) opts = {};\n const index = 0;\n const blocksize = opts.blocksize || 40960;\n const parser = new $kdMBf();\n return new Promise((resolve, reject)=>{\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject);\n });\n function parseAsyncNext(index, blocksize, resolve, reject) {\n if (index >= str.length) try {\n return resolve(parser.finish());\n } catch (err) {\n return reject($2Aiv1(err, str));\n }\n try {\n parser.parse(str.slice(index, index + blocksize));\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject);\n } catch (err) {\n reject($2Aiv1(err, str));\n }\n }\n}\n\n});\n\nparcelRegister(\"6Gy5N\", function(module, exports) {\n\"use strict\";\nmodule.exports = $4de11c6185170c0e$var$parseStream;\n\n\nvar $kdMBf = parcelRequire(\"kdMBf\");\nfunction $4de11c6185170c0e$var$parseStream(stm) {\n if (stm) return $4de11c6185170c0e$var$parseReadable(stm);\n else return $4de11c6185170c0e$var$parseTransform(stm);\n}\nfunction $4de11c6185170c0e$var$parseReadable(stm) {\n const parser = new $kdMBf();\n stm.setEncoding(\"utf8\");\n return new Promise((resolve, reject)=>{\n let readable;\n let ended = false;\n let errored = false;\n function finish() {\n ended = true;\n if (readable) return;\n try {\n resolve(parser.finish());\n } catch (err) {\n reject(err);\n }\n }\n function error(err) {\n errored = true;\n reject(err);\n }\n stm.once(\"end\", finish);\n stm.once(\"error\", error);\n readNext();\n function readNext() {\n readable = true;\n let data;\n while((data = stm.read()) !== null)try {\n parser.parse(data);\n } catch (err) {\n return error(err);\n }\n readable = false;\n /* istanbul ignore if */ if (ended) return finish();\n /* istanbul ignore if */ if (errored) return;\n stm.once(\"readable\", readNext);\n }\n });\n}\nfunction $4de11c6185170c0e$var$parseTransform() {\n const parser = new $kdMBf();\n return new $kC5q1$stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding));\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n },\n flush (cb) {\n try {\n this.push(parser.finish());\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n }\n });\n}\n\n});\n\n\nparcelRegister(\"AMirQ\", function(module, exports) {\n\"use strict\";\nmodule.exports = $06e8d398bc1e197f$var$stringify;\nmodule.exports.value = $06e8d398bc1e197f$var$stringifyInline;\nfunction $06e8d398bc1e197f$var$stringify(obj) {\n if (obj === null) throw $06e8d398bc1e197f$var$typeError(\"null\");\n if (obj === void 0) throw $06e8d398bc1e197f$var$typeError(\"undefined\");\n if (typeof obj !== \"object\") throw $06e8d398bc1e197f$var$typeError(typeof obj);\n if (typeof obj.toJSON === \"function\") obj = obj.toJSON();\n if (obj == null) return null;\n const type = $06e8d398bc1e197f$var$tomlType(obj);\n if (type !== \"table\") throw $06e8d398bc1e197f$var$typeError(type);\n return $06e8d398bc1e197f$var$stringifyObject(\"\", \"\", obj);\n}\nfunction $06e8d398bc1e197f$var$typeError(type) {\n return new Error(\"Can only stringify objects, not \" + type);\n}\nfunction $06e8d398bc1e197f$var$arrayOneTypeError() {\n return new Error(\"Array values can't have mixed types\");\n}\nfunction $06e8d398bc1e197f$var$getInlineKeys(obj) {\n return Object.keys(obj).filter((key)=>$06e8d398bc1e197f$var$isInline(obj[key]));\n}\nfunction $06e8d398bc1e197f$var$getComplexKeys(obj) {\n return Object.keys(obj).filter((key)=>!$06e8d398bc1e197f$var$isInline(obj[key]));\n}\nfunction $06e8d398bc1e197f$var$toJSON(obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, \"__proto__\") ? {\n [\"__proto__\"]: undefined\n } : {};\n for (let prop of Object.keys(obj))if (obj[prop] && typeof obj[prop].toJSON === \"function\" && !(\"toISOString\" in obj[prop])) nobj[prop] = obj[prop].toJSON();\n else nobj[prop] = obj[prop];\n return nobj;\n}\nfunction $06e8d398bc1e197f$var$stringifyObject(prefix, indent, obj) {\n obj = $06e8d398bc1e197f$var$toJSON(obj);\n var inlineKeys;\n var complexKeys;\n inlineKeys = $06e8d398bc1e197f$var$getInlineKeys(obj);\n complexKeys = $06e8d398bc1e197f$var$getComplexKeys(obj);\n var result = [];\n var inlineIndent = indent || \"\";\n inlineKeys.forEach((key)=>{\n var type = $06e8d398bc1e197f$var$tomlType(obj[key]);\n if (type !== \"undefined\" && type !== \"null\") result.push(inlineIndent + $06e8d398bc1e197f$var$stringifyKey(key) + \" = \" + $06e8d398bc1e197f$var$stringifyAnyInline(obj[key], true));\n });\n if (result.length > 0) result.push(\"\");\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + \" \" : \"\";\n complexKeys.forEach((key)=>{\n result.push($06e8d398bc1e197f$var$stringifyComplex(prefix, complexIndent, key, obj[key]));\n });\n return result.join(\"\\n\");\n}\nfunction $06e8d398bc1e197f$var$isInline(value) {\n switch($06e8d398bc1e197f$var$tomlType(value)){\n case \"undefined\":\n case \"null\":\n case \"integer\":\n case \"nan\":\n case \"float\":\n case \"boolean\":\n case \"string\":\n case \"datetime\":\n return true;\n case \"array\":\n return value.length === 0 || $06e8d398bc1e197f$var$tomlType(value[0]) !== \"table\";\n case \"table\":\n return Object.keys(value).length === 0;\n /* istanbul ignore next */ default:\n return false;\n }\n}\nfunction $06e8d398bc1e197f$var$tomlType(value) {\n if (value === undefined) return \"undefined\";\n else if (value === null) return \"null\";\n else if (typeof value === \"bigint\" || Number.isInteger(value) && !Object.is(value, -0)) return \"integer\";\n else if (typeof value === \"number\") return \"float\";\n else if (typeof value === \"boolean\") return \"boolean\";\n else if (typeof value === \"string\") return \"string\";\n else if (\"toISOString\" in value) return isNaN(value) ? \"undefined\" : \"datetime\";\n else if (Array.isArray(value)) return \"array\";\n else return \"table\";\n}\nfunction $06e8d398bc1e197f$var$stringifyKey(key) {\n var keyStr = String(key);\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) return keyStr;\n else return $06e8d398bc1e197f$var$stringifyBasicString(keyStr);\n}\nfunction $06e8d398bc1e197f$var$stringifyBasicString(str) {\n return '\"' + $06e8d398bc1e197f$var$escapeString(str).replace(/\"/g, '\\\\\"') + '\"';\n}\nfunction $06e8d398bc1e197f$var$stringifyLiteralString(str) {\n return \"'\" + str + \"'\";\n}\nfunction $06e8d398bc1e197f$var$numpad(num, str) {\n while(str.length < num)str = \"0\" + str;\n return str;\n}\nfunction $06e8d398bc1e197f$var$escapeString(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/[\\b]/g, \"\\\\b\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\f/g, \"\\\\f\").replace(/\\r/g, \"\\\\r\")/* eslint-disable no-control-regex */ .replace(/([\\u0000-\\u001f\\u007f])/, (c)=>\"\\\\u\" + $06e8d398bc1e197f$var$numpad(4, c.codePointAt(0).toString(16)));\n/* eslint-enable no-control-regex */ }\nfunction $06e8d398bc1e197f$var$stringifyMultilineString(str) {\n let escaped = str.split(/\\n/).map((str)=>{\n return $06e8d398bc1e197f$var$escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"');\n }).join(\"\\n\");\n if (escaped.slice(-1) === '\"') escaped += \"\\\\\\n\";\n return '\"\"\"\\n' + escaped + '\"\"\"';\n}\nfunction $06e8d398bc1e197f$var$stringifyAnyInline(value, multilineOk) {\n let type = $06e8d398bc1e197f$var$tomlType(value);\n if (type === \"string\") {\n if (multilineOk && /\\n/.test(value)) type = \"string-multiline\";\n else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) type = \"string-literal\";\n }\n return $06e8d398bc1e197f$var$stringifyInline(value, type);\n}\nfunction $06e8d398bc1e197f$var$stringifyInline(value, type) {\n /* istanbul ignore if */ if (!type) type = $06e8d398bc1e197f$var$tomlType(value);\n switch(type){\n case \"string-multiline\":\n return $06e8d398bc1e197f$var$stringifyMultilineString(value);\n case \"string\":\n return $06e8d398bc1e197f$var$stringifyBasicString(value);\n case \"string-literal\":\n return $06e8d398bc1e197f$var$stringifyLiteralString(value);\n case \"integer\":\n return $06e8d398bc1e197f$var$stringifyInteger(value);\n case \"float\":\n return $06e8d398bc1e197f$var$stringifyFloat(value);\n case \"boolean\":\n return $06e8d398bc1e197f$var$stringifyBoolean(value);\n case \"datetime\":\n return $06e8d398bc1e197f$var$stringifyDatetime(value);\n case \"array\":\n return $06e8d398bc1e197f$var$stringifyInlineArray(value.filter((_)=>$06e8d398bc1e197f$var$tomlType(_) !== \"null\" && $06e8d398bc1e197f$var$tomlType(_) !== \"undefined\" && $06e8d398bc1e197f$var$tomlType(_) !== \"nan\"));\n case \"table\":\n return $06e8d398bc1e197f$var$stringifyInlineTable(value);\n /* istanbul ignore next */ default:\n throw $06e8d398bc1e197f$var$typeError(type);\n }\n}\nfunction $06e8d398bc1e197f$var$stringifyInteger(value) {\n /* eslint-disable security/detect-unsafe-regex */ return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"_\");\n}\nfunction $06e8d398bc1e197f$var$stringifyFloat(value) {\n if (value === Infinity) return \"inf\";\n else if (value === -Infinity) return \"-inf\";\n else if (Object.is(value, NaN)) return \"nan\";\n else if (Object.is(value, -0)) return \"-0.0\";\n var chunks = String(value).split(\".\");\n var int = chunks[0];\n var dec = chunks[1] || 0;\n return $06e8d398bc1e197f$var$stringifyInteger(int) + \".\" + dec;\n}\nfunction $06e8d398bc1e197f$var$stringifyBoolean(value) {\n return String(value);\n}\nfunction $06e8d398bc1e197f$var$stringifyDatetime(value) {\n return value.toISOString();\n}\nfunction $06e8d398bc1e197f$var$isNumber(type) {\n return type === \"float\" || type === \"integer\";\n}\nfunction $06e8d398bc1e197f$var$arrayType(values) {\n var contentType = $06e8d398bc1e197f$var$tomlType(values[0]);\n if (values.every((_)=>$06e8d398bc1e197f$var$tomlType(_) === contentType)) return contentType;\n // mixed integer/float, emit as floats\n if (values.every((_)=>$06e8d398bc1e197f$var$isNumber($06e8d398bc1e197f$var$tomlType(_)))) return \"float\";\n return \"mixed\";\n}\nfunction $06e8d398bc1e197f$var$validateArray(values) {\n const type = $06e8d398bc1e197f$var$arrayType(values);\n if (type === \"mixed\") throw $06e8d398bc1e197f$var$arrayOneTypeError();\n return type;\n}\nfunction $06e8d398bc1e197f$var$stringifyInlineArray(values) {\n values = $06e8d398bc1e197f$var$toJSON(values);\n const type = $06e8d398bc1e197f$var$validateArray(values);\n var result = \"[\";\n var stringified = values.map((_)=>$06e8d398bc1e197f$var$stringifyInline(_, type));\n if (stringified.join(\", \").length > 60 || /\\n/.test(stringified)) result += \"\\n \" + stringified.join(\",\\n \") + \"\\n\";\n else result += \" \" + stringified.join(\", \") + (stringified.length > 0 ? \" \" : \"\");\n return result + \"]\";\n}\nfunction $06e8d398bc1e197f$var$stringifyInlineTable(value) {\n value = $06e8d398bc1e197f$var$toJSON(value);\n var result = [];\n Object.keys(value).forEach((key)=>{\n result.push($06e8d398bc1e197f$var$stringifyKey(key) + \" = \" + $06e8d398bc1e197f$var$stringifyAnyInline(value[key], false));\n });\n return \"{ \" + result.join(\", \") + (result.length > 0 ? \" \" : \"\") + \"}\";\n}\nfunction $06e8d398bc1e197f$var$stringifyComplex(prefix, indent, key, value) {\n var valueType = $06e8d398bc1e197f$var$tomlType(value);\n /* istanbul ignore else */ if (valueType === \"array\") return $06e8d398bc1e197f$var$stringifyArrayOfTables(prefix, indent, key, value);\n else if (valueType === \"table\") return $06e8d398bc1e197f$var$stringifyComplexTable(prefix, indent, key, value);\n else throw $06e8d398bc1e197f$var$typeError(valueType);\n}\nfunction $06e8d398bc1e197f$var$stringifyArrayOfTables(prefix, indent, key, values) {\n values = $06e8d398bc1e197f$var$toJSON(values);\n $06e8d398bc1e197f$var$validateArray(values);\n var firstValueType = $06e8d398bc1e197f$var$tomlType(values[0]);\n /* istanbul ignore if */ if (firstValueType !== \"table\") throw $06e8d398bc1e197f$var$typeError(firstValueType);\n var fullKey = prefix + $06e8d398bc1e197f$var$stringifyKey(key);\n var result = \"\";\n values.forEach((table)=>{\n if (result.length > 0) result += \"\\n\";\n result += indent + \"[[\" + fullKey + \"]]\\n\";\n result += $06e8d398bc1e197f$var$stringifyObject(fullKey + \".\", indent, table);\n });\n return result;\n}\nfunction $06e8d398bc1e197f$var$stringifyComplexTable(prefix, indent, key, value) {\n var fullKey = prefix + $06e8d398bc1e197f$var$stringifyKey(key);\n var result = \"\";\n if ($06e8d398bc1e197f$var$getInlineKeys(value).length > 0) result += indent + \"[\" + fullKey + \"]\\n\";\n return result + $06e8d398bc1e197f$var$stringifyObject(fullKey + \".\", indent, value);\n}\n\n});\n\n\n\nparcelRegister(\"aN96g\", function(module, exports) {\n\n$parcel$export(module.exports, \"MANIFEST_URL\", () => $a36d466fdb06cb14$export$f3182c5cb60bb857);\n$parcel$export(module.exports, \"findReleaseFromManifest\", () => $a36d466fdb06cb14$export$45bea79befbd9a23);\n$parcel$export(module.exports, \"getManifest\", () => $a36d466fdb06cb14$export$39e873de56f329d8);\n$parcel$export(module.exports, \"installCpythonFromRelease\", () => $a36d466fdb06cb14$export$e1ffa7cd53152881);\n\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\n\nvar $bHzmH = parcelRequire(\"bHzmH\");\n\nvar $56hu0 = parcelRequire(\"56hu0\");\nconst $a36d466fdb06cb14$var$TOKEN = $1o3Gj.getInput(\"token\");\nconst $a36d466fdb06cb14$var$AUTH = !$a36d466fdb06cb14$var$TOKEN ? undefined : `token ${$a36d466fdb06cb14$var$TOKEN}`;\nconst $a36d466fdb06cb14$var$MANIFEST_REPO_OWNER = \"actions\";\nconst $a36d466fdb06cb14$var$MANIFEST_REPO_NAME = \"python-versions\";\nconst $a36d466fdb06cb14$var$MANIFEST_REPO_BRANCH = \"main\";\nconst $a36d466fdb06cb14$export$f3182c5cb60bb857 = `https://raw.githubusercontent.com/${$a36d466fdb06cb14$var$MANIFEST_REPO_OWNER}/${$a36d466fdb06cb14$var$MANIFEST_REPO_NAME}/${$a36d466fdb06cb14$var$MANIFEST_REPO_BRANCH}/versions-manifest.json`;\nasync function $a36d466fdb06cb14$export$45bea79befbd9a23(semanticVersionSpec, architecture, manifest) {\n if (!manifest) manifest = await $a36d466fdb06cb14$export$39e873de56f329d8();\n const foundRelease = await $5DFAC.findFromManifest(semanticVersionSpec, false, manifest, architecture);\n return foundRelease;\n}\nfunction $a36d466fdb06cb14$export$39e873de56f329d8() {\n $1o3Gj.debug(`Getting manifest from ${$a36d466fdb06cb14$var$MANIFEST_REPO_OWNER}/${$a36d466fdb06cb14$var$MANIFEST_REPO_NAME}@${$a36d466fdb06cb14$var$MANIFEST_REPO_BRANCH}`);\n return $5DFAC.getManifestFromRepo($a36d466fdb06cb14$var$MANIFEST_REPO_OWNER, $a36d466fdb06cb14$var$MANIFEST_REPO_NAME, $a36d466fdb06cb14$var$AUTH, $a36d466fdb06cb14$var$MANIFEST_REPO_BRANCH);\n}\nasync function $a36d466fdb06cb14$var$installPython(workingDirectory) {\n const options = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(0, $56hu0.IS_LINUX) && {\n LD_LIBRARY_PATH: $kC5q1$path.join(workingDirectory, \"lib\")\n }\n },\n silent: true,\n listeners: {\n stdout: (data)=>{\n $1o3Gj.info(data.toString().trim());\n },\n stderr: (data)=>{\n $1o3Gj.error(data.toString().trim());\n }\n }\n };\n if (0, $56hu0.IS_WINDOWS) await $bHzmH.exec(\"powershell\", [\n \"./setup.ps1\"\n ], options);\n else await $bHzmH.exec(\"bash\", [\n \"./setup.sh\"\n ], options);\n}\nasync function $a36d466fdb06cb14$export$e1ffa7cd53152881(release) {\n const downloadUrl = release.files[0].download_url;\n $1o3Gj.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = \"\";\n try {\n pythonPath = await $5DFAC.downloadTool(downloadUrl, undefined, $a36d466fdb06cb14$var$AUTH);\n $1o3Gj.info(\"Extract downloaded archive\");\n let pythonExtractedFolder;\n if (0, $56hu0.IS_WINDOWS) pythonExtractedFolder = await $5DFAC.extractZip(pythonPath);\n else pythonExtractedFolder = await $5DFAC.extractTar(pythonPath);\n $1o3Gj.info(\"Execute installation script\");\n await $a36d466fdb06cb14$var$installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof $5DFAC.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) $1o3Gj.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $1o3Gj.info(err.message);\n if (err.stack) $1o3Gj.debug(err.stack);\n }\n throw err;\n }\n}\n\n});\nparcelRegister(\"5DFAC\", function(module, exports) {\n\nvar $41b0db1703236f02$var$$parcel$__dirname = $kC5q1$path.resolve(__dirname, \"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib\");\n\"use strict\";\nvar $41b0db1703236f02$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $41b0db1703236f02$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $41b0db1703236f02$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $41b0db1703236f02$var$__createBinding(result, mod, k);\n }\n $41b0db1703236f02$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $41b0db1703236f02$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $41b0db1703236f02$var$__importDefault = module.exports && module.exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.evaluateVersions = module.exports.isExplicitVersion = module.exports.findFromManifest = module.exports.getManifestFromRepo = module.exports.findAllVersions = module.exports.find = module.exports.cacheFile = module.exports.cacheDir = module.exports.extractZip = module.exports.extractXar = module.exports.extractTar = module.exports.extract7z = module.exports.downloadTool = module.exports.HTTPError = void 0;\n\nconst $41b0db1703236f02$var$core = $41b0db1703236f02$var$__importStar((parcelRequire(\"1o3Gj\")));\n\nconst $41b0db1703236f02$var$io = $41b0db1703236f02$var$__importStar((parcelRequire(\"zdagz\")));\n\nconst $41b0db1703236f02$var$fs = $41b0db1703236f02$var$__importStar($kC5q1$fs);\n\nconst $41b0db1703236f02$var$mm = $41b0db1703236f02$var$__importStar((parcelRequire(\"hzNJS\")));\n\nconst $41b0db1703236f02$var$os = $41b0db1703236f02$var$__importStar($kC5q1$os);\n\nconst $41b0db1703236f02$var$path = $41b0db1703236f02$var$__importStar($kC5q1$path);\n\nconst $41b0db1703236f02$var$httpm = $41b0db1703236f02$var$__importStar((parcelRequire(\"eamjo\")));\n\nconst $41b0db1703236f02$var$semver = $41b0db1703236f02$var$__importStar((parcelRequire(\"4IOon\")));\n\nconst $41b0db1703236f02$var$stream = $41b0db1703236f02$var$__importStar($kC5q1$stream);\n\nconst $41b0db1703236f02$var$util = $41b0db1703236f02$var$__importStar($kC5q1$util);\n\nconst $41b0db1703236f02$var$v4_1 = $41b0db1703236f02$var$__importDefault((parcelRequire(\"cJF00\")));\n\nvar $bHzmH = parcelRequire(\"bHzmH\");\n\n\nvar $1kmXt = parcelRequire(\"1kmXt\");\nclass $41b0db1703236f02$var$HTTPError extends Error {\n constructor(httpStatusCode){\n super(`Unexpected HTTP response: ${httpStatusCode}`);\n this.httpStatusCode = httpStatusCode;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nmodule.exports.HTTPError = $41b0db1703236f02$var$HTTPError;\nconst $41b0db1703236f02$var$IS_WINDOWS = process.platform === \"win32\";\nconst $41b0db1703236f02$var$IS_MAC = process.platform === \"darwin\";\nconst $41b0db1703236f02$var$userAgent = \"actions/tool-cache\";\n/**\n * Download a tool from an url and stream it into a file\n *\n * @param url url of tool to download\n * @param dest path to download tool\n * @param auth authorization header\n * @param headers other headers\n * @returns path to downloaded tool\n */ function $41b0db1703236f02$var$downloadTool(url, dest, auth, headers) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n dest = dest || $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getTempDirectory(), $41b0db1703236f02$var$v4_1.default());\n yield $41b0db1703236f02$var$io.mkdirP($41b0db1703236f02$var$path.dirname(dest));\n $41b0db1703236f02$var$core.debug(`Downloading ${url}`);\n $41b0db1703236f02$var$core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = $41b0db1703236f02$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS\", 10);\n const maxSeconds = $41b0db1703236f02$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS\", 20);\n const retryHelper = new $1kmXt.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(()=>$41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n return yield $41b0db1703236f02$var$downloadToolAttempt(url, dest || \"\", auth, headers);\n }), (err)=>{\n if (err instanceof $41b0db1703236f02$var$HTTPError && err.httpStatusCode) {\n // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests\n if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false;\n }\n // Otherwise retry\n return true;\n });\n });\n}\nmodule.exports.downloadTool = $41b0db1703236f02$var$downloadTool;\nfunction $41b0db1703236f02$var$downloadToolAttempt(url, dest, auth, headers) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n if ($41b0db1703236f02$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`);\n // Get the response headers\n const http = new $41b0db1703236f02$var$httpm.HttpClient($41b0db1703236f02$var$userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n $41b0db1703236f02$var$core.debug(\"set auth\");\n if (headers === undefined) headers = {};\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new $41b0db1703236f02$var$HTTPError(response.message.statusCode);\n $41b0db1703236f02$var$core.debug(`Failed to download from \"${url}\". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);\n throw err;\n }\n // Download the response body\n const pipeline = $41b0db1703236f02$var$util.promisify($41b0db1703236f02$var$stream.pipeline);\n const responseMessageFactory = $41b0db1703236f02$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY\", ()=>response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, $41b0db1703236f02$var$fs.createWriteStream(dest));\n $41b0db1703236f02$var$core.debug(\"download complete\");\n succeeded = true;\n return dest;\n } finally{\n // Error, delete dest before retry\n if (!succeeded) {\n $41b0db1703236f02$var$core.debug(\"download failed\");\n try {\n yield $41b0db1703236f02$var$io.rmRF(dest);\n } catch (err) {\n $41b0db1703236f02$var$core.debug(`Failed to delete '${dest}'. ${err.message}`);\n }\n }\n }\n });\n}\n/**\n * Extract a .7z file\n *\n * @param file path to the .7z file\n * @param dest destination directory. Optional.\n * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this\n * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will\n * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is\n * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line\n * interface, it is smaller than the full command line interface, and it does support long paths. At the\n * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.\n * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path\n * to 7zr.exe can be pass to this function.\n * @returns path to the destination directory\n */ function $41b0db1703236f02$var$extract7z(file, dest, _7zPath) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n $kC5q1$assert.ok($41b0db1703236f02$var$IS_WINDOWS, \"extract7z() not supported on current OS\");\n $kC5q1$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $41b0db1703236f02$var$_createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) try {\n const logLevel = $41b0db1703236f02$var$core.isDebug() ? \"-bb1\" : \"-bb0\";\n const args = [\n \"x\",\n logLevel,\n \"-bd\",\n \"-sccUTF-8\",\n file\n ];\n const options = {\n silent: true\n };\n yield $bHzmH.exec(`\"${_7zPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n else {\n const escapedScript = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$$parcel$__dirname, \"..\", \"scripts\", \"Invoke-7zdec.ps1\").replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const escapedTarget = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n command\n ];\n const options = {\n silent: true\n };\n try {\n const powershellPath = yield $41b0db1703236f02$var$io.which(\"powershell\", true);\n yield $bHzmH.exec(`\"${powershellPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nmodule.exports.extract7z = $41b0db1703236f02$var$extract7z;\n/**\n * Extract a compressed tar archive\n *\n * @param file path to the tar\n * @param dest destination directory. Optional.\n * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional.\n * @returns path to the destination directory\n */ function $41b0db1703236f02$var$extractTar(file, dest, flags = \"xz\") {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n // Create dest\n dest = yield $41b0db1703236f02$var$_createExtractFolder(dest);\n // Determine whether GNU tar\n $41b0db1703236f02$var$core.debug(\"Checking tar --version\");\n let versionOutput = \"\";\n yield $bHzmH.exec(\"tar --version\", [], {\n ignoreReturnCode: true,\n silent: true,\n listeners: {\n stdout: (data)=>versionOutput += data.toString(),\n stderr: (data)=>versionOutput += data.toString()\n }\n });\n $41b0db1703236f02$var$core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes(\"GNU TAR\");\n // Initialize args\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n if ($41b0db1703236f02$var$core.isDebug() && !flags.includes(\"v\")) args.push(\"-v\");\n let destArg = dest;\n let fileArg = file;\n if ($41b0db1703236f02$var$IS_WINDOWS && isGnuTar) {\n args.push(\"--force-local\");\n destArg = dest.replace(/\\\\/g, \"/\");\n // Technically only the dest needs to have `/` but for aesthetic consistency\n // convert slashes in the file arg too.\n fileArg = file.replace(/\\\\/g, \"/\");\n }\n if (isGnuTar) {\n // Suppress warnings when using GNU tar to extract archives created by BSD tar\n args.push(\"--warning=no-unknown-keyword\");\n args.push(\"--overwrite\");\n }\n args.push(\"-C\", destArg, \"-f\", fileArg);\n yield $bHzmH.exec(`tar`, args);\n return dest;\n });\n}\nmodule.exports.extractTar = $41b0db1703236f02$var$extractTar;\n/**\n * Extract a xar compatible archive\n *\n * @param file path to the archive\n * @param dest destination directory. Optional.\n * @param flags flags for the xar. Optional.\n * @returns path to the destination directory\n */ function $41b0db1703236f02$var$extractXar(file, dest, flags = []) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n $kC5q1$assert.ok($41b0db1703236f02$var$IS_MAC, \"extractXar() not supported on current OS\");\n $kC5q1$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $41b0db1703236f02$var$_createExtractFolder(dest);\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n args.push(\"-x\", \"-C\", dest, \"-f\", file);\n if ($41b0db1703236f02$var$core.isDebug()) args.push(\"-v\");\n const xarPath = yield $41b0db1703236f02$var$io.which(\"xar\", true);\n yield $bHzmH.exec(`\"${xarPath}\"`, $41b0db1703236f02$var$_unique(args));\n return dest;\n });\n}\nmodule.exports.extractXar = $41b0db1703236f02$var$extractXar;\n/**\n * Extract a zip\n *\n * @param file path to the zip\n * @param dest destination directory. Optional.\n * @returns path to the destination directory\n */ function $41b0db1703236f02$var$extractZip(file, dest) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n dest = yield $41b0db1703236f02$var$_createExtractFolder(dest);\n if ($41b0db1703236f02$var$IS_WINDOWS) yield $41b0db1703236f02$var$extractZipWin(file, dest);\n else yield $41b0db1703236f02$var$extractZipNix(file, dest);\n return dest;\n });\n}\nmodule.exports.extractZip = $41b0db1703236f02$var$extractZip;\nfunction $41b0db1703236f02$var$extractZipWin(file, dest) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n // build the powershell command\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedDest = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const pwshPath = yield $41b0db1703236f02$var$io.which(\"pwsh\", false);\n //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory\n //and the -Force flag for Expand-Archive as a fallback\n if (pwshPath) {\n //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive\n const pwshCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,\n `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,\n `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n pwshCommand\n ];\n $41b0db1703236f02$var$core.debug(`Using pwsh at path: ${pwshPath}`);\n yield $bHzmH.exec(`\"${pwshPath}\"`, args);\n } else {\n const powershellCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,\n `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,\n `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n powershellCommand\n ];\n const powershellPath = yield $41b0db1703236f02$var$io.which(\"powershell\", true);\n $41b0db1703236f02$var$core.debug(`Using powershell at path: ${powershellPath}`);\n yield $bHzmH.exec(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction $41b0db1703236f02$var$extractZipNix(file, dest) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n const unzipPath = yield $41b0db1703236f02$var$io.which(\"unzip\", true);\n const args = [\n file\n ];\n if (!$41b0db1703236f02$var$core.isDebug()) args.unshift(\"-q\");\n args.unshift(\"-o\"); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield $bHzmH.exec(`\"${unzipPath}\"`, args, {\n cwd: dest\n });\n });\n}\n/**\n * Caches a directory and installs it into the tool cacheDir\n *\n * @param sourceDir the directory to cache into tools\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $41b0db1703236f02$var$cacheDir(sourceDir, tool, version, arch) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n version = $41b0db1703236f02$var$semver.clean(version) || version;\n arch = arch || $41b0db1703236f02$var$os.arch();\n $41b0db1703236f02$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $41b0db1703236f02$var$core.debug(`source dir: ${sourceDir}`);\n if (!$41b0db1703236f02$var$fs.statSync(sourceDir).isDirectory()) throw new Error(\"sourceDir is not a directory\");\n // Create the tool dir\n const destPath = yield $41b0db1703236f02$var$_createToolPath(tool, version, arch);\n // copy each child item. do not move. move can fail on Windows\n // due to anti-virus software having an open handle on a file.\n for (const itemName of $41b0db1703236f02$var$fs.readdirSync(sourceDir)){\n const s = $41b0db1703236f02$var$path.join(sourceDir, itemName);\n yield $41b0db1703236f02$var$io.cp(s, destPath, {\n recursive: true\n });\n }\n // write .complete\n $41b0db1703236f02$var$_completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nmodule.exports.cacheDir = $41b0db1703236f02$var$cacheDir;\n/**\n * Caches a downloaded file (GUID) and installs it\n * into the tool cache with a given targetName\n *\n * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.\n * @param targetFile the name of the file name in the tools directory\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $41b0db1703236f02$var$cacheFile(sourceFile, targetFile, tool, version, arch) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n version = $41b0db1703236f02$var$semver.clean(version) || version;\n arch = arch || $41b0db1703236f02$var$os.arch();\n $41b0db1703236f02$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $41b0db1703236f02$var$core.debug(`source file: ${sourceFile}`);\n if (!$41b0db1703236f02$var$fs.statSync(sourceFile).isFile()) throw new Error(\"sourceFile is not a file\");\n // create the tool dir\n const destFolder = yield $41b0db1703236f02$var$_createToolPath(tool, version, arch);\n // copy instead of move. move can fail on Windows due to\n // anti-virus software having an open handle on a file.\n const destPath = $41b0db1703236f02$var$path.join(destFolder, targetFile);\n $41b0db1703236f02$var$core.debug(`destination file ${destPath}`);\n yield $41b0db1703236f02$var$io.cp(sourceFile, destPath);\n // write .complete\n $41b0db1703236f02$var$_completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nmodule.exports.cacheFile = $41b0db1703236f02$var$cacheFile;\n/**\n * Finds the path to a tool version in the local installed tool cache\n *\n * @param toolName name of the tool\n * @param versionSpec version of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $41b0db1703236f02$var$find(toolName, versionSpec, arch) {\n if (!toolName) throw new Error(\"toolName parameter is required\");\n if (!versionSpec) throw new Error(\"versionSpec parameter is required\");\n arch = arch || $41b0db1703236f02$var$os.arch();\n // attempt to resolve an explicit version\n if (!$41b0db1703236f02$var$isExplicitVersion(versionSpec)) {\n const localVersions = $41b0db1703236f02$var$findAllVersions(toolName, arch);\n const match = $41b0db1703236f02$var$evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = \"\";\n if (versionSpec) {\n versionSpec = $41b0db1703236f02$var$semver.clean(versionSpec) || \"\";\n const cachePath = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getCacheDirectory(), toolName, versionSpec, arch);\n $41b0db1703236f02$var$core.debug(`checking cache: ${cachePath}`);\n if ($41b0db1703236f02$var$fs.existsSync(cachePath) && $41b0db1703236f02$var$fs.existsSync(`${cachePath}.complete`)) {\n $41b0db1703236f02$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n } else $41b0db1703236f02$var$core.debug(\"not found\");\n }\n return toolPath;\n}\nmodule.exports.find = $41b0db1703236f02$var$find;\n/**\n * Finds the paths to all versions of a tool that are installed in the local tool cache\n *\n * @param toolName name of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $41b0db1703236f02$var$findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || $41b0db1703236f02$var$os.arch();\n const toolPath = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getCacheDirectory(), toolName);\n if ($41b0db1703236f02$var$fs.existsSync(toolPath)) {\n const children = $41b0db1703236f02$var$fs.readdirSync(toolPath);\n for (const child of children)if ($41b0db1703236f02$var$isExplicitVersion(child)) {\n const fullPath = $41b0db1703236f02$var$path.join(toolPath, child, arch || \"\");\n if ($41b0db1703236f02$var$fs.existsSync(fullPath) && $41b0db1703236f02$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child);\n }\n }\n return versions;\n}\nmodule.exports.findAllVersions = $41b0db1703236f02$var$findAllVersions;\nfunction $41b0db1703236f02$var$getManifestFromRepo(owner, repo, auth, branch = \"master\") {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n let releases = [];\n const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;\n const http = new $41b0db1703236f02$var$httpm.HttpClient(\"tool-cache\");\n const headers = {};\n if (auth) {\n $41b0db1703236f02$var$core.debug(\"set auth\");\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) return releases;\n let manifestUrl = \"\";\n for (const item of response.result.tree)if (item.path === \"versions-manifest.json\") {\n manifestUrl = item.url;\n break;\n }\n headers[\"accept\"] = \"application/vnd.github.VERSION.raw\";\n let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody();\n if (versionsRaw) {\n // shouldn't be needed but protects against invalid json saved with BOM\n versionsRaw = versionsRaw.replace(/^\\uFEFF/, \"\");\n try {\n releases = JSON.parse(versionsRaw);\n } catch (_a) {\n $41b0db1703236f02$var$core.debug(\"Invalid json\");\n }\n }\n return releases;\n });\n}\nmodule.exports.getManifestFromRepo = $41b0db1703236f02$var$getManifestFromRepo;\nfunction $41b0db1703236f02$var$findFromManifest(versionSpec, stable, manifest, archFilter = $41b0db1703236f02$var$os.arch()) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n // wrap the internal impl\n const match = yield $41b0db1703236f02$var$mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nmodule.exports.findFromManifest = $41b0db1703236f02$var$findFromManifest;\nfunction $41b0db1703236f02$var$_createExtractFolder(dest) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n if (!dest) // create a temp dir\n dest = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getTempDirectory(), $41b0db1703236f02$var$v4_1.default());\n yield $41b0db1703236f02$var$io.mkdirP(dest);\n return dest;\n });\n}\nfunction $41b0db1703236f02$var$_createToolPath(tool, version, arch) {\n return $41b0db1703236f02$var$__awaiter(this, void 0, void 0, function*() {\n const folderPath = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getCacheDirectory(), tool, $41b0db1703236f02$var$semver.clean(version) || version, arch || \"\");\n $41b0db1703236f02$var$core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield $41b0db1703236f02$var$io.rmRF(folderPath);\n yield $41b0db1703236f02$var$io.rmRF(markerPath);\n yield $41b0db1703236f02$var$io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction $41b0db1703236f02$var$_completeToolPath(tool, version, arch) {\n const folderPath = $41b0db1703236f02$var$path.join($41b0db1703236f02$var$_getCacheDirectory(), tool, $41b0db1703236f02$var$semver.clean(version) || version, arch || \"\");\n const markerPath = `${folderPath}.complete`;\n $41b0db1703236f02$var$fs.writeFileSync(markerPath, \"\");\n $41b0db1703236f02$var$core.debug(\"finished caching tool\");\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */ function $41b0db1703236f02$var$isExplicitVersion(versionSpec) {\n const c = $41b0db1703236f02$var$semver.clean(versionSpec) || \"\";\n $41b0db1703236f02$var$core.debug(`isExplicit: ${c}`);\n const valid = $41b0db1703236f02$var$semver.valid(c) != null;\n $41b0db1703236f02$var$core.debug(`explicit? ${valid}`);\n return valid;\n}\nmodule.exports.isExplicitVersion = $41b0db1703236f02$var$isExplicitVersion;\n/**\n * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec`\n *\n * @param versions array of versions to evaluate\n * @param versionSpec semantic version spec to satisfy\n */ function $41b0db1703236f02$var$evaluateVersions(versions, versionSpec) {\n let version = \"\";\n $41b0db1703236f02$var$core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b)=>{\n if ($41b0db1703236f02$var$semver.gt(a, b)) return 1;\n return -1;\n });\n for(let i = versions.length - 1; i >= 0; i--){\n const potential = versions[i];\n const satisfied = $41b0db1703236f02$var$semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) $41b0db1703236f02$var$core.debug(`matched: ${version}`);\n else $41b0db1703236f02$var$core.debug(\"match not found\");\n return version;\n}\nmodule.exports.evaluateVersions = $41b0db1703236f02$var$evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */ function $41b0db1703236f02$var$_getCacheDirectory() {\n const cacheDirectory = process.env[\"RUNNER_TOOL_CACHE\"] || \"\";\n $kC5q1$assert.ok(cacheDirectory, \"Expected RUNNER_TOOL_CACHE to be defined\");\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */ function $41b0db1703236f02$var$_getTempDirectory() {\n const tempDirectory = process.env[\"RUNNER_TEMP\"] || \"\";\n $kC5q1$assert.ok(tempDirectory, \"Expected RUNNER_TEMP to be defined\");\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */ function $41b0db1703236f02$var$_getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */ function $41b0db1703236f02$var$_unique(values) {\n return Array.from(new Set(values));\n}\n\n});\nparcelRegister(\"hzNJS\", function(module, exports) {\n\"use strict\";\nvar $ccbc49b1dee732d4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $ccbc49b1dee732d4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $ccbc49b1dee732d4$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $ccbc49b1dee732d4$var$__createBinding(result, mod, k);\n }\n $ccbc49b1dee732d4$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $ccbc49b1dee732d4$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $ccbc49b1dee732d4$var$semver = $ccbc49b1dee732d4$var$__importStar((parcelRequire(\"4IOon\")));\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\n\n\nfunction $ccbc49b1dee732d4$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $ccbc49b1dee732d4$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $kC5q1$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $1o3Gj.debug(`check ${version} satisfies ${versionSpec}`);\n if ($ccbc49b1dee732d4$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $1o3Gj.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $ccbc49b1dee732d4$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $1o3Gj.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $ccbc49b1dee732d4$var$_findMatch;\nfunction $ccbc49b1dee732d4$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $kC5q1$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $kC5q1$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $ccbc49b1dee732d4$var$_getOsVersion;\nfunction $ccbc49b1dee732d4$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($kC5q1$fs.existsSync(lsbReleaseFile)) contents = $kC5q1$fs.readFileSync(lsbReleaseFile).toString();\n else if ($kC5q1$fs.existsSync(osReleaseFile)) contents = $kC5q1$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $ccbc49b1dee732d4$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"4IOon\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"cJF00\", function(module, exports) {\n\nvar $deqr0 = parcelRequire(\"deqr0\");\n\nvar $a2pIT = parcelRequire(\"a2pIT\");\nfunction $94597d95bd65179d$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $deqr0)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $a2pIT(rnds);\n}\nmodule.exports = $94597d95bd65179d$var$v4;\n\n});\nparcelRegister(\"deqr0\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $kC5q1$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"a2pIT\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $74ee0b5ffb7b42cf$var$byteToHex = [];\nfor(var $74ee0b5ffb7b42cf$var$i = 0; $74ee0b5ffb7b42cf$var$i < 256; ++$74ee0b5ffb7b42cf$var$i)$74ee0b5ffb7b42cf$var$byteToHex[$74ee0b5ffb7b42cf$var$i] = ($74ee0b5ffb7b42cf$var$i + 0x100).toString(16).substr(1);\nfunction $74ee0b5ffb7b42cf$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $74ee0b5ffb7b42cf$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $74ee0b5ffb7b42cf$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"1kmXt\", function(module, exports) {\n\"use strict\";\nvar $0f7977bd7cf4fb09$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $0f7977bd7cf4fb09$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $0f7977bd7cf4fb09$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $0f7977bd7cf4fb09$var$__createBinding(result, mod, k);\n }\n $0f7977bd7cf4fb09$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $0f7977bd7cf4fb09$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $0f7977bd7cf4fb09$var$core = $0f7977bd7cf4fb09$var$__importStar((parcelRequire(\"1o3Gj\")));\n/**\n * Internal class for retries\n */ class $0f7977bd7cf4fb09$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $0f7977bd7cf4fb09$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $0f7977bd7cf4fb09$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $0f7977bd7cf4fb09$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $0f7977bd7cf4fb09$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $0f7977bd7cf4fb09$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"ktIgk\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $8f071548850771d5$export$43d689d19c89c31d);\n\n\nvar $impuq = parcelRequire(\"impuq\");\n\nvar $56hu0 = parcelRequire(\"56hu0\");\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\nasync function $8f071548850771d5$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $8f071548850771d5$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $impuq.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $impuq.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $1o3Gj.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $1o3Gj.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $8f071548850771d5$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $impuq.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $56hu0.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $kC5q1$path.join(installDir, pipDir);\n const binaryExtension = (0, $56hu0.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $kC5q1$path.join((0, $56hu0.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $impuq.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $1o3Gj.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $1o3Gj.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $1o3Gj.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $1o3Gj.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $1o3Gj.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $1o3Gj.addPath(pythonLocation);\n $1o3Gj.addPath(_binDir);\n }\n $1o3Gj.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $1o3Gj.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $8f071548850771d5$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $56hu0.IS_WINDOWS) ? $8f071548850771d5$export$139298be7eb2bd(pythonVersion) : $5DFAC.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $56hu0.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $56hu0.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $coVwk.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $1o3Gj.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $8f071548850771d5$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $impuq.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $56hu0.validateVersion)(pythonVersion) || !(0, $56hu0.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $56hu0.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $8f071548850771d5$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $56hu0.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $5DFAC.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"impuq\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $7f55f27b3e761a95$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $7f55f27b3e761a95$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $7f55f27b3e761a95$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $7f55f27b3e761a95$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $7f55f27b3e761a95$export$4e25ef8c836002b9);\n\n\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $5DFAC = parcelRequire(\"5DFAC\");\n\nvar $coVwk = parcelRequire(\"coVwk\");\n\nvar $eamjo = parcelRequire(\"eamjo\");\n\nvar $bHzmH = parcelRequire(\"bHzmH\");\n\n\nvar $56hu0 = parcelRequire(\"56hu0\");\nasync function $7f55f27b3e761a95$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases !== null && releases !== void 0 ? releases : await $7f55f27b3e761a95$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $1o3Gj.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($kC5q1$os.EOL));\n releaseData = $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $1o3Gj.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $5DFAC.downloadTool(downloadUrl);\n $1o3Gj.info(\"Extracting downloaded archive...\");\n if (0, $56hu0.IS_WINDOWS) downloadDir = await $5DFAC.extractZip(pypyPath);\n else downloadDir = await $5DFAC.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($kC5q1$fs))).readdirSync(downloadDir)[0];\n const toolDir = $kC5q1$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $56hu0.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $5DFAC.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $56hu0.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $7f55f27b3e761a95$export$a053ce7a690fbb2e(installDir);\n await $7f55f27b3e761a95$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $7f55f27b3e761a95$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $5DFAC.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $1o3Gj.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $1o3Gj.info(err.message);\n if (err.stack !== undefined) $1o3Gj.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $7f55f27b3e761a95$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $eamjo.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $7f55f27b3e761a95$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $coVwk.coerce(pythonVersion);\n const pythonBinaryPostfix = $coVwk.major(version);\n const pythonMinor = $coVwk.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $56hu0.IS_WINDOWS) ? \".exe\" : \"\";\n $1o3Gj.info(\"Creating symlinks...\");\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $56hu0.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $7f55f27b3e761a95$var$installPip(pythonLocation) {\n $1o3Gj.info(\"Installing and updating pip\");\n const pythonBinary = $kC5q1$path.join(pythonLocation, \"python\");\n await $bHzmH.exec(`${pythonBinary} -m ensurepip`);\n await $bHzmH.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $7f55f27b3e761a95$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $coVwk.satisfies($coVwk.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $56hu0.isNightlyKeyword)(pypyVersion) && (0, $56hu0.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $coVwk.satisfies($7f55f27b3e761a95$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $56hu0.IS_WINDOWS) ? $7f55f27b3e761a95$export$652444ba12a0c7bb(item, architecture) : $7f55f27b3e761a95$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $coVwk.compare($coVwk.coerce($7f55f27b3e761a95$export$4e25ef8c836002b9(current.pypy_version)), $coVwk.coerce($7f55f27b3e761a95$export$4e25ef8c836002b9(previous.pypy_version))) || $coVwk.compare($coVwk.coerce(current.python_version), $coVwk.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $56hu0.IS_WINDOWS) ? $7f55f27b3e761a95$export$672a33957a3c888(foundRelease, architecture) : $7f55f27b3e761a95$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $7f55f27b3e761a95$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $kC5q1$path.join(installDir, \"bin\");\n return (0, $56hu0.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $7f55f27b3e761a95$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $7f55f27b3e761a95$export$652444ba12a0c7bb(item, architecture) {\n architecture = $7f55f27b3e761a95$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $56hu0.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $7f55f27b3e761a95$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $7f55f27b3e761a95$export$672a33957a3c888(releases, architecture) {\n architecture = $7f55f27b3e761a95$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $56hu0.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $7f55f27b3e761a95$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $7f55f27b3e761a95$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.c7411d6b.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"olBCUA,QAAS,CAAAA,EAAcC,CAAmB,EACxC,MAAO,CAAAA,CAAA,CAAYC,UAAU,CAAC,OAChC,EAIO,cAAe,CAAAC,EAAmBF,CAAe,CAAEG,CAAiB,CAAEC,CAAY,EAK1D,IAAAC,CAJzB,CAAAC,CAAA,CAAAC,MAAA,GACFC,OAAA,CAAQC,GAAG,CAACC,oBAAoB,CAAG,+BADrC,EAIA,GAAM,CAAAC,CAAA,KAAuD,IAAhCN,CAAA,CAAAG,OAAA,CAAQC,GAAG,CAACC,oBAAoB,CAApB,EAAZ,SAAAL,CAAA,QAAAA,CAAA,CAAkCO,IAAI,GAOnE,GANoC,UAAhC,MAAO,CAAAD,CAAA,EAAqC,EAAyB,GAAzBA,CAAA,GAC9CH,OAAA,CAAQC,GAAG,CAACI,iBAAiB,CAAGL,OAAA,CAAQC,GAAG,CAACC,oBAAoB,CAApB,CAG9C,GAAAI,CAAA,CAAAC,KAAI,EAAE,2CAA2CP,OAAA,CAAQC,GAAG,CAACI,iBAAiB,EAE1Eb,CAAA,CAAS,CACX,GAAI,CAAAG,CAAA,CACJ,GAAIJ,CAAA,CAAcC,CAAA,EAAU,CAC1B,GAAM,CAAAgB,CAAA,CAAY,KAAM,GAAAC,CAAA,CAAAC,eAAc,EAAElB,CAAA,CAASI,CAAA,CAAM,GAAMe,CAAA,CAAa,IAC1EhB,CAAA,CAAiB,GAAEa,CAAA,CAAUI,mBAAoB,IAAGJ,CAAA,CAAUK,qBAAsB,EAAC,CACrF,GAAAC,CAAA,CAAAC,IAAG,EAAG,4BAA2BP,CAAA,CAAUI,mBAAoB,iBAAgBJ,CAAA,CAAUK,qBAAsB,GAAE,CACnH,MAAO,CACL,GAAM,CAAAJ,CAAA,CAAY,KAAM,GAAAD,CAAA,CAAAQ,iBAAgB,EAAExB,CAAA,CAASI,CAAA,CAAM,GAAMe,CAAA,CAAa,IAC5EhB,CAAA,CAAgBc,CAAA,CAAUQ,OAAO,CACjC,GAAAH,CAAA,CAAAC,IAAG,EAAG,uBAAsBN,CAAA,CAAUS,IAAK,KAAIvB,CAAc,GAAE,CACjE,EAOF,CAEIwB,CAAA,CAAAC,cAAA,GACF,KAAM,CAAAC,CAAA,EAIV,GAEA,cAAe,CAAAA,EAAA,EACb,GAAM,CAAA7B,CAAA,CAAc,GAAAI,CAAA,CAAA0B,IAAG,EAAEnB,CAAA,CAAW,uBACpC,GAAI,EAAE,KAAM,GAAAN,CAAA,CAAA0B,UAAS,EAAE/B,CAAA,GACrB,MAAO,GAAAsB,CAAA,CAAAU,OAAM,EAAE,kFAEjB,GAAAV,CAAA,CAAAC,IAAG,EAAE,kBAAkBvB,CAAA,CACzB,E,iTA9CA,GAAM,CAAAmB,CAAA,CAAc,E,uDCUpB,QAAS,CAAAQ,EAAO3B,CAAkB,QAChC,CAAAgB,CAAI,CAAAiB,UAAA,CACKC,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAY,WAEtBkC,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAY,MAEjC,EAEO,cAAe,CAAAM,EACpBN,CAAe,CACfG,CAAoB,CACpBG,CAA0B,CAC1BJ,CAAoB,CACpB2B,CAAyB,EAEzB,GAAI,CAAAV,CAAA,CAAqC,KAErCgB,CAAA,CAAsBpC,CAAA,CADGM,CAAA,CAAkBL,CAAA,EAG7C6B,CAAA,EAIF,GAFAf,CAAA,CAAAC,KAAA,CAAY,4BAA2Bf,CAAQ,OAAMmC,CAAoB,EAAC,EAEtEjC,CAAA,CAAa,CAGb,IAAAkC,CAAA,CAFFjB,CAAA,CAAW,KAAM,CAAAG,CAAA,CAAjBe,WAAA,GACA,GAAM,CAAArC,CAAA,KAIF,IAHFoC,CAAA,MAAM,CAAAd,CAAA,CAAAgB,uBAAA,CACJH,CAAA,CACAhC,CAAA,CACAgB,CAAA,IAHF,SAAAiB,CAAA,QAAAA,CAAA,CAKCX,OAAO,CAENzB,CAAA,EACFmC,CAAA,CAAsBnC,CAAA,CACtBc,CAAA,CAAAS,IAAA,CAAW,gBAAeY,CAAoB,GAAE,GAEhDrB,CAAA,CAAAS,IAAA,CACG,6BAA4BY,CAAoB,gBAAe,CAGtE,EAEA,GAAI,CAAAI,CAAA,CAA4BnC,CAAA,CAAAoC,IAAA,CAC9B,SACAL,CAAA,CACAhC,CAAA,EAEF,GAAI,CAACoC,CAAA,CAAY,CACfzB,CAAA,CAAAS,IAAA,CACG,WAAUY,CAAoB,mCAAkC,EAEnE,GAAM,CAAAnC,CAAA,CAAe,KAAM,CAAAsB,CAAA,CAAAgB,uBAAA,CACzBH,CAAA,CACAhC,CAAA,CACAgB,CAAA,EAGEnB,CAAA,EAAgBA,CAAA,CAAayC,KAAK,EAAIzC,CAAA,CAAayC,KAAK,CAACC,MAAM,CAAG,IACpE5B,CAAA,CAAAS,IAAA,CAAW,WAAUY,CAAoB,+BAA8B,EACvE,KAAM,CAAAb,CAAA,CAAAqB,yBAAA,CAAoC3C,CAAA,EAE1CuC,CAAA,CAAanC,CAAA,CAAAoC,IAAA,CAAQ,SAAUL,CAAA,CAAqBhC,CAAA,EAExD,EAEA,GAAI,CAACoC,CAAA,CAAY,CACf,GAAM,CAAAtB,CAAA,CAAS,KAAM,GAAAD,CAAA,CAAA4B,SAAQ,EAAR,CACrB,MAAM,CAAAC,KAAI,CACR,CACG,gBAAe7C,CAAQ,wBAAuBG,CAAa,uBAC1Dc,CAAA,CACK,GAAEA,CAAA,CAAO6B,MAAO,IAAG7B,CAAA,CAAO8B,SAAU,EAAC,CACtC,uBACL,GAAE,CACH,yDAAyDzB,CAAA,CAAA0B,YAAA,CAC1D,CAAClB,IAAI,CAACmB,SAAA,CAANC,GAAA,EAEL,EAEA,GAAM,CAAAC,CAAA,CAAUxB,CAAA,CAAOY,CAAA,EACjBa,CAAA,CAAkBpC,CAAA,CAAAiB,UAAS,CAAI,OAAS,GACxCoB,CAAA,CAAanB,WAAA,CAAAJ,IAAA,CACjBd,CAAA,CAAAiB,UAAS,CAAIM,CAAA,CAAaY,CAAA,CAC1B,SAASC,CAAA,EAEX,GAAI9C,CAAA,CAAmB,CAYrB,GAXAQ,CAAA,CAAAwC,cAAA,CAAoB,iBAAkBf,CAAA,EACtCzB,CAAA,CAAAwC,cAAA,CAAoB,kBAAmBf,CAAA,CAAa,kBACpDzB,CAAA,CAAAwC,cAAA,CAAoB,iBAAkBf,CAAA,EAEtCzB,CAAA,CAAAwC,cAAA,CAAoB,kBAAmBf,CAAA,EAEvCzB,CAAA,CAAAwC,cAAA,CAAoB,mBAAoBf,CAAA,EAExCzB,CAAA,CAAAwC,cAAA,CAAoB,mBAAoBf,CAAA,EACxCzB,CAAA,CAAAwC,cAAA,CAAoB,kBAAmBf,CAAA,CAAa,kBAEhDvB,CAAA,CAAAuC,QAAA,CAAU,CACZ,GAAM,CAAAvD,CAAA,CAAUQ,OAAA,CAAQC,GAAG,CAAC+C,eAAe,CACvC,IAAIhD,OAAA,CAAQC,GAAG,CAAC+C,eAAe,CAC/B,GACErD,CAAA,CAAY+B,WAAA,CAAAJ,IAAA,CAAUS,CAAA,CAAY,OAEnCvC,CAAA,CAAQyD,KAAK,CAAC,KAAKC,QAAQ,CAACvD,CAAA,GAC/BW,CAAA,CAAAwC,cAAA,CAAoB,kBAAmBnD,CAAA,CAAYH,CAAA,CAEvD,EAIA,GAHAc,CAAA,CAAA6C,OAAA,CAAapB,CAAA,EACbzB,CAAA,CAAA6C,OAAA,CAAaR,CAAA,EAETnC,CAAA,CAAAiB,UAAA,CAAY,CAId,GAAM,CAAAjC,CAAA,CAAUkC,WAAA,CAAA0B,QAAA,CAAc1B,WAAA,CAAA2B,OAAA,CAAatB,CAAA,GACrCpC,CAAA,CAAQc,CAAA,CAAA6C,KAAA,CAAa9D,CAAA,EACrBgB,CAAA,CAAQC,CAAA,CAAA8C,KAAA,CAAa/D,CAAA,EAErBsB,CAAA,CAAiBY,WAAA,CAAAJ,IAAA,CACrBtB,OAAA,CAAQC,GAAG,CAACuD,OAAU,EAAI,GAC1B,SACC,SAAQ7D,CAAM,GAAEa,CAAM,EAAC,CACxB,WAEFF,CAAA,CAAA6C,OAAA,CAAarC,CAAA,CACf,EAEF,CAEA,GAAM,CAAA2C,CAAA,CAAYtD,CAAA,CAAgB4B,CAAA,EAIlC,MAHA,CAAAzB,CAAA,CAAAoD,SAAA,CAAe,iBAAkBD,CAAA,EACjCnD,CAAA,CAAAoD,SAAA,CAAe,cAAeb,CAAA,EAEvB,CAAC3B,IAAA,CAAM,UAAWD,OAAA,CAASwC,CAAS,CAC7C,EAGA,QAAS,CAAA5D,EAAkBL,CAAmB,EAC5C,GAAM,CAAAG,CAAA,CAAa,qBACnB,MAAO,CAAAH,CAAA,CAAYmE,OAAO,CAAChE,CAAA,CAAY,aACzC,EAGA,QAAS,CAAAQ,EAAgBX,CAAkB,EACzC,GAAM,CAAAG,CAAA,CAAQH,CAAA,CAAWyD,KAAK,CAACvB,WAAA,CAA/BkC,GAAA,EACMpD,CAAA,CAAMb,CAAA,CAAMkE,SAAS,CAACrE,CAAA,EAAQ,MAAS,GAATA,CAAA,EAAmB,QAAS,GAATA,CAAA,EAEvD,MAAO,CAAAG,CAAK,CAACa,CAAA,CAAM,EAAE,EAAI,EAC3B,EAcO,QAAS,CAAAjB,EACdC,CAAmB,CACnBG,CAAyB,EAEzB,GAAM,CAAAa,CAAA,CAAoB,kCACpBC,CAAA,CAAa,iBACfK,CAAA,CAAStB,CAAA,CAAYmE,OAAO,CAACnD,CAAA,CAAmB,SAIpD,MAHI,CAAAb,CAAA,GACFmB,CAAA,CAASA,CAAA,CAAO6C,OAAO,CAAClD,CAAA,CAAY,aADtC,EAGOK,CACT,E,4NCtMA,CAAAN,CAAA,C,IAkCO,QAAS,CAAAF,EACdd,CAAkB,CAClBG,CAAkB,CAClBa,CAAkB,CAClBC,CAAA,CAAgB,EAAK,EAErB,GAAM,CAAAK,CAAA,CAAaY,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAYG,CAAA,EACnCW,CAAA,CAAaoB,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAYgB,CAAA,EACrCsD,sBAAA,CAAAC,SAAA,EAAGC,UAAU,CAAC1D,CAAA,IAIlBwD,sBAAA,CAAAC,SAAA,EAAGE,WAAW,CAACnD,CAAA,CAAYR,CAAA,EACvB,CAACsB,CAAA,EAAcnB,CAAA,EACjBqD,sBAAA,CAAAC,SAAA,EAAGG,SAAS,CAAC5D,CAAA,CAAY,OAE7B,EAEO,QAAS,CAAAV,EAAgBJ,CAAe,EAC7C,MAAO,CAAA2B,CAAA,CAAiB3B,CAAA,GAAY,EAAQiB,CAAA,CAAA0D,UAAA,CAAkB3E,CAAA,CAChE,EAEO,QAAS,CAAA2B,EAAiB3B,CAAmB,EAClD,MAAO,SAAgB,GAAhBA,CACT,EAEO,QAAS,CAAAM,EAAuBN,CAAkB,EACvD,MAAO,CAAAkC,WAAA,CAAA0B,QAAA,CAAc1B,WAAA,CAAA2B,OAAA,CAAa7D,CAAA,EACpC,EAUO,QAAS,CAAAK,EAAyBL,CAAkB,EACzD,GAAI,CAAAG,CAAA,CAAc,GACZa,CAAA,CAAckB,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAYiE,CAAA,EAK1C,MAJI,CAAAK,sBAAA,CAAAC,SAAA,EAAGC,UAAU,CAACxD,CAAA,IAChBb,CAAA,CAAcmE,sBAAA,CAAAC,SAAA,EAAGK,YAAY,CAAC5D,CAAA,EAAa6D,QAAQ,GAAGjE,IAAI,EAD5D,EAIOT,CACT,EAEO,QAAS,CAAAQ,EACdX,CAAkB,CAClBG,CAA2B,EAE3B,GAAM,CAAAa,CAAA,CAAekB,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAYiE,CAAA,EAC3CK,sBAAA,CAAAC,SAAA,EAAGO,aAAa,CAAC9D,CAAA,CAAcb,CAAA,CACjC,EAOO,QAAS,CAAAJ,EAAmCC,CAAe,EAEhE,MAAO,aADI,CACD+E,IAAI,CAAC/E,CAAA,CACjB,EAOA,cAAe,CAAAE,EAAA,EACb,GAAM,CAAA8E,MAAA,CAAChF,CAAM,CAAC,CAAG,KAAM,CAAAsB,CAAA,CAAA2D,aAAA,CACrB,mFACA,OACA,CACEC,MAAA,CAAQ,EACV,GAKF,MAAO,CAACpC,MAAA,CAAQ,UAAWC,SAAA,CAFJ/C,CAAA,CAAOY,IAAI,GAAG6C,KAAK,CAAC,IAAI,CAAC,EAAE,CAGpD,EAEA,cAAe,CAAA5B,EAAA,EACb,GAAM,CAAAmD,MAAA,CAAChF,CAAM,CAAC,CAAG,KAAM,CAAAsB,CAAA,CAAA2D,aAAA,CAAmB,UAAW,CAAC,kBAAkB,CAAE,CACxEC,MAAA,CAAQ,EACV,GAIA,MAAO,CAACpC,MAAA,CAAQ,QAASC,SAAA,CAFJ/C,CAAA,CAAOY,IAAI,EAEgB,CAClD,EAEO,cAAe,CAAAO,EAAA,EACpB,GAAM,CAAA6D,MAAA,CAAChF,CAAM,CAAC,CAAG,KAAM,CAAAsB,CAAA,CAAA2D,aAAA,CAAmB,cAAe,CAAC,KAAM,KAAM,KAAK,CAAE,CAC3EC,MAAA,CAAQ,EACV,GAEM,CAAC/E,CAAA,CAAQc,CAAA,CAAU,CAAGjB,CAAA,CAAOY,IAAI,GAAG6C,KAAK,CAAC,MAIhD,MAFA,CAAAzC,CAAA,CAAAD,KAAA,CAAY,YAAWZ,CAAO,cAAac,CAAU,EAAC,EAE/C,CAAC6B,MAAA,CAAQ3C,CAAA,CAAQ4C,SAAA,CAAW9B,CAAS,CAC9C,EAEO,cAAe,CAAAkB,EAAA,EACpB,GAAI,CAAAnC,CAAA,CACJ,GAAI,CACEoC,CAAA,CACFpC,CAAA,CAAS,KAAM,CAAAE,CAAA,GACNqC,CAAA,CACTvC,CAAA,CAAS,KAAM,CAAAmB,CAAA,GACNgC,CAAA,GACTnD,CAAA,CAAS,KAAM,CAAA6B,CAAA,EADV,CAGT,EAAE,MAAO1B,CAAA,CAAK,CACZ,GAAM,CAAAH,CAAA,CAAQG,CAAA,CACda,CAAA,CAAAD,KAAA,CAAWf,CAAA,CAAMmF,OAAO,CAC1B,SAAU,CACR,MAAO,CAAAnF,CACT,EACF,C,mqBA7JAgB,CAAA,CAAAoE,aAAA,U,yEAQO,GAAM,CAAAhD,CAAA,CAAa,OAAqB,GAArB5B,OAAA,CAAQ6E,QAAQ,CAC7B9C,CAAA,CAAW,OAAqB,GAArB/B,OAAA,CAAQ6E,QAAQ,CAC3BlC,CAAA,CAAS,QAAqB,GAArB3C,OAAA,CAAQ6E,QAAQ,CACzBjC,CAAA,CAAgB,CAAC,MAAO,MAAM,CAC9BC,CAAA,CAAoB,CAAC,QAAS,QAAQ,CAC7CY,CAAA,CAAoB,c,4CCZ1B,CAAAjD,CAAA,C,+CAAAA,CAAA,CAAAoE,aAAA,UACAA,aAAA,S,yCCDApF,CAAA,CAAAsF,OAAA,CAAAF,aAAA,UACApF,CAAA,CAAAsF,OAAA,CAAeC,KAAK,CAApBH,aAAA,UACApF,CAAA,CAAAsF,OAAA,CAAeE,MAAM,CAArBJ,aAAA,UACApF,CAAA,CAAAsF,OAAA,CAAeG,WAAW,CAA1BL,aAAA,S,iDCEA,QAAS,CAAA9D,EAAatB,CAAG,EACnB0F,cAAA,CAAOC,MAAM,EAAID,cAAA,CAAOC,MAAM,CAACC,QAAQ,CAAC5F,CAAA,IAC1CA,CAAA,CAAMA,CAAA,CAAI6E,QAAQ,CAAC,OADrB,EAGA,GAAM,CAAA1E,CAAA,CAAS,GAAI,CAAAa,CAAA,GACnB,GAAI,CAEF,MADA,CAAAb,CAAA,CAAO0F,KAAK,CAAC7F,CAAA,EACNG,CAAA,CAAO2F,MAAM,EACtB,EAAE,MAAO3F,CAAA,CAAK,CACZ,KAAM,CAAAc,CAAA,CAAYd,CAAA,CAAKH,CAAA,CACzB,EACF,CAhBAA,CAAA,CAAAsF,OAAA,CAAiBhE,CAAA,C,wIC8Kb,CAAAyE,OAAA,CAzFJ,QAAS,CAAAC,QAAShG,CAAE,EAClB,MAAO,CAAAA,CAAA,EAAMiG,MAAA,EAAUjG,CAAA,EAAMkG,MAC/B,EACA,QAAS,CAAAC,QAASnG,CAAE,EAClB,MAAO,CAAAA,CAAA,EAAOoG,MAAA,EAAUpG,CAAA,EAAMqG,MAAA,EAAYrG,CAAA,EAAMsG,MAAA,EAAUtG,CAAA,EAAMuG,MAAA,EAAYvG,CAAA,EAAMiG,MAAA,EAAUjG,CAAA,EAAMkG,MACpG,EACA,QAAS,CAAAM,MAAOxG,CAAE,EAChB,MAAO,CAAAA,CAAA,GAAOyG,MAAA,EAAUzG,CAAA,GAAOiG,MACjC,EACA,QAAS,CAAAS,QAAS1G,CAAE,EAClB,MAAQ,CAAAA,CAAA,EAAMiG,MAAA,EAAUjG,CAAA,EAAM2G,MAChC,EACA,QAAS,CAAAC,sBAAuB5G,CAAE,EAChC,MAAQ,CAAAA,CAAA,EAAMoG,MAAA,EAAUpG,CAAA,EAAM6G,MAAA,EACtB7G,CAAA,EAAMsG,MAAA,EAAUtG,CAAA,EAAM8G,MAAA,EACtB9G,CAAA,EAAMiG,MAAA,EAAUjG,CAAA,EAAMkG,MAAA,EACvBlG,CAAA,GAAO+G,SAAA,EACP/G,CAAA,GAAOgH,SAAA,EACPhH,CAAA,GAAOiH,WAAA,EACPjH,CAAA,GAAOkH,WAChB,EACA,QAAS,CAAAC,iBAAkBnH,CAAE,EAC3B,MAAQ,CAAAA,CAAA,EAAMoG,MAAA,EAAUpG,CAAA,EAAM6G,MAAA,EACtB7G,CAAA,EAAMsG,MAAA,EAAUtG,CAAA,EAAM8G,MAAA,EACtB9G,CAAA,EAAMiG,MAAA,EAAUjG,CAAA,EAAMkG,MAAA,EACvBlG,CAAA,GAAOiH,WAAA,EACPjH,CAAA,GAAOkH,WAChB,EAQA,QAAS,CAAAE,OAAQpH,CAAG,CAAEG,CAAG,QACvB,EAAIkH,cAAA,CAAeC,IAAI,CAACtH,CAAA,CAAKG,CAAA,IACjB,cAARA,CAAA,EAAqBoH,cAAA,CAAevH,CAAA,CAAK,YAAawH,UAAA,EACnD,GACT,EAGA,QAAS,CAAAC,YAAA,EACP,MAAO,CAAAC,MAAA,CAAOC,gBAAgB,CAAC,CAAC,EAAG,CACjC,CAACC,KAAA,EAAQ,CAACC,KAAA,CAAOC,YAAY,CAC/B,EACF,EACA,QAAS,CAAAC,cAAe/H,CAAG,QACzB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAKE,YACxB,EAGA,QAAS,CAAAE,MAAA,EACP,MAAO,CAAAN,MAAA,CAAOC,gBAAgB,CAAC,CAAC,EAAG,CACjC,CAACC,KAAA,EAAQ,CAACC,KAAA,CAAOI,KAAK,EACtB,CAACC,SAAA,EAAY,CAACL,KAAA,CAAO,GAAOM,QAAA,CAAU,EAAI,CAC5C,EACF,EACA,QAAS,CAAAC,QAASpI,CAAG,QACnB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAKK,KACxB,EAIA,QAAS,CAAAI,WAAYrI,CAAI,EACvB,MAAO,CAAA0H,MAAA,CAAOC,gBAAgB,CAAC,EAAE,CAAE,CACjC,CAACC,KAAA,EAAQ,CAACC,KAAA,CAAOS,WAAW,EAC5B,CAACC,YAAA,EAAe,CAACV,KAAA,CAAO7H,CAAI,CAC9B,EACF,EACA,QAAS,CAAAwI,aAAcxI,CAAG,QACxB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAKU,WACxB,EAGA,QAAS,CAAAG,KAAA,EACP,MAAO,CAAAf,MAAA,CAAOC,gBAAgB,CAAC,EAAE,CAAE,CACjC,CAACC,KAAA,EAAQ,CAACC,KAAA,CAAOa,IAAI,CACvB,EACF,EACA,QAAS,CAAAC,OAAQ3I,CAAG,QAClB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAKc,IACxB,EAwCA,QAAS,CAAAE,QAAS5I,CAAK,EACrB,GAAI,CAAAG,CAAA,CAAM,CAAOH,CAAA,OAIjB,CAFI0H,MAAA,CAAOmB,EAAE,CAAC1I,CAAA,CAAK,MAAKA,CAAA,CAAM,GAE1BuF,cAAA,CAAOoD,MAAM,EAAI,CAACC,MAAA,CAAOC,aAAa,CAAC7I,CAAA,GAClC,GAAI,CAAA8I,WAAA,CAAYjJ,CAAA,EAGhB0H,MAAA,CAAOC,gBAAgB,CAAC,GAAI,CAAAoB,MAAA,CAAO5I,CAAA,EAAM,CAC9C+I,KAAA,CAAO,CAACrB,KAAA,CAAO,QAAAA,CAAA,EAAc,MAAO,CAAAqB,KAAA,CAAM,IAAI,CAAE,EAAC,EACjD,CAACtB,KAAA,EAAQ,CAACC,KAAA,CAAOsB,OAAO,EACxB,CAACC,QAAA,EAAW,CAACvB,KAAA,CAAOA,CAAA,GAAO,aAAY7H,CAAM,GAAE,CACjD,EAEJ,EACA,QAAS,CAAAqJ,UAAWrJ,CAAG,QACrB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAKuB,OACxB,EAGA,QAAS,CAAAG,MAAOtJ,CAAK,EAEnB,MAAO,CAAA0H,MAAA,CAAOC,gBAAgB,CAAC,GAAI,CAAAoB,MAAA,CAAO/I,CAAA,EAAQ,CAChD,CAAC4H,KAAA,EAAQ,CAACC,KAAA,CAAO0B,KAAK,EACtB,CAACH,QAAA,EAAW,CAACvB,KAAA,CAAOA,CAAA,GAAO,WAAU7H,CAAM,GAAE,CAC/C,EACF,EACA,QAAS,CAAAwJ,QAASxJ,CAAG,QACnB,KAAY,GAARA,CAAA,EAAgB,QAAiB,EAAjB,MAAQ,CAAAA,CAAA,EACrBA,CAAG,CAAC4H,KAAA,CAAM,GAAK2B,KACxB,EAEA,QAAS,CAAAE,SAAUzJ,CAAK,EACtB,GAAM,CAAAG,CAAA,CAAO,MAAO,CAAAH,CAAA,CACpB,GAAI,QAAS,GAATG,CAAA,CAAmB,CAErB,GAAI,IAAU,GAAVH,CAAA,CAAgB,MAAO,OAC3B,GAAIA,CAAA,WAAiB,CAAA0J,IAAA,CAAM,MAAO,WAElC,GAAI9B,KAAA,GAAS,CAAA5H,CAAA,CACX,OAAQA,CAAK,CAAC4H,KAAA,CAAM,EAClB,IAAK,CAAAE,YAAA,CAAc,MAAO,cAC1B,KAAK,CAAAQ,WAAA,CAAa,MAAO,aAEzB,KAAK,CAAAL,KAAA,CAAO,MAAO,OAEnB,KAAK,CAAAS,IAAA,CAAM,MAAO,MAClB,KAAK,CAAAa,KAAA,CAAO,MAAO,OACnB,KAAK,CAAAJ,OAAA,CAAS,MAAO,SACvB,EAEJ,CACA,MAAO,CAAAhJ,CACT,EAEA,QAAS,CAAAwJ,gBAAiB3J,CAAM,EAC9B,KAAM,CAAAG,CAAA,QAAmB,CAAAH,CAAA,CACvB4J,YAAA,CAAe,CACb,KAAK,GACL,IAAI,CAACC,GAAG,CAAG,IAAI,CAACC,GAAG,CAAG9B,KAAA,EACxB,EAGA+B,YAAA,CAAe,CACb,MAAO,KAAI,CAACC,IAAI,GAAKC,QAAA,EAAY,IAAI,CAACD,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACC,WAAW,EACpG,EACAA,YAAA,CAAe,CACb,MAAO,KAAI,CAACJ,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,EAAI,IAAI,CAACL,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKO,MAC3E,EAEAC,WAAA,CAAc,CACZ,GAAI,IAAI,CAACR,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CAC1B,MAAO,MACF,GAAI,IAAI,CAACL,IAAI,GAAKS,SAAA,CACvB,MAAO,KAAI,CAACnD,IAAI,CAAC,IAAI,CAACoD,gBAAgB,EACjC,GAAI,IAAI,CAACV,IAAI,GAAKC,QAAA,CACvB,MAAO,KAAI,CAAC3C,IAAI,CAAC,IAAI,CAACqD,YAAY,EAC7B,GAAI,IAAI,CAACX,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKO,MAAA,CAChG,MAAO,MACF,GAAI3D,qBAAA,CAAsB,IAAI,CAACoD,IAAI,EACxC,MAAO,KAAI,CAACY,OAAO,CAAC,IAAI,CAACC,oBAAoB,MAE7C,MAAM,KAAI,CAACC,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAW,sBAAqB,IAAI,CAACf,IAAK,GAAE,EAErE,EAIAgB,qBAAA,CAAwB,CACtB,GAAI,IAAI,CAAChB,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKO,MAAA,CACjE,MAAO,MACF,GAAI,IAAI,CAACP,IAAI,GAAKC,QAAA,CACvB,MAAO,KAAI,CAACgB,IAAI,CAAC,IAAI,CAACN,YAAY,EAC7B,GAAI,IAAI,CAACX,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,EAAI,IAAI,CAACL,IAAI,GAAKM,MAAA,CACnD,MAAO,KAAI,CAACY,MAAM,EAElB,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,+EAEnC,EAGAF,qBAAA,CAAwB,CACtB,MAAO,KAAI,CAACD,OAAO,CAAC,IAAI,CAACO,WAAW,CAAE,IAAI,CAACC,qBAAqB,CAClE,EACAA,sBAAuBpL,CAAE,CAAE,CACzB,GAAI,CAAAG,CAAA,CAAS,IAAI,CAAC0J,GAAG,CACjB7I,CAAA,CAAWhB,CAAA,CAAGqL,GAAG,CAACC,GAAG,GACzB,IAAK,GAAI,CAAAtK,CAAA,GAAM,CAAAhB,CAAA,CAAGqL,GAAG,CAAE,CACrB,GAAIjE,MAAA,CAAOjH,CAAA,CAAQa,CAAA,IAAQ,CAACoH,OAAA,CAAQjI,CAAM,CAACa,CAAA,CAAG,GAAKb,CAAM,CAACa,CAAA,CAAG,CAACkH,SAAA,CAAS,CAAT,CAC5D,KAAM,KAAI,CAAC4C,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gCAEjC5K,CAAA,CAASA,CAAM,CAACa,CAAA,CAAG,CAAGb,CAAM,CAACa,CAAA,CAAG,EAAIgH,KAAA,EACtC,EACA,GAAIZ,MAAA,CAAOjH,CAAA,CAAQa,CAAA,EACjB,KAAM,KAAI,CAAC8J,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gCAQjC,MALI,CAAA1B,SAAA,CAAUrJ,CAAA,CAAG6H,KAAK,GAAK2B,OAAA,CAAQxJ,CAAA,CAAG6H,KAAK,EACzC1H,CAAM,CAACa,CAAA,CAAS,CAAGhB,CAAA,CAAG6H,KAAK,CAAC0D,OAAO,GAEnCpL,CAAM,CAACa,CAAA,CAAS,CAAGhB,CAAA,CAAG6H,KAAK,CAEtB,IAAI,CAACoD,IAAI,CAAC,IAAI,CAACD,oBAAoB,CAC5C,EAGAG,YAAA,CAAe,CACb,MAAO,KAAI,CAACP,OAAO,CAAC,IAAI,CAACY,YAAY,CAAE,IAAI,CAACC,mBAAmB,CACjE,EACAA,oBAAqBzL,CAAG,CAAE,CAMxB,MALI,KAAI,CAAC0L,KAAK,CAACC,WAAW,CACxB,IAAI,CAACD,KAAK,CAACC,WAAW,CAACC,IAAI,CAAC5L,CAAA,EAE5B,IAAI,CAAC0L,KAAK,CAACC,WAAW,CAAG,CAAC3L,CAAA,CAAI,CAEzB,IAAI,CAACiL,IAAI,CAAC,IAAI,CAACY,wBAAwB,CAChD,EACAA,yBAAA,CAA4B,OAC1B,KAAQ,CAAC7B,IAAI,GAAK8B,WAAA,CACT,IAAI,CAACC,IAAI,CAAC,IAAI,CAACC,yBAAyB,EACtC,IAAI,CAAChC,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,IAAI,CAACe,IAAI,CAAC,IAAI,CAACgB,gBAAgB,QAE1C,EACAD,0BAAA,CAA6B,CAC3B,GAAI,IAAI,CAAChC,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,KAAI,CAACU,OAAO,CAAC,IAAI,CAACY,YAAY,CAAE,IAAI,CAACC,mBAAmB,CAEnE,EAEAQ,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAACjC,IAAI,GAAKkC,WAAA,CAChB,MAAO,KAAI,CAACH,IAAI,CAAC,IAAI,CAACI,mBAAmB,CAEzC,MAAM,KAAI,CAACrB,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mCAEnC,EACAoB,oBAAA,CAAuB,OACrB,KAAQ,CAACnC,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CAClC,KAEA,IAAI,CAACU,OAAO,CAAC,IAAI,CAACwB,UAAU,CAAE,IAAI,CAACC,iBAAiB,CAE/D,EACAA,kBAAmBrM,CAAK,CAAE,CACxB,MAAO,KAAI,CAACsM,SAAS,CAAC,CAACjB,GAAA,CAAK,IAAI,CAACK,KAAK,CAACC,WAAW,CAAE9D,KAAA,CAAO7H,CAAK,EAClE,EAGA2K,aAAA,CAAgB,CACd,EACE,IAAI,IAAI,CAACX,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,EAAI,IAAI,CAACL,IAAI,GAAKM,MAAA,CAC5C,MAAO,KAAI,CAACY,MAAM,SAEb,IAAI,CAACqB,QAAQ,IAAG,CAI3B7B,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAACV,IAAI,GAAKS,SAAA,CAGhB,MAAO,KAAI,CAACQ,IAAI,CAAC,IAAI,CAACuB,UAAU,EAFhC,IAAI,CAACT,IAAI,CAAC,IAAI,CAACU,SAAS,CAI5B,EAGAD,WAAA,CAAc,CAEZ,MADA,KAAI,CAAC3C,GAAG,CAAG,IAAI,CAACC,GAAG,CACZ,IAAI,CAACmB,IAAI,CAAC,IAAI,CAACyB,cAAc,CACtC,EACAA,eAAA,CAAkB,OAChB,KAAQ,CAAC1C,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CAClC,KAEA,IAAI,CAACU,OAAO,CAAC,IAAI,CAACY,YAAY,CAAE,IAAI,CAACmB,cAAc,CAE9D,EACAA,eAAgB3M,CAAO,CAAE,CACvB,GAAI,IAAI,CAACgK,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,MACF,GAAI,IAAI,CAACF,IAAI,GAAK4C,SAAA,CAAW,CAClC,GAAIxF,MAAA,CAAO,IAAI,CAACyC,GAAG,CAAE7J,CAAA,IAAa,CAACoI,OAAA,CAAQ,IAAI,CAACyB,GAAG,CAAC7J,CAAA,CAAQ,GAAK,IAAI,CAAC6J,GAAG,CAAC7J,CAAA,CAAQ,CAACkI,SAAA,CAAU,CAAV,CACjF,KAAM,KAAI,CAAC4C,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,sCAE/B,KAAI,CAAClB,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,CAAG,IAAI,CAAC6J,GAAG,CAAC7J,CAAA,CAAQ,EAAIgI,KAAA,GACpD,IAAI,CAAC6B,GAAG,CAAC3B,SAAA,CAAU,CAAG,GAEjB,IAAI,CAAC6D,IAAI,CAAC,IAAI,CAACf,oBAAoB,CAC5C,EAAO,GAAI,IAAI,CAAChB,IAAI,GAAK8B,WAAA,CAAa,CACpC,GAAK1E,MAAA,CAAO,IAAI,CAACyC,GAAG,CAAE7J,CAAA,GAEf,GAAIoI,OAAA,CAAQ,IAAI,CAACyB,GAAG,CAAC7J,CAAA,CAAQ,EAClC,IAAI,CAAC6J,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,KACvB,IAAI2I,MAAA,CAAO,IAAI,CAACkB,GAAG,CAAC7J,CAAA,CAAQ,EACjC,IAAI,CAAC6J,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,CAAC,IAAI,CAAC6J,GAAG,CAAC7J,CAAA,CAAQ,CAAC0C,MAAM,CAAG,EAAE,KAE1D,MAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,qCAN/B,KAAI,CAAClB,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,CAAGgI,KAAA,GAQjC,MAAO,KAAI,CAAC+D,IAAI,CAAC,IAAI,CAACW,cAAc,CACtC,EACE,KAAM,KAAI,CAAC5B,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,qDAEnC,EAGA0B,UAAA,CAAa,CAEX,MADA,KAAI,CAAC5C,GAAG,CAAG,IAAI,CAACC,GAAG,CACZ,IAAI,CAACmB,IAAI,CAAC,IAAI,CAAC4B,aAAa,CACrC,EACAA,cAAA,CAAiB,OACf,KAAQ,CAAC7C,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CAClC,KAEA,IAAI,CAACU,OAAO,CAAC,IAAI,CAACY,YAAY,CAAE,IAAI,CAACsB,aAAa,CAE7D,EACAA,cAAe9M,CAAO,CAAE,CACtB,GAAI,IAAI,CAACgK,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,MACF,GAAI,IAAI,CAACF,IAAI,GAAK4C,SAAA,CAAW,CAIlC,GAHKxF,MAAA,CAAO,IAAI,CAACyC,GAAG,CAAE7J,CAAA,IACpB,IAAI,CAAC6J,GAAG,CAAC7J,CAAA,CAAQ,CAAGyI,IAAA,EADtB,EAGID,YAAA,CAAa,IAAI,CAACqB,GAAG,CAAC7J,CAAA,CAAQ,EAChC,KAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,iCAC1B,GAAIpC,MAAA,CAAO,IAAI,CAACkB,GAAG,CAAC7J,CAAA,CAAQ,EAAG,CACpC,GAAM,CAAAG,CAAA,CAAO6H,KAAA,GACb,IAAI,CAAC6B,GAAG,CAAC7J,CAAA,CAAQ,CAAC4L,IAAI,CAACzL,CAAA,EACvB,IAAI,CAAC0J,GAAG,CAAG1J,CACb,MACE,MAAM,KAAI,CAAC2K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mCAEjC,MAAO,KAAI,CAACgB,IAAI,CAAC,IAAI,CAACgB,YAAY,CACpC,EAAO,GAAI,IAAI,CAAC/C,IAAI,GAAK8B,WAAA,CAAa,CACpC,GAAK1E,MAAA,CAAO,IAAI,CAACyC,GAAG,CAAE7J,CAAA,GAEf,GAAIwI,YAAA,CAAa,IAAI,CAACqB,GAAG,CAAC7J,CAAA,CAAQ,EACvC,KAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,iCAC1B,GAAIhD,aAAA,CAAc,IAAI,CAAC8B,GAAG,CAAC7J,CAAA,CAAQ,EACxC,KAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,qCAC1B,IAAIpC,MAAA,CAAO,IAAI,CAACkB,GAAG,CAAC7J,CAAA,CAAQ,EACjC,IAAI,CAAC6J,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,CAAC,IAAI,CAAC6J,GAAG,CAAC7J,CAAA,CAAQ,CAAC0C,MAAM,CAAG,EAAE,KACrD,IAAI0F,OAAA,CAAQ,IAAI,CAACyB,GAAG,CAAC7J,CAAA,CAAQ,EAClC,IAAI,CAAC6J,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,KAE5B,MAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,wCAV/B,KAAI,CAAClB,GAAG,CAAG,IAAI,CAACA,GAAG,CAAC7J,CAAA,CAAQ,CAAGgI,KAAA,GAYjC,MAAO,KAAI,CAAC+D,IAAI,CAAC,IAAI,CAACc,aAAa,CACrC,EACE,KAAM,KAAI,CAAC/B,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,qDAEnC,EACAgC,aAAc/M,CAAO,CAAE,CACrB,GAAI,IAAI,CAACgK,IAAI,GAAK4C,SAAA,CAChB,MAAO,KAAI,CAACb,IAAI,CAAC,IAAI,CAACf,oBAAoB,CAE1C,MAAM,KAAI,CAACF,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,qDAEnC,EAGAqB,WAAA,CAAc,CACZ,GAAI,IAAI,CAACpC,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CAC1B,KAAM,KAAI,CAACS,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,sBAC1B,GAAI,IAAI,CAACf,IAAI,GAAKhD,SAAA,CACvB,MAAO,KAAI,CAAC+E,IAAI,CAAC,IAAI,CAACiB,iBAAiB,EACvC,GAAI,IAAI,CAAChD,IAAI,GAAKjD,SAAA,CAClB,MAAO,KAAI,CAACgF,IAAI,CAAC,IAAI,CAACkB,iBAAiB,EAClC,GAAI,IAAI,CAACjD,IAAI,GAAK9C,WAAA,EAAe,IAAI,CAAC8C,IAAI,GAAKkD,SAAA,CACpD,MAAO,KAAI,CAACjC,IAAI,CAAC,IAAI,CAACkC,eAAe,EAChC,GAAI,IAAI,CAACnD,IAAI,GAAKoD,MAAA,CACvB,MAAO,KAAI,CAACrB,IAAI,CAAC,IAAI,CAACsB,QAAQ,EACzB,GAAI,IAAI,CAACrD,IAAI,GAAKsD,MAAA,CACvB,MAAO,KAAI,CAACvB,IAAI,CAAC,IAAI,CAACwB,QAAQ,EACzB,GAAIvH,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,MAAO,KAAI,CAACiB,IAAI,CAAC,IAAI,CAACuC,qBAAqB,MACtC,IAAI,IAAI,CAACxD,IAAI,GAAKyD,MAAA,EAAU,IAAI,CAACzD,IAAI,GAAKzD,MAAA,CAC/C,MAAO,KAAI,CAAC0E,IAAI,CAAC,IAAI,CAACyC,YAAY,MAC7B,IAAI,IAAI,CAAC1D,IAAI,GAAKS,SAAA,CACvB,MAAO,KAAI,CAACnD,IAAI,CAAC,IAAI,CAACqG,eAAe,CAAE,IAAI,CAACC,WAAW,MAClD,IAAI,IAAI,CAAC5D,IAAI,GAAK6D,SAAA,CACvB,MAAO,KAAI,CAACvG,IAAI,CAAC,IAAI,CAACwG,gBAAgB,CAAE,IAAI,CAACF,WAAW,MAExD,MAAM,KAAI,CAAC9C,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mGAEnC,EACA6C,YAAa5N,CAAK,CAAE,CAClB,MAAO,KAAI,CAACsM,SAAS,CAACtM,CAAA,CACxB,EAEAqN,SAAA,CAAY,CACV,GAAI,IAAI,CAACrD,IAAI,GAAKsD,MAAA,CAChB,MAAO,KAAI,CAACvB,IAAI,CAAC,IAAI,CAACgC,SAAS,CAE/B,MAAM,KAAI,CAACjD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,0DAEnC,EACAgD,UAAA,CAAa,CACX,GAAI,IAAI,CAAC/D,IAAI,GAAKzD,MAAA,OAChB,GAAuB,GAAnB,IAAI,CAACmF,KAAK,CAACsC,GAAG,CACT,IAAI,CAAC9C,MAAM,CAAC,CAAC,KAEb,IAAI,CAACA,MAAM,CAAC,IAGrB,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,0DAEnC,EAEAwC,SAAA,CAAY,CACV,GAAI,IAAI,CAACvD,IAAI,GAAK1D,MAAA,CAChB,MAAO,KAAI,CAACyF,IAAI,CAAC,IAAI,CAACkC,SAAS,CAE/B,MAAM,KAAI,CAACnD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,wCAEnC,EACAkD,UAAA,CAAa,CACX,GAAI,IAAI,CAACjE,IAAI,GAAKsD,MAAA,CAChB,MAAO,KAAI,CAACpC,MAAM,CAACgD,GAAA,CAEnB,MAAM,KAAI,CAACpD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,wCAEnC,EAGAS,aAAA,CAAgB,OACd,KAAQ,CAACxB,IAAI,GAAKhD,SAAA,CACT,IAAI,CAAC+E,IAAI,CAAC,IAAI,CAACoC,gBAAgB,EAC7B,IAAI,CAACnE,IAAI,GAAKjD,SAAA,CAChB,IAAI,CAACgF,IAAI,CAAC,IAAI,CAACqC,kBAAkB,EAEjC,IAAI,CAACnD,IAAI,CAAC,IAAI,CAACoD,YAAY,CAEtC,EAGAA,aAAA,CAAgB,CACd,EAAG,CACD,GAAI,IAAI,CAACrE,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CAC1B,KAAM,KAAI,CAACS,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,4BAC1B,GAAI5D,gBAAA,CAAiB,IAAI,CAAC6C,IAAI,EACnC,IAAI,CAACsE,OAAO,OACP,IAAI,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAG9B,MAAO,KAAI,CAAC4J,SAAS,OAFrB,MAAM,KAAI,CAACxB,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mCAInC,QAAS,IAAI,CAACwB,QAAQ,IAAG,CAI3BU,kBAAA,CAAqB,OACnB,KAAQ,CAACjD,IAAI,GAAKjD,SAAA,CACT,IAAI,CAACgF,IAAI,CAAC,IAAI,CAACwC,4BAA4B,EAE3C,IAAI,CAACtD,IAAI,CAAC,IAAI,CAACmD,kBAAkB,CAE5C,EACAA,mBAAA,CAAsB,CACpB,EAAG,CACD,GAAI,IAAI,CAACpE,IAAI,GAAKjD,SAAA,CAChB,MAAO,KAAI,CAACmE,MAAM,GACb,GAAI,IAAI,CAACd,WAAW,GACzB,KAAM,KAAI,CAACU,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,wBAC1B,GAAI,IAAI,CAACf,IAAI,GAAKwE,QAAA,EAAa,IAAI,CAACxE,IAAI,EAAIyE,kBAAA,EAAsB,IAAI,CAACzE,IAAI,GAAKE,MAAA,CACrF,KAAM,KAAI,CAACwE,wBAAwB,OAEnC,KAAI,CAACJ,OAAO,EAEhB,QAAS,IAAI,CAAC/B,QAAQ,IAAG,CAE3BgC,6BAAA,CAAgC,OAC9B,KAAQ,CAACvE,IAAI,GAAKjD,SAAA,CACT,IAAI,CAACgF,IAAI,CAAC,IAAI,CAAC4C,uBAAuB,EAEtC,IAAI,CAACrC,SAAS,EAEzB,EACAqC,wBAAA,CAA2B,OACzB,KAAQ,CAAC3E,IAAI,GAAKO,MAAA,CACT,KACE,IAAI,CAACP,IAAI,GAAKM,MAAA,CAChB,IAAI,CAACyB,IAAI,CAAC,IAAI,CAAC6C,8BAA8B,EAE7C,IAAI,CAAC3D,IAAI,CAAC,IAAI,CAAC2D,8BAA8B,CAExD,EACAA,+BAAA,CAAkC,CAChC,EAAG,CACD,GAAI,IAAI,CAAC5E,IAAI,GAAKjD,SAAA,CAChB,MAAO,KAAI,CAACgF,IAAI,CAAC,IAAI,CAAC8C,oBAAoB,EACrC,GAAI,IAAI,CAAC7E,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CACjC,KAAM,KAAI,CAACS,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mCAC1B,GAAI,IAAI,CAACf,IAAI,GAAKwE,QAAA,EAAa,IAAI,CAACxE,IAAI,EAAIyE,kBAAA,EAAsB,IAAI,CAACzE,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKO,MAAA,CACrI,KAAM,KAAI,CAACmE,wBAAwB,OAEnC,KAAI,CAACJ,OAAO,EAEhB,QAAS,IAAI,CAAC/B,QAAQ,IAAG,CAE3BsC,qBAAA,CAAwB,OACtB,KAAQ,CAAC7E,IAAI,GAAKjD,SAAA,CACT,IAAI,CAACgF,IAAI,CAAC,IAAI,CAAC+C,qBAAqB,GAE3C,IAAI,CAACpD,KAAK,CAACsC,GAAG,EAAI,IACX,IAAI,CAAC/C,IAAI,CAAC,IAAI,CAAC2D,8BAA8B,EAExD,EACAE,sBAAA,CAAyB,OACvB,KAAQ,CAAC9E,IAAI,GAAKjD,SAAA,CACT,IAAI,CAACmE,MAAM,IAElB,IAAI,CAACQ,KAAK,CAACsC,GAAG,EAAI,KACX,IAAI,CAAC/C,IAAI,CAAC,IAAI,CAAC2D,8BAA8B,EAExD,EAGA5B,kBAAA,CAAqB,OACnB,KAAQ,CAAChD,IAAI,GAAKhD,SAAA,CACT,IAAI,CAAC+E,IAAI,CAAC,IAAI,CAACgD,qBAAqB,EAEpC,IAAI,CAAC9D,IAAI,CAAC,IAAI,CAACkD,gBAAgB,CAE1C,EACAA,iBAAA,CAAoB,CAClB,EAAG,CACD,GAAI,IAAI,CAACnE,IAAI,GAAKgF,SAAA,CAChB,MAAO,KAAI,CAAC1H,IAAI,CAAC,IAAI,CAAC2H,WAAW,CAAE,IAAI,CAACC,uBAAuB,EAC1D,GAAI,IAAI,CAAClF,IAAI,GAAKhD,SAAA,CACvB,MAAO,KAAI,CAACkE,MAAM,GACb,GAAI,IAAI,CAACd,WAAW,GACzB,KAAM,KAAI,CAACU,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,4BAC1B,IAAI,IAAI,CAACf,IAAI,GAAKwE,QAAA,EAAa,IAAI,CAACxE,IAAI,EAAIyE,kBAAA,EAAsB,IAAI,CAACzE,IAAI,GAAKE,MAAA,CACrF,KAAM,KAAI,CAACwE,wBAAwB,OAEnC,KAAI,CAACJ,OAAO,EAEhB,QAAS,IAAI,CAAC/B,QAAQ,IAAG,CAE3B2C,wBAAyBlP,CAAW,CAAE,CAEpC,MADA,KAAI,CAAC0L,KAAK,CAACsC,GAAG,EAAIhO,CAAA,CACX,IAAI,CAACiL,IAAI,CAAC,IAAI,CAACkD,gBAAgB,CACxC,EACAY,sBAAA,CAAyB,OACvB,KAAQ,CAAC/E,IAAI,GAAKhD,SAAA,CACT,IAAI,CAAC+E,IAAI,CAAC,IAAI,CAACoD,gBAAgB,EAE/B,IAAI,CAAC7C,SAAS,EAEzB,EACA6C,iBAAA,CAAoB,OAClB,KAAQ,CAACnF,IAAI,GAAKO,MAAA,CACT,KACE,IAAI,CAACP,IAAI,GAAKM,MAAA,CAChB,IAAI,CAACyB,IAAI,CAAC,IAAI,CAACqD,uBAAuB,EAEtC,IAAI,CAACnE,IAAI,CAAC,IAAI,CAACmE,uBAAuB,CAEjD,EACAA,wBAAA,CAA2B,CACzB,EAAG,CACD,GAAI,IAAI,CAACpF,IAAI,GAAKgF,SAAA,CAChB,MAAO,KAAI,CAAC1H,IAAI,CAAC,IAAI,CAAC+H,gBAAgB,CAAE,IAAI,CAACC,4BAA4B,EACpE,GAAI,IAAI,CAACtF,IAAI,GAAKhD,SAAA,CACvB,MAAO,KAAI,CAAC+E,IAAI,CAAC,IAAI,CAACwD,aAAa,EAC9B,GAAI,IAAI,CAACvF,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CACjC,KAAM,KAAI,CAACS,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uCAC1B,IAAI,IAAI,CAACf,IAAI,GAAKwE,QAAA,EAAa,IAAI,CAACxE,IAAI,EAAIyE,kBAAA,EAAsB,IAAI,CAACzE,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKO,MAAA,CACrI,KAAM,KAAI,CAACmE,wBAAwB,OAEnC,KAAI,CAACJ,OAAO,EAEhB,QAAS,IAAI,CAAC/B,QAAQ,IAAG,CAE3BmC,yBAAA,CAA4B,CAC1B,GAAI,CAAA1O,CAAA,CAAc,QAMlB,MALI,KAAI,CAACgK,IAAI,CAAG,KACdhK,CAAA,EAAe,GADjB,EAGAA,CAAA,EAAe,IAAI,CAACgK,IAAI,CAACnF,QAAQ,CAAC,IAE3B,IAAI,CAACiG,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAW,8EAA6E/K,CAAY,UAAS,EACrI,EACAsP,6BAA8BtP,CAAW,CAAE,CAEzC,MADA,KAAI,CAAC0L,KAAK,CAACsC,GAAG,EAAIhO,CAAA,CACX,IAAI,CAACiL,IAAI,CAAC,IAAI,CAACmE,uBAAuB,CAC/C,EACAG,cAAA,CAAiB,OACf,KAAQ,CAACvF,IAAI,GAAKhD,SAAA,CACT,IAAI,CAAC+E,IAAI,CAAC,IAAI,CAACyD,cAAc,GAEpC,IAAI,CAAC9D,KAAK,CAACsC,GAAG,EAAI,IACX,IAAI,CAAC/C,IAAI,CAAC,IAAI,CAACmE,uBAAuB,EAEjD,EACAI,eAAA,CAAkB,OAChB,KAAQ,CAACxF,IAAI,GAAKhD,SAAA,CACT,IAAI,CAACkE,MAAM,IAElB,IAAI,CAACQ,KAAK,CAACsC,GAAG,EAAI,KACX,IAAI,CAAC/C,IAAI,CAAC,IAAI,CAACmE,uBAAuB,EAEjD,EACAC,iBAAA,CAAoB,OAClB,KAAQ,CAACrF,IAAI,GAAKO,MAAA,EAAU,IAAI,CAACP,IAAI,GAAKM,MAAA,CACjC,IAAI,CAACyB,IAAI,CAAC,IAAI,CAAC0D,cAAc,EAC3B,IAAI,CAACzF,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,IAAI,CAAC6B,IAAI,CAAC,IAAI,CAAC2D,iBAAiB,EAEhC,IAAI,CAACzE,IAAI,CAAC,IAAI,CAACgE,WAAW,CAErC,EACAS,kBAAA,CAAqB,CACnB,GAAI,IAAI,CAAC1F,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,MACF,GAAI,IAAI,CAACF,IAAI,GAAKO,MAAA,EAAU,IAAI,CAACP,IAAI,GAAKM,MAAA,CAC/C,MAAO,KAAI,CAACyB,IAAI,CAAC,IAAI,CAAC0D,cAAc,CAEpC,MAAM,KAAI,CAAC3E,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2BAEnC,EACA0E,eAAA,CAAkB,OAEhB,KAAQ,CAACzF,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKO,MAAA,CAClF,KAEA,IAAI,CAAC+B,SAAS,EAEzB,EACA2C,YAAA,CAAe,CACb,GAAI,IAAI,CAACjF,IAAI,GAAI,CAAA2F,OAAA,CACf,MAAO,KAAI,CAACzE,MAAM,CAACyE,OAAO,CAAC,IAAI,CAAC3F,IAAI,CAAC,EAChC,GAAI,IAAI,CAACA,IAAI,GAAK4F,MAAA,CACvB,MAAO,KAAI,CAACtI,IAAI,CAAC,IAAI,CAACuI,iBAAiB,CAAE,IAAI,CAACC,kBAAkB,EAC3D,GAAI,IAAI,CAAC9F,IAAI,GAAK+F,MAAA,CACvB,MAAO,KAAI,CAACzI,IAAI,CAAC,IAAI,CAAC0I,iBAAiB,CAAE,IAAI,CAACF,kBAAkB,CAEhE,MAAM,KAAI,CAAChF,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,6BAA+B,IAAI,CAACf,IAAI,EAE3E,EACA8F,mBAAoB9P,CAAI,CAAE,CACxB,GAAI,CACF,GAAM,CAAAG,CAAA,CAAY8P,QAAA,CAASjQ,CAAA,CAAM,IACjC,GAAIG,CAAA,EAAa+P,eAAA,EAAmB/P,CAAA,EAAagQ,cAAA,CAC/C,KAAM,KAAI,CAACrF,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oEAEjC,MAAO,KAAI,CAACuB,SAAS,CAAC8D,MAAA,CAAOC,aAAa,CAAClQ,CAAA,EAC7C,EAAE,MAAOH,CAAA,CAAK,CACZ,KAAM,KAAI,CAAC8K,KAAK,CAACC,SAAA,CAAUuF,IAAI,CAACtQ,CAAA,EAClC,EACF,CACA6P,kBAAA,CAAqB,CACnB,GAAK1J,OAAA,CAAQ,IAAI,CAAC6D,IAAI,EAIpB,IADA,IAAI,CAACsE,OAAO,GACR,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,EAAI,EAAG,MAAO,KAAI,CAACwI,MAAM,EAAlD,MAHA,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uDAKnC,EACAiF,kBAAA,CAAqB,CACnB,GAAK7J,OAAA,CAAQ,IAAI,CAAC6D,IAAI,EAIpB,IADA,IAAI,CAACsE,OAAO,GACR,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,EAAI,EAAG,MAAO,KAAI,CAACwI,MAAM,EAAlD,MAHA,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uDAKnC,EAGAoC,gBAAA,CAAmB,CAEjB,MADA,KAAI,CAACmB,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACwE,wBAAwB,CAChD,EACAA,yBAAA,CAA4B,OAC1B,KAAQ,CAACvG,IAAI,GAAKoD,MAAA,CACT,IAAI,CAACrB,IAAI,CAAC,IAAI,CAACsB,QAAQ,EACrB,IAAI,CAACrD,IAAI,GAAKsD,MAAA,CAChB,IAAI,CAACvB,IAAI,CAAC,IAAI,CAACwB,QAAQ,EAEvB,IAAI,CAAC3C,OAAO,CAAC,IAAI,CAAC4F,YAAY,CAAE,IAAI,CAACC,uBAAuB,CAEvE,EACAA,wBAAA,CAA2B,OACzB,KAAQ,CAACzG,IAAI,GAAK/D,MAAA,EAChB,IAAI,CAACqI,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC2E,mCAAmC,GAElD,IAAI,CAACzF,IAAI,CAAC,IAAI,CAAC0F,kBAAkB,CAE5C,EACAD,oCAAA,CAAuC,OACrC,KAAQ,CAAC1G,IAAI,GAAK8B,WAAA,EAChB,IAAI,CAACwC,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACI,gBAAgB,GAChD,IAAI,CAAC5G,IAAI,GAAK6G,MAAA,EAAU,IAAI,CAAC7G,IAAI,GAAK8G,MAAA,EAC/C,IAAI,CAACxC,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACgF,uBAAuB,GAEtC,IAAI,CAACzE,SAAS,CAAC1D,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAEhD,EACA2C,mBAAA,CAAsB,CACpB,GAAI3K,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,IAAI,CAACsE,OAAO,OASP,CARA,GAAI,IAAI,CAACtE,IAAI,GAAK/C,WAAA,CACvB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAACkJ,YAAY,EAC7B,GAAI,IAAI,CAACxG,IAAI,GAAK6G,MAAA,EAAU,IAAI,CAAC7G,IAAI,GAAK8G,MAAA,CAE/C,MADA,KAAI,CAACxC,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACgF,uBAAuB,EACxC,GAAI,IAAI,CAAC/G,IAAI,GAAK8B,WAAA,CAEvB,MADA,KAAI,CAACwC,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACI,gBAAgB,EAEzD,GAAM,CAAA5Q,CAAA,CAAS4I,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAErC,IAAIhO,CAAA,CAAOkJ,KAAK,GAGd,MAAO,KAAI,CAACoD,SAAS,CAACtM,CAAA,CAFtB,MAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,kBAInC,EACF,CACAyF,aAAA,CAAgB,CACd,GAAI,IAAI,CAACxG,IAAI,GAAK/C,WAAA,EAAe,IAAI,CAAC+C,IAAI,GAAK8B,WAAA,EAAe,IAAI,CAAC9B,IAAI,GAAK6G,MAAA,EAAU,IAAI,CAAC7G,IAAI,GAAK8G,MAAA,CAClG,KAAM,KAAI,CAAChG,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,yCAC1B,GAAI,IAAI,CAAChB,WAAW,GACzB,KAAM,KAAI,CAACe,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,sBAEjC,MAAO,KAAI,CAACuB,SAAS,EACvB,EACA0E,6BAAA,CAAgC,CAC9B,GAAI,IAAI,CAAChH,IAAI,GAAK/C,WAAA,EAAe,IAAI,CAAC+C,IAAI,GAAK8B,WAAA,CAC7C,KAAM,KAAI,CAAChB,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,yCAC1B,GAAI,IAAI,CAAChB,WAAW,GACzB,KAAM,KAAI,CAACe,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,sBAEjC,MAAO,KAAI,CAACuB,SAAS,EACvB,EACAsE,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAAC5G,IAAI,GAAK/C,WAAA,CAChB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACI,gBAAgB,EACpD,GAAI5K,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,IAAI,CAACsE,OAAO,OACP,IAAI,IAAI,CAACtE,IAAI,GAAK6G,MAAA,EAAU,IAAI,CAAC7G,IAAI,GAAK8G,MAAA,CAE/C,MADA,KAAI,CAACxC,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACgF,uBAAuB,MAE7C,OAAO,KAAI,CAACzE,SAAS,CAAChD,KAAA,CAAM,IAAI,CAACoC,KAAK,CAACsC,GAAG,EAE9C,EACA+C,wBAAA,CAA2B,CACzB,GAAI/K,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,MAAO,KAAI,CAACiB,IAAI,CAAC,IAAI,CAACgG,mBAAmB,EACpC,GAAI,IAAI,CAACjH,IAAI,GAAK9C,WAAA,EAAe,IAAI,CAAC8C,IAAI,GAAKkD,SAAA,CACpD,IAAI,CAACoB,OAAO,GACZ,IAAI,CAAChH,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACS,mBAAmB,MAErD,MAAM,KAAI,CAACnG,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gDAEnC,EACAkG,oBAAA,CAAuB,CACrB,GAAIjL,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,IAAI,CAACsE,OAAO,OACP,IAAI,IAAI,CAACtE,IAAI,GAAK/C,WAAA,CACvB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAACkJ,YAAY,MAElC,OAAO,KAAI,CAAClE,SAAS,CAAChD,KAAA,CAAM,IAAI,CAACoC,KAAK,CAACsC,GAAG,EAE9C,EAGAR,sBAAA,CAAyB,OACvB,KAAQ,CAACxD,IAAI,GAAK/D,MAAA,EAChB,IAAI,CAACqI,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACmF,yBAAyB,GAExC,IAAI,CAACjG,IAAI,CAAC,IAAI,CAACkG,yBAAyB,CAEnD,EACAA,0BAAA,CAA6B,CAE3B,GAAI,IAAI,CAACnH,IAAI,GAAK/C,WAAA,CAChB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACG,kBAAkB,EACtD,GAAI3K,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,IAAI,CAACsE,OAAO,GACR,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,GAAG,IAAI,CAACqJ,IAAI,CAAC,IAAI,CAAC4E,kBAAkB,MAC3D,IAAI,IAAI,CAAC3G,IAAI,GAAK6G,MAAA,EAAU,IAAI,CAAC7G,IAAI,GAAK8G,MAAA,CAE/C,MADA,KAAI,CAACxC,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACgF,uBAAuB,MACxC,IAAI,IAAI,CAAC/G,IAAI,GAAK8B,WAAA,CAEvB,MADA,KAAI,CAACwC,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAACkJ,YAAY,CAAE,IAAI,CAACI,gBAAgB,MACpD,IAAI,IAAI,CAAC5G,IAAI,GAAK9C,WAAA,CACvB,MAAO,KAAI,CAAC+D,IAAI,CAAC,IAAI,CAACmG,aAAa,MAC9B,IAAI,IAAI,CAACpH,IAAI,GAAKqH,UAAA,CACvB,MAAO,KAAI,CAACpG,IAAI,CAAC,IAAI,CAACqG,iBAAiB,MAEvC,OAAO,KAAI,CAAChF,SAAS,CAAC1D,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAEhD,EACAuD,kBAAA,CAAqB,CACnB,GAAI,IAAI,CAAC7F,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAAG,CAC7B,GAAIsD,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,MAAO,KAAI,CAACsE,OAAO,GACd,GAAI,IAAI,CAACtE,IAAI,GAAKqH,UAAA,CACvB,MAAO,KAAI,CAACpG,IAAI,CAAC,IAAI,CAACqG,iBAAiB,CAEvC,MAAM,KAAI,CAACxG,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oDAEnC,EACE,GAAI,IAAI,CAACf,IAAI,GAAK9C,WAAA,CAChB,MAAO,KAAI,CAAC+D,IAAI,CAAC,IAAI,CAACmG,aAAa,CAEnC,MAAM,KAAI,CAACtG,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uDAGrC,EACAmG,0BAAA,CAA6B,CAC3B,GAAI,IAAI,CAAClH,IAAI,GAAKwH,MAAA,CAEhB,MADA,KAAI,CAAClD,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,CAAE,IAAI,CAACS,eAAe,EACnE,GAAI,IAAI,CAACzH,IAAI,GAAK0H,MAAA,CAEvB,MADA,KAAI,CAACpD,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,CAAE,IAAI,CAACW,eAAe,EACnE,GAAI,IAAI,CAAC3H,IAAI,GAAK4H,MAAA,CAEvB,MADA,KAAI,CAACtD,OAAO,GACL,IAAI,CAAChH,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,CAAE,IAAI,CAACa,eAAe,EACnE,GAAI,IAAI,CAAC7H,IAAI,GAAK8B,WAAA,CACvB,MAAO,KAAI,CAACb,IAAI,CAAC,IAAI,CAAC0F,kBAAkB,EACnC,GAAI3K,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,MAAO,KAAI,CAACiB,IAAI,CAAC,IAAI,CAACsG,iBAAiB,MAEvC,OAAO,KAAI,CAACjF,SAAS,CAAC1D,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAEhD,EACA6D,gBAAA,CAAmB,CACjB,GAAI1L,OAAA,CAAQ,IAAI,CAAC6D,IAAI,EACnB,IAAI,CAACsE,OAAO,OAGP,CAFA,GAAI,IAAI,CAACtE,IAAI,GAAK/C,WAAA,CACvB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,EAElD,GAAM,CAAAhR,CAAA,CAAS4I,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAErC,IAAIhO,CAAA,CAAOkJ,KAAK,GAGd,MAAO,KAAI,CAACoD,SAAS,CAACtM,CAAA,CAFtB,MAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,kBAInC,EACF,CACA4G,gBAAA,CAAmB,CACjB,GAAIjL,OAAA,CAAQ,IAAI,CAACsD,IAAI,EACnB,IAAI,CAACsE,OAAO,OAGP,CAFA,GAAI,IAAI,CAACtE,IAAI,GAAK/C,WAAA,CACvB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,EAElD,GAAM,CAAAhR,CAAA,CAAS4I,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAErC,IAAIhO,CAAA,CAAOkJ,KAAK,GAGd,MAAO,KAAI,CAACoD,SAAS,CAACtM,CAAA,CAFtB,MAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,kBAInC,EACF,CACA0G,gBAAA,CAAmB,CACjB,GAAIjL,KAAA,CAAM,IAAI,CAACwD,IAAI,EACjB,IAAI,CAACsE,OAAO,OAGP,CAFA,GAAI,IAAI,CAACtE,IAAI,GAAK/C,WAAA,CACvB,MAAO,KAAI,CAACK,IAAI,CAAC,IAAI,CAAC0J,4BAA4B,EAElD,GAAM,CAAAhR,CAAA,CAAS4I,OAAA,CAAQ,IAAI,CAAC8C,KAAK,CAACsC,GAAG,EAErC,IAAIhO,CAAA,CAAOkJ,KAAK,GAGd,MAAO,KAAI,CAACoD,SAAS,CAACtM,CAAA,CAFtB,MAAM,KAAI,CAAC8K,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,kBAInC,EACF,CAGAqG,cAAA,CAAiB,CAEf,GAAI,IAAI,CAAC1F,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAC1B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gEAIjC,MAFA,KAAI,CAACW,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,CAClC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACgG,cAAc,CACtC,EACAA,eAAA,CAAkB,CAChB,GAAI,IAAI,CAAC/H,IAAI,GAAK9C,WAAA,CAAa,CAC7B,GAAI,IAAI,CAACwE,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAC1B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,8DAIjC,MAFA,KAAI,CAACW,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACiG,YAAY,CACpC,EAAO,GAAIhM,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,IAAI,CAACsE,OAAO,OAEZ,MAAM,KAAI,CAACxD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uBAEnC,EACAiH,aAAA,CAAgB,CACd,GAAI,IAAI,CAAChI,IAAI,GAAKiI,MAAA,EAAU,IAAI,CAACjI,IAAI,GAAKG,OAAA,CAAS,CACjD,GAAI,IAAI,CAACuB,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAC1B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,4DAIjC,MAFA,KAAI,CAACW,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACmG,kBAAkB,CAC1C,EAAO,GAAI,IAAI,CAACnI,WAAW,GACzB,MAAO,KAAI,CAACuC,SAAS,CAAC6F,MAAA,CAAW,IAAI,CAACzG,KAAK,CAACoG,MAAM,CAAG,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,GACpE,GAAIhI,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,IAAI,CAACsE,OAAO,OAEZ,MAAM,KAAI,CAACxD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uBAEnC,EACAmH,mBAAA,CAAsB,OACpB,KAAQ,CAACnI,WAAW,GACX,IAAI,CAACuC,SAAS,CAAC6F,MAAA,CAAW,IAAI,CAACzG,KAAK,CAACoG,MAAM,GAE3C,IAAI,CAAC7G,IAAI,CAAC,IAAI,CAACmH,aAAa,CAEvC,EACAA,cAAA,CAAiB,CACf,GAAI,IAAI,CAACpI,IAAI,GAAKqH,UAAA,CAAY,CAC5B,GAAI,IAAI,CAAC3F,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAC1B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,6DAIjC,MAFA,KAAI,CAACW,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACsG,YAAY,CACpC,EAAO,GAAIrM,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAC1B,IAAI,CAACsE,OAAO,OAEZ,MAAM,KAAI,CAACxD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uBAEnC,EACAsH,aAAA,CAAgB,CACd,GAAI,IAAI,CAAC3G,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,GAAKsD,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAChD,IAAI,CAACsE,OAAO,OACP,IAAI,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,EAAU,IAAI,CAACsH,IAAI,GAAKqH,UAAA,CAGtD,MAFA,KAAI,CAAC3F,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACuG,YAAY,MAElC,MAAM,KAAI,CAACxH,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uBAEnC,EACAuH,aAAA,CAAgB,CACd,GAAItM,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAEnB,IADA,IAAI,CAACsE,OAAO,GACR,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAGvB,MAFA,KAAI,CAACgJ,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACwG,uBAAuB,CAC/C,MAEA,MAAM,KAAI,CAACzH,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uBAEnC,EAEAuG,kBAAA,CAAqB,CAEnB,GAAI,IAAI,CAACtH,IAAI,GAAKqH,UAAA,CAAY,CAC5B,GAAI,IAAI,CAAC3F,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,EAC1B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,6DAIjC,MAFA,KAAI,CAACW,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,CAClC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAACyG,gBAAgB,CACxC,EACE,KAAM,KAAI,CAAC1H,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mBAEnC,EACAyH,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAAC9G,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAG,GAAKsD,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAChD,IAAI,CAACsE,OAAO,OACP,IAAI,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,EAAU,IAAI,CAACsH,IAAI,GAAKqH,UAAA,CAGtD,MAFA,KAAI,CAAC3F,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACzC,IAAI,CAACtC,KAAK,CAACsC,GAAG,CAAG,GACV,IAAI,CAACjC,IAAI,CAAC,IAAI,CAAC0G,gBAAgB,MAEtC,MAAM,KAAI,CAAC3H,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mBAEnC,EACA0H,iBAAA,CAAoB,CAClB,GAAIzM,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAEnB,IADA,IAAI,CAACsE,OAAO,GACR,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,CACvB,MAAO,KAAI,CAACqJ,IAAI,CAAC,IAAI,CAAC2G,0BAA0B,CADlD,MAIA,MAAM,KAAI,CAAC5H,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mBAEnC,EACA2H,2BAAA,CAA8B,CAE5B,GADA,IAAI,CAAChH,KAAK,CAACoG,MAAM,EAAI,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,CACrC,IAAI,CAAChE,IAAI,GAAK8B,WAAA,CAIhB,MAAO,KAAI,CAACZ,MAAM,CAACyH,MAAA,CAAW,IAAI,CAACjH,KAAK,CAACoG,MAAM,EAH/C,KAAI,CAACpG,KAAK,CAACsC,GAAG,CAAG,GACjB,IAAI,CAACjC,IAAI,CAAC,IAAI,CAAC6G,qBAAqB,CAIxC,EACAA,sBAAA,CAAyB,CACvB,GAAI5M,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,IAAI,CAACsE,OAAO,OACP,IAAI,IAAI,CAACvE,WAAW,GAAI,CAC7B,GAAI,CAA0B,GAA1B,IAAI,CAAC2B,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAAQ,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mCAChE,MAAO,KAAI,CAACuB,SAAS,CAACqG,MAAA,CAAW,IAAI,CAACjH,KAAK,CAACoG,MAAM,CAAG,IAAM,IAAI,CAACpG,KAAK,CAACsC,GAAG,EAC3E,MACE,MAAM,KAAI,CAAClD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mFAEnC,EAEAwH,wBAAA,CAA2B,CACzB,GAAI,IAAI,CAACvI,IAAI,GAAK8B,WAAA,CAChB,IAAI,CAACwC,OAAO,GACZ,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC8G,qBAAqB,MAC/B,IAAI,IAAI,CAAC7I,IAAI,GAAK9C,WAAA,EAAe,IAAI,CAAC8C,IAAI,GAAKkD,SAAA,CACpD,IAAI,CAACoB,OAAO,GACZ,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC+G,iBAAiB,MAC3B,IAAI,IAAI,CAAC9I,IAAI,GAAKnD,MAAA,CAEvB,MADA,KAAI,CAACyH,OAAO,GACL,IAAI,CAACpD,MAAM,CAAC6H,MAAA,CAAe,IAAI,CAACrH,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,OAC/D,IAAI,IAAI,CAACjE,WAAW,GACzB,MAAO,KAAI,CAACuC,SAAS,CAAC0G,MAAA,CAAoB,IAAI,CAACtH,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,OAE5E,MAAM,KAAI,CAAClD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mFAEnC,EACA8H,sBAAA,CAAyB,CACvB,GAAI7M,OAAA,CAAQ,IAAI,CAACgE,IAAI,EACnB,IAAI,CAACsE,OAAO,OACP,IAAI,CAA0B,GAA1B,IAAI,CAAC5C,KAAK,CAACsC,GAAG,CAACtL,MAAM,CAC9B,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,uCAC1B,IAAI,IAAI,CAACf,IAAI,GAAK9C,WAAA,EAAe,IAAI,CAAC8C,IAAI,GAAKkD,SAAA,CACpD,IAAI,CAACoB,OAAO,GACZ,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC+G,iBAAiB,MAC3B,IAAI,IAAI,CAAC9I,IAAI,GAAKnD,MAAA,CAEvB,MADA,KAAI,CAACyH,OAAO,GACL,IAAI,CAACpD,MAAM,CAAC6H,MAAA,CAAe,IAAI,CAACrH,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,OAC/D,IAAI,IAAI,CAACjE,WAAW,GACzB,MAAO,KAAI,CAACuC,SAAS,CAAC0G,MAAA,CAAoB,IAAI,CAACtH,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,OAE5E,MAAM,KAAI,CAAClD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,mFAEnC,EACA+H,kBAAA,CAAqB,CACnB,GAAI9M,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAGnB,IAFA,IAAI,CAACsE,OAAO,GAER,QAAQvJ,IAAI,CAAC,IAAI,CAAC2G,KAAK,CAACsC,GAAG,EAAG,MAAO,KAAI,CAACjC,IAAI,CAAC,IAAI,CAACkH,gBAAgB,CAAxE,MAEA,MAAM,KAAI,CAACnI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oDAEnC,EACAkI,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAACjJ,IAAI,GAAKqH,UAAA,CAChB,IAAI,CAAC/C,OAAO,GACZ,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACmH,gBAAgB,MAE/B,MAAM,KAAI,CAACpI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oDAEnC,EACAmI,iBAAA,CAAoB,CAClB,GAAIlN,OAAA,CAAQ,IAAI,CAACgE,IAAI,EAEnB,IADA,IAAI,CAACsE,OAAO,GACR,QAAQvJ,IAAI,CAAC,IAAI,CAAC2G,KAAK,CAACsC,GAAG,EAAG,MAAO,KAAI,CAAC9C,MAAM,CAAC6H,MAAA,CAAe,IAAI,CAACrH,KAAK,CAACoG,MAAM,CAAG,IAAI,CAACpG,KAAK,CAACsC,GAAG,EAAtG,MAEA,MAAM,KAAI,CAAClD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oDAEnC,EAGA2C,aAAA,CAAgB,OAEd,KAAQ,CAAC1D,IAAI,GAAKyD,MAAA,EAChB,IAAI,CAACa,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACoH,WAAW,GACxB,IAAI,CAACnJ,IAAI,GAAKzD,MAAA,EACvB,IAAI,CAAC+H,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACqH,YAAY,SAEtC,EACAD,YAAA,CAAe,CACb,GAAI,IAAI,CAACnJ,IAAI,GAAKqJ,MAAA,CAEhB,MADA,KAAI,CAAC/E,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACuH,WAAW,CAEjC,MAAM,KAAI,CAACxI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EACAuI,YAAA,CAAe,CACb,GAAI,IAAI,CAACtJ,IAAI,GAAK4F,MAAA,CAEhB,MADA,KAAI,CAACtB,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACwH,WAAW,CAEjC,MAAM,KAAI,CAACzI,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EACAwI,YAAA,CAAe,CACb,GAAI,IAAI,CAACvJ,IAAI,GAAK8G,MAAA,CAChB,MAAO,KAAI,CAAC5F,MAAM,CAAC,GAEnB,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EAEAqI,aAAA,CAAgB,CACd,GAAI,IAAI,CAACpJ,IAAI,GAAK1D,MAAA,CAEhB,MADA,KAAI,CAACgI,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAACyH,YAAY,CAElC,MAAM,KAAI,CAAC1I,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EAEAyI,aAAA,CAAgB,CACd,GAAI,IAAI,CAACxJ,IAAI,GAAKyJ,MAAA,CAEhB,MADA,KAAI,CAACnF,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC2H,YAAY,CAElC,MAAM,KAAI,CAAC5I,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EAEA2I,aAAA,CAAgB,CACd,GAAI,IAAI,CAAC1J,IAAI,GAAK2J,MAAA,CAEhB,MADA,KAAI,CAACrF,OAAO,GACL,IAAI,CAACvC,IAAI,CAAC,IAAI,CAAC6H,YAAY,CAElC,MAAM,KAAI,CAAC9I,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EAEA6I,aAAA,CAAgB,CACd,GAAI,IAAI,CAAC5J,IAAI,GAAK8G,MAAA,CAChB,MAAO,KAAI,CAAC5F,MAAM,CAAC,GAEnB,MAAM,KAAI,CAACJ,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,2CAEnC,EAGA4C,gBAAA,CAAmB,CACjB,GAAI,IAAI,CAAC3D,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKO,MAAA,EAAU,IAAI,CAACP,IAAI,GAAKM,MAAA,CACzF,MAAO,MACF,GAAI,IAAI,CAACN,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,CACjC,KAAM,KAAI,CAACS,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oCAC1B,KAAQ,CAACf,IAAI,GAAKC,QAAA,CAChB,IAAI,CAAC3C,IAAI,CAAC,IAAI,CAACqD,YAAY,EACzB,IAAI,CAACX,IAAI,GAAK4C,SAAA,CAChB,IAAI,CAAC1B,MAAM,CAAC,IAAI,CAACQ,KAAK,CAACmI,SAAS,EAAIxL,UAAA,IAEpC,IAAI,CAACuC,OAAO,CAAC,IAAI,CAACwB,UAAU,CAAE,IAAI,CAAC0H,qBAAqB,CAEnE,EACAA,sBAAuB9T,CAAK,CAAE,CAC5B,GAAI,IAAI,CAAC0L,KAAK,CAACmI,SAAS,CAAE,CACxB,GAAM,CAAA1T,CAAA,CAAW,IAAI,CAACuL,KAAK,CAACmI,SAAS,CAACtL,YAAA,CAAa,CAC7CvH,CAAA,CAAYyI,QAAA,CAASzJ,CAAA,EAC3B,GAAIG,CAAA,GAAaa,CAAA,CACf,KAAM,KAAI,CAAC8J,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAW,oDAAmD5K,CAAS,QAAOa,CAAU,EAAC,EAElH,MACE,KAAI,CAAC0K,KAAK,CAACmI,SAAS,CAAGxL,UAAA,CAAWoB,QAAA,CAASzJ,CAAA,GAQ7C,MANI,CAAAwJ,OAAA,CAAQxJ,CAAA,GAAUqJ,SAAA,CAAUrJ,CAAA,EAE9B,IAAI,CAAC0L,KAAK,CAACmI,SAAS,CAACjI,IAAI,CAAC5L,CAAA,CAAMuL,OAAO,IAEvC,IAAI,CAACG,KAAK,CAACmI,SAAS,CAACjI,IAAI,CAAC5L,CAAA,EAErB,IAAI,CAACiL,IAAI,CAAC,IAAI,CAAC8I,mBAAmB,CAC3C,EACAA,oBAAA,CAAuB,CACrB,GAAI,IAAI,CAAC/J,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,EAAU,IAAI,CAACF,IAAI,GAAKO,MAAA,EAAU,IAAI,CAACP,IAAI,GAAKM,MAAA,CACzF,MAAO,MACF,GAAI,IAAI,CAACN,IAAI,GAAKC,QAAA,CACvB,MAAO,KAAI,CAAC3C,IAAI,CAAC,IAAI,CAACqD,YAAY,EAC7B,GAAI,IAAI,CAACX,IAAI,GAAKgK,UAAA,CACvB,MAAO,KAAI,CAACjI,IAAI,CAAC,IAAI,CAAC4B,eAAe,EAChC,GAAI,IAAI,CAAC3D,IAAI,GAAK4C,SAAA,CACvB,MAAO,KAAI,CAAC3B,IAAI,CAAC,IAAI,CAAC0C,eAAe,CAErC,MAAM,KAAI,CAAC7C,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,0EAEnC,EAGA+C,iBAAA,CAAoB,CAClB,GAAI,IAAI,CAAC9D,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,MACF,GAAI,IAAI,CAACF,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,EAAI,IAAI,CAACL,IAAI,GAAKC,QAAA,EAAY,IAAI,CAACD,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKO,MAAA,CACrG,KAAM,KAAI,CAACO,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,oCAC1B,KAAQ,CAACf,IAAI,GAAKiK,SAAA,CAChB,IAAI,CAAC/I,MAAM,CAAC,IAAI,CAACQ,KAAK,CAACC,WAAW,EAAIlE,WAAA,KAExC,IAAI,CAACiE,KAAK,CAACC,WAAW,GAAE,IAAI,CAACD,KAAK,CAACC,WAAW,CAAGlE,WAAA,EAAtD,EACO,IAAI,CAACmD,OAAO,CAAC,IAAI,CAACO,WAAW,CAAE,IAAI,CAAC+I,sBAAsB,EAErE,EACAA,uBAAwBlU,CAAE,CAAE,CAC1B,GAAI,CAAAG,CAAA,CAAS,IAAI,CAACuL,KAAK,CAACC,WAAW,CAC/B3K,CAAA,CAAWhB,CAAA,CAAGqL,GAAG,CAACC,GAAG,GACzB,IAAK,GAAI,CAAAtK,CAAA,GAAM,CAAAhB,CAAA,CAAGqL,GAAG,CAAE,CACrB,GAAIjE,MAAA,CAAOjH,CAAA,CAAQa,CAAA,IAAQ,CAACoH,OAAA,CAAQjI,CAAM,CAACa,CAAA,CAAG,GAAKb,CAAM,CAACa,CAAA,CAAG,CAACkH,SAAA,CAAS,CAAT,CAC5D,KAAM,KAAI,CAAC4C,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gCAEjC5K,CAAA,CAASA,CAAM,CAACa,CAAA,CAAG,CAAGb,CAAM,CAACa,CAAA,CAAG,EAAIgH,KAAA,EACtC,EACA,GAAIZ,MAAA,CAAOjH,CAAA,CAAQa,CAAA,EACjB,KAAM,KAAI,CAAC8J,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,gCAOjC,MALI,CAAA1B,SAAA,CAAUrJ,CAAA,CAAG6H,KAAK,GAAK2B,OAAA,CAAQxJ,CAAA,CAAG6H,KAAK,EACzC1H,CAAM,CAACa,CAAA,CAAS,CAAGhB,CAAA,CAAG6H,KAAK,CAAC0D,OAAO,GAEnCpL,CAAM,CAACa,CAAA,CAAS,CAAGhB,CAAA,CAAG6H,KAAK,CAEtB,IAAI,CAACoD,IAAI,CAAC,IAAI,CAACkJ,oBAAoB,CAC5C,EACAA,qBAAA,CAAwB,CACtB,GAAI,IAAI,CAACnK,IAAI,GAAKG,OAAA,EAAW,IAAI,CAACH,IAAI,GAAKE,MAAA,CACzC,MAAO,MACF,GAAI,IAAI,CAACF,IAAI,GAAKhK,CAAA,CAAOqK,GAAG,EAAI,IAAI,CAACL,IAAI,GAAKC,QAAA,EAAY,IAAI,CAACD,IAAI,GAAKM,MAAA,EAAU,IAAI,CAACN,IAAI,GAAKO,MAAA,CACrG,KAAM,KAAI,CAACO,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,8BAC1B,GAAI,IAAI,CAACf,IAAI,GAAKgK,UAAA,CACvB,MAAO,KAAI,CAACjI,IAAI,CAAC,IAAI,CAAC+B,gBAAgB,EACjC,GAAI,IAAI,CAAC9D,IAAI,GAAKiK,SAAA,CACvB,MAAO,KAAI,CAAChJ,IAAI,CAAC,IAAI,CAAC6C,gBAAgB,CAEtC,MAAM,KAAI,CAAChD,KAAK,CAAC,GAAI,CAAAC,SAAA,CAAU,0EAEnC,EACF,CACA,MAAO,CAAA5K,CACT,EAh2CAiU,MAAA,CAAO9O,OAAO,CAAGqE,eAAA,CADjBvE,aAAA,WAEAgP,MAAA,CAAO9O,OAAO,CAACqE,eAAe,CAAGA,eAEjC,MAAM,CAAAoB,SAAA,QAAkB,CAAAlI,KAAA,CACtB+G,YAAa5J,CAAG,CAAE,CAChB,KAAK,CAACA,CAAA,EACN,IAAI,CAACqU,IAAI,CAAG,YAERxR,KAAA,CAAMyR,iBAAiB,EAAEzR,KAAA,CAAMyR,iBAAiB,CAAC,IAAI,CAAEvJ,SAAA,EAC3D,IAAI,CAACwJ,QAAQ,CAAG,GAChB,IAAI,CAACC,OAAO,CAAG,IACjB,EACF,CACAzJ,SAAA,CAAUuF,IAAI,CAAGtQ,CAAA,GACf,GAAM,CAAAG,CAAA,CAAO,GAAI,CAAA4K,SAAA,CAAU/K,CAAA,CAAImF,OAAO,EAGtC,MAFA,CAAAhF,CAAA,CAAKsU,IAAI,CAAGzU,CAAA,CAAIyU,IAAI,CACpBtU,CAAA,CAAKqU,OAAO,CAAGxU,CAAA,CACRG,CACT,GACAiU,MAAA,CAAO9O,OAAO,CAACyF,SAAS,CAAGA,SAAA,C,wHAO3B,GAAM,CAAAb,MAAA,CAAS,EACTI,MAAA,CAAS,GACTC,MAAA,CAAS,GACTkE,kBAAA,CAAqB,GACrBtE,OAAA,CAAU,GACVnD,SAAA,CAAY,GACZiD,QAAA,CAAW,GACXlD,SAAA,CAAY,GACZmG,SAAA,CAAY,GACZ8G,UAAA,CAAa,GACb9M,WAAA,CAAc,GACd4E,WAAA,CAAc,GACd7F,MAAA,CAAS,GACTQ,MAAA,CAAS,GACTE,MAAA,CAAS,GACTT,MAAA,CAAS,GACTmL,UAAA,CAAa,GACbnF,WAAA,CAAc,GACd9F,MAAA,CAAS,GACTyK,MAAA,CAAS,GACTxK,MAAA,CAAS,GACT4L,MAAA,CAAS,GACTlC,MAAA,CAAS,GACTlJ,MAAA,CAAS,GACTI,WAAA,CAAc,GACdX,MAAA,CAAS,GACTkL,MAAA,CAAS,GACTV,MAAA,CAAS,IACTvK,MAAA,CAAS,IACT6G,MAAA,CAAS,IACTqG,MAAA,CAAS,IACTnG,MAAA,CAAS,IACToE,MAAA,CAAS,IACT2B,MAAA,CAAS,IACTM,MAAA,CAAS,IACTlG,MAAA,CAAS,IACTmC,MAAA,CAAS,IACTgC,MAAA,CAAS,IACT9K,MAAA,CAAS,IACT+G,SAAA,CAAY,IACZoG,SAAA,CAAY,IACZxJ,SAAA,CAAY,GACZuE,SAAA,CAAY,GACZpC,SAAA,CAAY,GACZ4B,QAAA,CAAW,IACX0B,eAAA,CAAkB,MAClBC,cAAA,CAAiB,MAEjBR,OAAA,CAAU,CACd,CAAC6B,MAAA,EAAS,KACV,CAAC/D,MAAA,EAAS,IACV,CAACH,MAAA,EAAS,KACV,CAAC/G,MAAA,EAAS,KACV,CAAC8M,MAAA,EAAS,KACV,CAACrM,SAAA,EAAY,IACb,CAACgI,SAAA,EAAY,IACf,EA8BMpH,KAAA,CAAQ8M,MAAA,GACRxM,SAAA,CAAYwM,MAAA,GAEZrN,cAAA,CAAiBK,MAAA,CAAOiN,SAAS,CAACtN,cAAc,CAChDE,cAAA,CAAiBG,MAAA,CAAOH,cAAc,CACtCC,UAAA,CAAa,CAACoN,YAAA,CAAc,GAAMC,UAAA,CAAY,GAAM1M,QAAA,CAAU,GAAMN,KAAA,CAAO,MAAS,EAQpFC,YAAA,CAAe4M,MAAA,GAWfzM,KAAA,CAAQyM,MAAA,GAYRnM,YAAA,CAAemM,MAAA,GACfpM,WAAA,CAAcoM,MAAA,GAYdhM,IAAA,CAAOgM,MAAA,GAab,GAAI,CACF,GAAM,CAAAI,WAAA,CAAcC,IAAA,CAAK,2BACzBhP,OAAA,CAAU+O,WAAA,CAAYE,MAAM,EAC5B,MAAOC,CAAA,CAAG,CAEZ,CAEA,GAAM,CAAA7L,QAAA,CAAWrD,OAAA,EAAW,SAE5B,MAAM,CAAAkD,WAAA,CACJW,YAAa5J,CAAK,CAAE,CAClB,GAAI,CACF,IAAI,CAAC6H,KAAK,CAAGnC,cAAA,CAAOoD,MAAM,CAACoM,MAAM,CAAC,GAAIlV,CAAA,CACxC,EAAE,MAAOA,CAAA,CAAG,CAEV,IAAI,CAAC6H,KAAK,CAAG,IACf,EACAH,MAAA,CAAOH,cAAc,CAAC,IAAI,CAAEK,KAAA,CAAO,CAACC,KAAA,CAAOsB,OAAO,EACpD,EACAD,MAAA,CAAS,CACP,MAAO,KAAe,GAAf,IAAI,CAACrB,KAAK,EAGnBhD,SAAA,CAAY,CACV,MAAO,KAAW,CAACgD,KAAK,CAAjB,EACT,EAEA,CAACuB,QAAA,GAAa,CACZ,MAAQ,YAAW,IAAI,CAACvE,QAAQ,EAAG,IAAG,EAExC0G,QAAA,CAAW,CACT,MAAO,KAAI,CAAC1D,KAAK,EAErB,CAEA,GAAM,CAAAsB,OAAA,CAAUuL,MAAA,GAsBVnL,KAAA,CAAQmL,MAAA,E,yCCxOd,GAAM,CAAA1T,CAAA,CAAY,OAClB,MAAM,CAAAC,CAAA,QAAoB,CAAA4B,KAAA,CAExB+G,YAAa5J,CAAG,CAAEG,CAAQ,CAAEa,CAAU,CAAE,CACtC,KAAK,CAAC,iBAAmBhB,CAAA,CAAKG,CAAA,CAAUa,CAAA,EACxC,IAAI,CAACqT,IAAI,CAAG,cACZ,IAAI,CAACI,IAAI,CAAG,cACR5R,KAAA,CAAMyR,iBAAiB,EAAEzR,KAAA,CAAMyR,iBAAiB,CAAC,IAAI,CAAErT,CAAA,CAC7D,EACF,CACA,KAAM,CAAAK,CAAA,CACJsI,YAAa5J,CAAM,CAAE,CACnB,IAAI,CAACmV,MAAM,CAAGnV,CAAA,CACd,IAAI,CAACgO,GAAG,CAAG,GACX,IAAI,CAACoH,QAAQ,CAAG,KAChB,IAAI,CAACtD,MAAM,CAAG,KACd,IAAI,CAACnG,WAAW,CAAG,KACnB,IAAI,CAACkI,SAAS,CAAG,IACnB,EACF,CACA,KAAM,CAAA/S,CAAA,CACJ8I,YAAA,CAAe,CACb,IAAI,CAACyL,GAAG,CAAG,EACX,IAAI,CAACC,GAAG,CAAG,EACX,IAAI,CAACC,IAAI,CAAG,EACZ,IAAI,CAACzL,GAAG,CAAG,CAAC,EACZ,IAAI,CAACD,GAAG,CAAG,IAAI,CAACC,GAAG,CACnB,IAAI,CAAC0L,KAAK,CAAG,EAAE,CACf,IAAI,CAACC,IAAI,CAAG,GACZ,IAAI,CAACzL,IAAI,CAAG,KACZ,IAAI,CAAC0L,EAAE,CAAG,EACV,IAAI,CAAChK,KAAK,CAAG,GAAI,CAAApK,CAAA,CAAM,IAAI,CAACkJ,UAAU,CACxC,EAEA3E,MAAO7F,CAAG,CAAE,IAON,CAAAG,CAAA,CALJ,GAAI,CAAe,GAAfH,CAAA,CAAI0C,MAAM,EAAU,IAAc,EAAd1C,CAAA,CAAI0C,MAAM,EAMlC,IAJA,IAAI,CAAC+S,IAAI,CAAGzV,CAAO,CAAP,GACZ,IAAI,CAAC0V,EAAE,CAAG,GACV,IAAI,CAAC1L,IAAI,CAAG,GAEL,CAAY,IAAZ7J,CAAA,EAAqB,IAAI,CAACoM,QAAQ,IACvCpM,CAAA,CAAU,IAAI,CAACwV,MAAM,EAEvB,KAAI,CAACF,IAAI,CAAG,MACd,CACAlJ,SAAA,CAAY,CASV,MARkB,MAAd,IAAI,CAACvC,IAAI,GACX,EAAE,IAAI,CAACuL,IAAI,CACX,IAAI,CAACD,GAAG,CAAG,IAEb,EAAE,IAAI,CAACI,EAAE,CACT,IAAI,CAAC1L,IAAI,CAAG,IAAI,CAACyL,IAAI,CAACG,WAAW,CAAC,IAAI,CAACF,EAAE,EACzC,EAAE,IAAI,CAACL,GAAG,CACV,EAAE,IAAI,CAACC,GAAG,CACH,IAAI,CAACO,UAAU,EACxB,EACAA,WAAA,CAAc,CACZ,MAAO,KAAI,CAACH,EAAE,CAAG,IAAI,CAACD,IAAI,CAAC/S,MAAM,EAEnCiT,OAAA,CAAU,CACR,MAAO,KAAI,CAACjK,KAAK,CAACyJ,MAAM,CAAC7N,IAAI,CAAC,IAAI,CAAE,IAAI,CAACoE,KAAK,CAAC0J,QAAQ,CACzD,EACAtP,OAAA,CAAU,IAEJ,CAAA9F,CADJ,KAAI,CAACgK,IAAI,CAAGhJ,CAAA,CAEZ,EACE,CAAAhB,CAAA,CAAO,IAAI,CAAC0L,KAAK,CAACyJ,MAAM,CACxB,IAAI,CAACQ,MAAM,SACJ,IAAI,CAACjK,KAAK,CAACyJ,MAAM,GAAKnV,CAAA,EAAK,MAEpC,KAAI,CAAC6J,GAAG,CAAG,KACX,IAAI,CAAC6B,KAAK,CAAG,KACb,IAAI,CAAC+J,IAAI,CAAG,KAEL,IAAI,CAAC3L,GAAG,EAEjBiC,KAAM/L,CAAE,CAAE,CAER,GAAI,UAAc,EAAd,MAAO,CAAAA,CAAA,CAAmB,KAAM,IAAI,CAAAiB,CAAA,CAAY,6CAA+C6U,IAAA,CAAKC,SAAS,CAAC/V,CAAA,EAClH,KAAI,CAAC0L,KAAK,CAACyJ,MAAM,CAAGnV,CACtB,EACAiL,KAAMjL,CAAE,CAAE,CAER,MADA,KAAI,CAAC+L,IAAI,CAAC/L,CAAA,EACH,IAAI,CAAC2V,MAAM,EACpB,EACArO,KAAMtH,CAAE,CAAEG,CAAU,CAAE,CAChBA,CAAA,EAAY,IAAI,CAAC4L,IAAI,CAAC5L,CAAA,EAC1B,IAAI,CAACqV,KAAK,CAAC5J,IAAI,CAAC,IAAI,CAACF,KAAK,EAC1B,IAAI,CAACA,KAAK,CAAG,GAAI,CAAApK,CAAA,CAAMtB,CAAA,CACzB,EACA4K,QAAS5K,CAAE,CAAEG,CAAU,CAAE,CAEvB,MADA,KAAI,CAACmH,IAAI,CAACtH,CAAA,CAAIG,CAAA,EACP,IAAI,CAACwV,MAAM,EACpB,EACAzK,OAAQlL,CAAK,CAAE,CAEb,GAAI,CAAsB,GAAtB,IAAI,CAACwV,KAAK,CAAC9S,MAAM,CAAQ,KAAM,KAAI,CAACoI,KAAK,CAAC,GAAI,CAAA7J,CAAA,CAAY,mBAChD,UAAVjB,CAAA,GAAqBA,CAAA,CAAQ,IAAI,CAAC0L,KAAK,CAACsC,GAAG,CAAH,CAC5C,IAAI,CAACtC,KAAK,CAAG,IAAI,CAAC8J,KAAK,CAAClK,GAAG,GAC3B,IAAI,CAACI,KAAK,CAAC0J,QAAQ,CAAGpV,CACxB,EACAsM,UAAWtM,CAAK,CAAE,CAEhB,MADA,KAAI,CAACkL,MAAM,CAAClL,CAAA,EACL,IAAI,CAAC2V,MAAM,EACpB,EACArH,QAAA,CAAW,CAET,GAAI,IAAI,CAACtE,IAAI,GAAKhJ,CAAA,CAAW,KAAM,KAAI,CAAC8J,KAAK,CAAC,GAAI,CAAA7J,CAAA,CAAY,4BAC9D,KAAI,CAACyK,KAAK,CAACsC,GAAG,EAAI,IAAI,CAACyH,IAAI,CAAC,IAAI,CAACC,EAAE,CAAC,EAEtC5K,MAAO9K,CAAG,CAAE,CAIV,MAHA,CAAAA,CAAA,CAAIuV,IAAI,CAAG,IAAI,CAACA,IAAI,CACpBvV,CAAA,CAAIsV,GAAG,CAAG,IAAI,CAACA,GAAG,CAClBtV,CAAA,CAAIqV,GAAG,CAAG,IAAI,CAACA,GAAG,CACXrV,CACT,EAEAwK,WAAA,CAAc,CACZ,KAAM,IAAI,CAAAvJ,CAAA,CAAY,mCACxB,EACF,CACAH,CAAA,CAAOuJ,GAAG,CAAGrJ,CAAA,CACbF,CAAA,CAAO+B,KAAK,CAAG5B,CAAA,CACfjB,CAAA,CAAAsF,OAAA,CAAiBxE,C,yCC7HjBd,CAAA,CAAAsF,OAAA,CAAiBtF,CAAA,GACf,GAAM,CAAAG,CAAA,CAAO,GAAI,CAAAuJ,IAAA,CAAK1J,CAAA,EAEtB,IAAIkJ,KAAA,CAAM/I,CAAA,EAGR,MAAO,CAAAA,CAFP,MAAM,CAAA6V,SAAI,CAAU,mBAIxB,E,qECNA,MAAM,CAAA/U,CAAA,QAAyB,CAAAyI,IAAA,CAC7BE,YAAa5J,CAAK,CAAE,CAClB,KAAK,CAACA,CAAA,CAAQ,KACd,IAAI,CAACiW,UAAU,CAAG,EACpB,EACAC,YAAA,CAAe,CACb,GAAM,CAAAlW,CAAA,CAAQ,GAAE,IAAI,CAACmW,cAAc,EAAG,IAAGnV,CAAA,CAAE,EAAG,IAAI,CAACoV,WAAW,GAAK,EAAG,IAAGpV,CAAA,CAAE,EAAG,IAAI,CAACqV,UAAU,GAAI,EAAC,CAC5FlW,CAAA,CAAQ,GAAEa,CAAA,CAAE,EAAG,IAAI,CAACsV,WAAW,GAAI,IAAGtV,CAAA,CAAE,EAAG,IAAI,CAACuV,aAAa,GAAI,IAAGvV,CAAA,CAAE,EAAG,IAAI,CAACwV,aAAa,GAAI,IAAGxV,CAAA,CAAE,EAAG,IAAI,CAACyV,kBAAkB,GAAI,EAAC,CACzI,MAAQ,GAAEzW,CAAK,IAAGG,CAAK,EAAC,EAE5B,CAEAH,CAAA,CAAAsF,OAAA,CAAiBtF,CAAA,GACf,GAAM,CAAAG,CAAA,CAAO,GAAI,CAAAc,CAAA,CAAiBjB,CAAA,EAElC,IAAIkJ,KAAA,CAAM/I,CAAA,EAGR,MAAO,CAAAA,CAFP,MAAM,CAAA6V,SAAI,CAAU,mBAIxB,E,yCCtBAhW,CAAA,CAAAsF,OAAA,CAAiB,CAACtF,CAAA,CAAGG,CAAA,IAEnB,IADAA,CAAA,EAAM,GACCA,CAAA,CAAIuC,MAAM,CAAG1C,CAAA,EAAGG,CAAA,CAAM,IAAMA,CAAA,CACnC,MAAO,CAAAA,CACT,E,sECHA,GAAM,CAAAc,CAAA,CAAWyE,cAAA,CAAOgE,IAAI,CAE5B,KAAM,CAAApI,CAAA,QAAa,CAAAL,CAAA,CACjB2I,YAAa5J,CAAK,CAAE,CAClB,KAAK,CAACA,CAAA,EACN,IAAI,CAAC0W,MAAM,CAAG,EAChB,EACAR,YAAA,CAAe,CACb,MAAQ,GAAE,IAAI,CAACC,cAAc,EAAG,IAAGnV,CAAA,CAAE,EAAG,IAAI,CAACoV,WAAW,GAAK,EAAG,IAAGpV,CAAA,CAAE,EAAG,IAAI,CAACqV,UAAU,GAAI,EAAC,EAEhG,CAEArW,CAAA,CAAAsF,OAAA,CAAiBtF,CAAA,GACf,GAAM,CAAAG,CAAA,CAAO,GAAI,CAAAmB,CAAA,CAAKtB,CAAA,EAEtB,IAAIkJ,KAAA,CAAM/I,CAAA,EAGR,MAAO,CAAAA,CAFP,MAAM,CAAA6V,SAAI,CAAU,mBAIxB,E,qECnBA,MAAM,CAAA/U,CAAA,QAAa,CAAAyI,IAAA,CACjBE,YAAa5J,CAAK,CAAE,CAClB,KAAK,CAAE,cAAaA,CAAM,GAAE,EAC5B,IAAI,CAAC2W,MAAM,CAAG,EAChB,EACAT,YAAA,CAAe,CACb,MAAQ,GAAElV,CAAA,CAAE,EAAG,IAAI,CAACsV,WAAW,GAAI,IAAGtV,CAAA,CAAE,EAAG,IAAI,CAACuV,aAAa,GAAI,IAAGvV,CAAA,CAAE,EAAG,IAAI,CAACwV,aAAa,GAAI,IAAGxV,CAAA,CAAE,EAAG,IAAI,CAACyV,kBAAkB,GAAI,EAAC,EAEvI,CAEAzW,CAAA,CAAAsF,OAAA,CAAiBtF,CAAA,GACf,GAAM,CAAAG,CAAA,CAAO,GAAI,CAAAc,CAAA,CAAKjB,CAAA,EAEtB,IAAIkJ,KAAA,CAAM/I,CAAA,EAGR,MAAO,CAAAA,CAFP,MAAM,CAAA6V,SAAI,CAAU,mBAIxB,E,yCClBA,QAAS,CAAAhV,EAAahB,CAAG,CAAEG,CAAG,EAE5B,GAAI,IAAW,EAAXH,CAAA,CAAIqV,GAAG,EAAY,IAAY,EAAZrV,CAAA,CAAIuV,IAAI,CAAU,MAAO,CAAAvV,CAAA,CAChD,GAAI,CAAAgB,CAAA,CAAMhB,CAAA,CAAImF,OAAO,CAIrB,GAHAnE,CAAA,EAAQ,WAAUhB,CAAA,CAAIuV,IAAI,CAAG,CAAE,SAAQvV,CAAA,CAAIsV,GAAG,CAAG,CAAE,SAAQtV,CAAA,CAAIqV,GAAI;AAAG,CAAC,CAGnElV,CAAA,EAAOA,CAAA,CAAIsD,KAAK,CAAE,CACpB,GAAM,CAAAxC,CAAA,CAAQd,CAAA,CAAIsD,KAAK,CAAC,MAClBnC,CAAA,CAAe,CAAAsV,IAAO,CAAKC,GAAG,CAAC5V,CAAA,CAAMyB,MAAM,CAAE1C,CAAA,CAAIuV,IAAI,CAAG,GAAzC,EAAyC,EAAI7S,MAAM,CACpE5B,CAAA,CAAc,IAClB,KAAOA,CAAA,CAAY4B,MAAM,CAAGpB,CAAA,EAAcR,CAAA,EAAe,IACzD,IAAK,GAAI,CAAAX,CAAA,CAAKyW,IAAA,CAAKE,GAAG,CAAC,EAAG9W,CAAA,CAAIuV,IAAI,CAAG,GAAIpV,CAAA,CAAKyW,IAAA,CAAKC,GAAG,CAAC5V,CAAA,CAAMyB,MAAM,CAAE1C,CAAA,CAAIuV,IAAI,CAAG,GAAI,EAAEpV,CAAA,CAAI,CACxF,GAAI,CAAAC,CAAA,CAAUD,CAAO,CAAK,EAAZ,GAEd,GADIC,CAAA,CAAQsC,MAAM,CAAGpB,CAAA,GAAclB,CAAA,CAAU,IAAMA,CAAnD,EACIJ,CAAA,CAAIuV,IAAI,GAAKpV,CAAA,CAAI,CAEnBa,CAAA,EADOZ,CAAA,CAAU,KAAOa,CAAK,CAACd,CAAA,CAAG,CAAG,KAC7BW,CAAA,CAAc,KACrB,IAAK,GAAI,CAAAX,CAAA,CAAK,EAAGA,CAAA,CAAKH,CAAA,CAAIsV,GAAG,CAAE,EAAEnV,CAAA,CAC/Ba,CAAA,EAAO,IAETA,CAAA,EAAO,KACT,MACE,CAAAA,CAAA,EAAOZ,CAAA,CAAU,KAAOa,CAAK,CAACd,CAAA,CAAG,CAAG,IAExC,EACF,CAEA,MADA,CAAAH,CAAA,CAAImF,OAAO,CAAGnE,CAAA,CAAM,KACbhB,CACT,EA/BAA,CAAA,CAAAsF,OAAA,CAAiBtE,C,iDCKjB,QAAS,CAAAM,EAAYtB,CAAG,CAAEG,CAAI,EAQ5B,QAAS,CAAAmB,EAAgBnB,CAAK,CAAEa,CAAS,CAAEF,CAAO,CAAEV,CAAM,EACxD,GAAID,CAAA,EAASH,CAAA,CAAI0C,MAAM,CACrB,GAAI,CACF,MAAO,CAAA5B,CAAA,CAAQa,CAAA,CAAOmE,MAAM,GAC9B,EAAE,MAAO3F,CAAA,CAAK,CACZ,MAAO,CAAAC,CAAA,CAAOa,CAAA,CAAYd,CAAA,CAAKH,CAAA,EACjC,EAEF,GAAI,CACF2B,CAAA,CAAOkE,KAAK,CAAC7F,CAAA,CAAI+W,KAAK,CAAC5W,CAAA,CAAOA,CAAA,CAAQa,CAAA,GACtCgW,YAAA,CAAa1V,CAAA,CAAgBnB,CAAA,CAAQa,CAAA,CAAWA,CAAA,CAAWF,CAAA,CAASV,CAAA,CACtE,EAAE,MAAOD,CAAA,CAAK,CACZC,CAAA,CAAOa,CAAA,CAAYd,CAAA,CAAKH,CAAA,EAC1B,EACF,CArBKG,CAAA,GAAMA,CAAA,CAAO,CAAC,GACnB,GAAM,CAAAW,CAAA,CAAQ,EACRV,CAAA,CAAYD,CAAA,CAAK8W,SAAS,EAAI,MAC9BtV,CAAA,CAAS,GAAI,CAAAX,CAAA,GACnB,MAAO,IAAI,CAAAkW,OAAA,CAAQ,CAAClX,CAAA,CAASG,CAAA,IAC3B6W,YAAA,CAAa1V,CAAA,CAAgBR,CAAA,CAAOV,CAAA,CAAWJ,CAAA,CAASG,CAAA,CAC1D,GAgBF,EA5BAH,CAAA,CAAAsF,OAAA,CAAiBhE,CAAA,C,gGCKjB,QAAS,CAAAL,EAAajB,CAAG,QACvB,CAAAA,CAAI,CACKsB,CAAA,CAActB,CAAA,EAEdc,CAAA,CAAed,CAAA,CAE1B,EAEA,QAAS,CAAAsB,EAAetB,CAAG,EACzB,GAAM,CAAAG,CAAA,CAAS,GAAI,CAAAa,CAAA,GAEnB,MADA,CAAAhB,CAAA,CAAImX,WAAW,CAAC,QACT,GAAI,CAAAD,OAAA,CAAQ,CAAClW,CAAA,CAASC,CAAA,OACvB,CAAAK,CAAA,CAGJ,QAAS,CAAAR,EAAA,EAEP,GADAR,CAAA,CAAQ,IACJgB,CAAA,CACJ,GAAI,CACFN,CAAA,CAAQb,CAAA,CAAO2F,MAAM,GACvB,EAAE,MAAO9F,CAAA,CAAK,CACZiB,CAAA,CAAOjB,CAAA,CACT,EACF,CACA,QAAS,CAAAI,EAAOJ,CAAG,EACjBK,CAAA,CAAU,GACVY,CAAA,CAAOjB,CAAA,CACT,EAKA,QAAS,CAAA2B,EAAA,KAEH,CAAAX,CAAA,CACJ,IAFAM,CAAA,CAAW,GAEH,IAAuB,IAAvBN,CAAA,CAAOhB,CAAA,CAAIoX,IAAI,KACrB,GAAI,CACFjX,CAAA,CAAO0F,KAAK,CAAC7E,CAAA,CACf,EAAE,MAAOhB,CAAA,CAAK,CACZ,MAAO,CAAAI,CAAA,CAAMJ,CAAA,CACf,EAIF,GAFAsB,CAAA,CAAW,GAEPhB,CAAA,CAAO,MAAO,CAAAQ,CAAA,GAEdT,CAAA,EACJL,CAAA,CAAIqX,IAAI,CAAC,WAAY1V,CAAA,CACvB,EAnCA,GAAI,CAAArB,CAAA,CAAQ,GACRD,CAAA,CAAU,GAcdL,CAAA,CAAIqX,IAAI,CAAC,MAAOvW,CAAA,EAChBd,CAAA,CAAIqX,IAAI,CAAC,QAASjX,CAAA,EAClBuB,CAAA,EAmBF,GACF,EAEA,QAAS,CAAAb,EAAA,EACP,GAAM,CAAAd,CAAA,CAAS,GAAI,CAAAgB,CAAA,GACnB,MAAO,IAAI,CAAAsW,aAAA,CAAAC,SAAA,CAAiB,CAC1BC,UAAA,CAAY,GACZC,UAAWtX,CAAK,CAAEa,CAAQ,CAAEC,CAAE,EAC5B,GAAI,CACFjB,CAAA,CAAO6F,KAAK,CAAC1F,CAAA,CAAM0E,QAAQ,CAAC7D,CAAA,EAC9B,EAAE,MAAOhB,CAAA,CAAK,CACZ,IAAI,CAAC0X,IAAI,CAAC,QAAS1X,CAAA,CACrB,EACAiB,CAAA,EACF,GACA0W,MAAOxX,CAAE,EACP,GAAI,CACF,IAAI,CAACyL,IAAI,CAAC5L,CAAA,CAAO8F,MAAM,GACzB,EAAE,MAAO9F,CAAA,CAAK,CACZ,IAAI,CAAC0X,IAAI,CAAC,QAAS1X,CAAA,CACrB,EACAG,CAAA,EACF,EACF,EACF,EA9EAH,CAAA,CAAAsF,OAAA,CAAiBrE,CAAA,C,iECGjB,QAAS,CAAAD,EAAWhB,CAAG,EACrB,GAAI,IAAQ,GAARA,CAAA,CAAc,KAAM,CAAAiB,CAAA,CAAU,QAClC,GAAI,IAAc,KAAdjB,CAAA,CAAkB,KAAM,CAAAiB,CAAA,CAAU,aACtC,GAAI,QAAe,EAAf,MAAO,CAAAjB,CAAA,CAAkB,KAAM,CAAAiB,CAAA,CAAU,MAAO,CAAAjB,CAAA,EAGpD,GAD0B,YAAtB,MAAO,CAAAA,CAAA,CAAI4X,MAAM,GAAiB5X,CAAA,CAAMA,CAAA,CAAI4X,MAAM,EAAtD,EACI,IAAO,EAAP5X,CAAA,CAAa,MAAO,MACxB,GAAM,CAAAG,CAAA,CAAOQ,CAAA,CAASX,CAAA,EACtB,GAAI,OAAS,GAATG,CAAA,CAAkB,KAAM,CAAAc,CAAA,CAAUd,CAAA,EACtC,MAAO,CAAAG,CAAA,CAAgB,GAAI,GAAIN,CAAA,CACjC,EAEA,QAAS,CAAAiB,EAAWjB,CAAI,EACtB,MAAO,CAAA6C,KAAI,CAAM,mCAAqC7C,CAAA,CACxD,EAEA,QAAS,CAAAsB,EAAA,EACP,MAAO,CAAAuB,KAAI,CAAM,sCACnB,EAEA,QAAS,CAAA/B,EAAed,CAAG,EACzB,MAAO,CAAA0H,MAAA,CAAOmQ,IAAI,CAAC7X,CAAA,EAAK8X,MAAM,CAAC3X,CAAA,EAAOE,CAAA,CAASL,CAAG,CAACG,CAAA,CAAI,EACzD,EACA,QAAS,CAAAC,EAAgBJ,CAAG,EAC1B,MAAO,CAAA0H,MAAA,CAAOmQ,IAAI,CAAC7X,CAAA,EAAK8X,MAAM,CAAC3X,CAAA,EAAO,CAACE,CAAA,CAASL,CAAG,CAACG,CAAA,CAAI,EAC1D,EAEA,QAAS,CAAAwB,EAAQ3B,CAAG,EAClB,GAAI,CAAAG,CAAA,CAAO4X,KAAA,CAAMC,OAAO,CAAChY,CAAA,EAAO,EAAE,CAAG0H,MAAA,CAAOiN,SAAS,CAACtN,cAAc,CAACC,IAAI,CAACtH,CAAA,CAAK,aAAe,CAAC,CAAC,aAAc,MAAS,EAAI,CAAC,EAC5H,IAAK,GAAI,CAAAgB,CAAA,GAAQ,CAAA0G,MAAA,CAAOmQ,IAAI,CAAC7X,CAAA,EACvB,CAAAA,CAAG,CAACgB,CAAA,CAAK,EAAI,UAA4B,EAA5B,MAAO,CAAAhB,CAAG,CAACgB,CAAA,CAAK,CAAC4W,MAAM,EAAqB,eAAiB,CAAA5X,CAAG,CAACgB,CAAA,CAAI,CAGpFb,CAAI,CAACa,CAAA,CAAK,CAAGhB,CAAG,CAACgB,CAAA,CAAK,CAFtBb,CAAI,CAACa,CAAA,CAAK,CAAGhB,CAAG,CAACgB,CAAA,CAAK,CAAC4W,MAAM,GAKjC,MAAO,CAAAzX,CACT,EAEA,QAAS,CAAAG,EAAiBN,CAAM,CAAEG,CAAM,CAAEa,CAAG,EAI3CC,CAAA,CAAaH,CAAA,CAHbE,CAAA,CAAMW,CAAA,CAAOX,CAAA,GAIbM,CAAA,CAAclB,CAAA,CAAeY,CAAA,EAC7B,GAJI,CAAAC,CAAA,CACAK,CAAA,CAGAhB,CAAA,CAAS,EAAE,CACXD,CAAA,CAAeF,CAAA,EAAU,GAC7Bc,CAAA,CAAWgX,OAAO,CAACjY,CAAA,GACjB,GAAI,CAAAG,CAAA,CAAOQ,CAAA,CAASK,CAAG,CAAChB,CAAA,CAAI,CACf,eAATG,CAAA,EAAwB,MAAS,GAATA,CAAA,EAC1BG,CAAA,CAAOsL,IAAI,CAACvL,CAAA,CAAeN,CAAA,CAAaC,CAAA,EAAO,MAAQuC,CAAA,CAAmBvB,CAAG,CAAChB,CAAA,CAAI,CAAE,IAExF,IACIM,CAAA,CAAOoC,MAAM,CAAG,GAAGpC,CAAA,CAAOsL,IAAI,CAAC,IACnC,GAAI,CAAA1L,CAAA,CAAgBF,CAAA,EAAUiB,CAAA,CAAWyB,MAAM,CAAG,EAAIvC,CAAA,CAAS,KAAO,GAItE,MAHA,CAAAmB,CAAA,CAAY2W,OAAO,CAAC9X,CAAA,GAClBG,CAAA,CAAOsL,IAAI,CAACsM,CAAA,CAAiBlY,CAAA,CAAQE,CAAA,CAAeC,CAAA,CAAKa,CAAG,CAACb,CAAA,CAAI,EACnE,IACOG,CAAA,CAAOwB,IAAI,CAAC,KACrB,EAEA,QAAS,CAAAzB,EAAUL,CAAK,EACtB,OAAQW,CAAA,CAASX,CAAA,GACf,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,WACH,MAAO,EACT,KAAK,QACH,MAAO,EAAiB,GAAjBA,CAAA,CAAM0C,MAAM,EAAU,OAAuB,GAAvB/B,CAAA,CAASX,CAAK,CAAC,EAAE,CAChD,KAAK,QACH,MAAO,EAA8B,GAA9B0H,MAAA,CAAOmQ,IAAI,CAAC7X,CAAA,EAAO0C,MAAM,CAElC,QACE,MAAO,EACX,EACF,CAEA,QAAS,CAAA/B,EAAUX,CAAK,EACtB,GAAI,IAAU,KAAVA,CAAA,CACF,MAAO,YACF,GAAI,IAAU,GAAVA,CAAA,CACT,MAAO,OAEF,GAAI,QAAiB,EAAjB,MAAO,CAAAA,CAAA,EAAuB+I,MAAA,CAAOM,SAAS,CAACrJ,CAAA,GAAU,CAAC0H,MAAA,CAAOmB,EAAE,CAAC7I,CAAA,CAAO,IACpF,MAAO,UACF,GAAI,QAAiB,EAAjB,MAAO,CAAAA,CAAA,CAChB,MAAO,QACF,GAAI,SAAiB,EAAjB,MAAO,CAAAA,CAAA,CAChB,MAAO,cACF,IAAI,QAAiB,EAAjB,MAAO,CAAAA,CAAA,CAChB,MAAO,aACF,IAAI,eAAiB,CAAAA,CAAA,CAC1B,MAAO,CAAAkJ,KAAA,CAAMlJ,CAAA,EAAS,YAAc,eAC/B,IAAI+X,KAAA,CAAMC,OAAO,CAAChY,CAAA,EACvB,MAAO,YAEP,OAAO,OAEX,EAEA,QAAS,CAAAD,EAAcC,CAAG,EACxB,GAAI,CAAAG,CAAA,CAASH,CAAO,CAAP,SACb,mBAAI,CAAmB+E,IAAI,CAAC5E,CAAA,EACnBA,CAAA,CAEAD,CAAA,CAAqBC,CAAA,CAEhC,EAEA,QAAS,CAAAD,EAAsBF,CAAG,EAChC,MAAO,IAAMmC,CAAA,CAAanC,CAAA,EAAKmE,OAAO,CAAC,KAAM,OAAS,GACxD,EAEA,QAAS,CAAAtC,EAAwB7B,CAAG,EAClC,MAAO,IAAMA,CAAA,CAAM,GACrB,EAEA,QAAS,CAAAmB,EAAQnB,CAAG,CAAEG,CAAG,EACvB,KAAOA,CAAA,CAAIuC,MAAM,CAAG1C,CAAA,EAAKG,CAAA,CAAM,IAAMA,CAAA,CACrC,MAAO,CAAAA,CACT,EAEA,QAAS,CAAAgC,EAAcnC,CAAG,EACxB,MAAO,CAAAA,CAAA,CAAImE,OAAO,CAAC,MAAO,QACvBA,OAAO,CAAC,QAAS,OACjBA,OAAO,CAAC,MAAO,OACfA,OAAO,CAAC,MAAO,OACfA,OAAO,CAAC,MAAO,OACfA,OAAO,CAAC,MAAO,OAEfA,OAAO,CAAC,0BAA2BnE,CAAA,EAAK,MAAQmB,CAAA,CAAO,EAAGnB,CAAA,CAAE4V,WAAW,CAAC,GAAG/Q,QAAQ,CAAC,KAEzF,EAEA,QAAS,CAAAzC,EAA0BpC,CAAG,EACpC,GAAI,CAAAG,CAAA,CAAUH,CAAA,CAAIyD,KAAK,CAAC,MAAM0U,GAAG,CAACnY,CAAA,EACzBmC,CAAA,CAAanC,CAAA,EAAKmE,OAAO,CAAC,WAAY,QAC5CrC,IAAI,CAAC,MAER,MAD0B,MAAtB3B,CAAA,CAAQ4W,KAAK,CAAC,MAAa5W,CAAA,EAAW,MAA1C,EACO,QAAUA,CAAA,CAAU,KAC7B,EAEA,QAAS,CAAAoC,EAAoBvC,CAAK,CAAEG,CAAW,EAC7C,GAAI,CAAAa,CAAA,CAAOL,CAAA,CAASX,CAAA,EAQpB,MAPa,WAATgB,CAAA,GACEb,CAAA,EAAe,KAAK4E,IAAI,CAAC/E,CAAA,EAC3BgB,CAAA,CAAO,mBACE,CAAC,gBAAgB+D,IAAI,CAAC/E,CAAA,GAAU,IAAI+E,IAAI,CAAC/E,CAAA,IAClDgB,CAAA,CAAO,gBADF,GAIFmC,CAAA,CAAgBnD,CAAA,CAAOgB,CAAA,CAChC,EAEA,QAAS,CAAAmC,EAAiBnD,CAAK,CAAEG,CAAI,EAGnC,OADKA,CAAA,GAAMA,CAAA,CAAOQ,CAAA,CAASX,CAAA,CAD3B,EAEQG,CAAA,EACN,IAAK,mBACH,MAAO,CAAAiC,CAAA,CAAyBpC,CAAA,CAClC,KAAK,SACH,MAAO,CAAAE,CAAA,CAAqBF,CAAA,CAC9B,KAAK,iBACH,MAAO,CAAA6B,CAAA,CAAuB7B,CAAA,CAChC,KAAK,UACH,MAAO,CAAAoD,CAAA,CAAiBpD,CAAA,CAC1B,KAAK,QACH,MAAO,CAAAqD,CAAA,CAAerD,CAAA,CACxB,KAAK,UACH,MAAO,CAAAiE,CAAA,CAAiBjE,CAAA,CAC1B,KAAK,WACH,MAAO,CAAAoY,CAAA,CAAkBpY,CAAA,CAC3B,KAAK,QACH,MAAO,CAAAqY,CAAA,CAAqBrY,CAAA,CAAM8X,MAAM,CAAC9X,CAAA,EAAK,MAAgB,GAAhBW,CAAA,CAASX,CAAA,GAAiB,WAAgB,GAAhBW,CAAA,CAASX,CAAA,GAAsB,KAAgB,GAAhBW,CAAA,CAASX,CAAA,GAClH,KAAK,QACH,MAAO,CAAAsY,CAAA,CAAqBtY,CAAA,CAE9B,SACE,KAAM,CAAAiB,CAAA,CAAUd,CAAA,CACpB,EACF,CAEA,QAAS,CAAAiD,EAAkBpD,CAAK,EAE9B,MAAO,CAAAA,CAAO,CAAP,EAAO,EAAOmE,OAAO,CAAC,wBAAyB,IACxD,EAEA,QAAS,CAAAd,EAAgBrD,CAAK,EAC5B,GAAIA,CAAA,GAAU,IACZ,MAAO,MACF,GAAIA,CAAA,GAAU,CAAC,IACpB,MAAO,OACF,GAAI0H,MAAA,CAAOmB,EAAE,CAAC7I,CAAA,CAAOkO,GAAA,EAC1B,MAAO,MACF,GAAIxG,MAAA,CAAOmB,EAAE,CAAC7I,CAAA,CAAO,IAC1B,MAAO,OAET,GAAI,CAAAG,CAAA,CAAS,CAAAH,CAAO,CAAP,EAAO,EAAOyD,KAAK,CAAC,KAC7BzC,CAAA,CAAMb,CAAM,CAAC,EAAE,CACfc,CAAA,CAAMd,CAAM,CAAC,EAAE,EAAI,EACvB,MAAO,CAAAiD,CAAA,CAAiBpC,CAAA,EAAO,IAAMC,CACvC,EAEA,QAAS,CAAAgD,EAAkBjE,CAAK,EAC9B,MAAO,CAAAA,CAAO,CAAP,EACT,EAEA,QAAS,CAAAoY,EAAmBpY,CAAK,EAC/B,MAAO,CAAAA,CAAA,CAAMkW,WAAW,EAC1B,EAEA,QAAS,CAAAqC,EAAUvY,CAAI,EACrB,MAAO,OAAS,GAATA,CAAA,EAAoB,SAAS,GAATA,CAC7B,EACA,QAAS,CAAAwY,EAAWxY,CAAM,EACxB,GAAI,CAAAG,CAAA,CAAcQ,CAAA,CAASX,CAAM,CAAC,EAAE,QACpC,CAAAA,CAAI,CAAOyY,KAAK,CAACzY,CAAA,EAAKW,CAAA,CAASX,CAAA,IAAOG,CAAA,EAAqBA,CAAA,CAEvDH,CAAA,CAAOyY,KAAK,CAACzY,CAAA,EAAKuY,CAAA,CAAS5X,CAAA,CAASX,CAAA,IAAa,QAC9C,OACT,EACA,QAAS,CAAA0Y,EAAe1Y,CAAM,EAC5B,GAAM,CAAAG,CAAA,CAAOqY,CAAA,CAAUxY,CAAA,EACvB,GAAI,OAAS,GAATG,CAAA,CACF,KAAM,CAAAmB,CAAA,GAER,MAAO,CAAAnB,CACT,EAEA,QAAS,CAAAkY,EAAsBrY,CAAM,EAEnC,GAAM,CAAAG,CAAA,CAAOuY,CAAA,CADb1Y,CAAA,CAAS2B,CAAA,CAAO3B,CAAA,GAEhB,GAAI,CAAAgB,CAAA,CAAS,IACTC,CAAA,CAAcjB,CAAA,CAAOmY,GAAG,CAACnY,CAAA,EAAKmD,CAAA,CAAgBnD,CAAA,CAAGG,CAAA,GAMrD,MALI,CAAAc,CAAA,CAAYa,IAAI,CAAC,MAAMY,MAAM,CAAG,IAAM,KAAKqC,IAAI,CAAC9D,CAAA,EAClDD,CAAA,EAAU,OAASC,CAAA,CAAYa,IAAI,CAAC,SAAW,KAE/Cd,CAAA,EAAU,IAAMC,CAAA,CAAYa,IAAI,CAAC,OAASb,CAAA,CAAYyB,MAAM,CAAG,EAAI,IAAM,IAEpE1B,CAAA,CAAS,GAClB,EAEA,QAAS,CAAAsX,EAAsBtY,CAAK,EAClCA,CAAA,CAAQ2B,CAAA,CAAO3B,CAAA,EACf,GAAI,CAAAG,CAAA,CAAS,EAAE,CAIf,MAHA,CAAAuH,MAAA,CAAOmQ,IAAI,CAAC7X,CAAA,EAAOiY,OAAO,CAACjX,CAAA,GACzBb,CAAA,CAAOyL,IAAI,CAAC7L,CAAA,CAAaiB,CAAA,EAAO,MAAQuB,CAAA,CAAmBvC,CAAK,CAACgB,CAAA,CAAI,CAAE,IACzE,IACO,KAAOb,CAAA,CAAO2B,IAAI,CAAC,OAAS3B,CAAA,CAAOuC,MAAM,CAAG,EAAI,IAAM,IAAM,GACrE,EAEA,QAAS,CAAAwV,EAAkBlY,CAAM,CAAEG,CAAM,CAAEa,CAAG,CAAEM,CAAK,EACnD,GAAI,CAAAR,CAAA,CAAYH,CAAA,CAASW,CAAA,EAEzB,GAAI,OAAc,GAAdR,CAAA,CACF,MAAO,CAAA6X,CAAA,CAAuB3Y,CAAA,CAAQG,CAAA,CAAQa,CAAA,CAAKM,CAAA,EAC9C,GAAI,OAAc,GAAdR,CAAA,CACT,MAAO,CAAA8X,CAAA,CAAsB5Y,CAAA,CAAQG,CAAA,CAAQa,CAAA,CAAKM,CAAA,CAElD,MAAM,CAAAL,CAAA,CAAUH,CAAA,CAEpB,EAEA,QAAS,CAAA6X,EAAwB3Y,CAAM,CAAEG,CAAM,CAAEa,CAAG,CAAEM,CAAM,EAE1DoX,CAAA,CADApX,CAAA,CAASK,CAAA,CAAOL,CAAA,GAEhB,GAAI,CAAAR,CAAA,CAAiBH,CAAA,CAASW,CAAM,CAAC,EAAE,EAEvC,GAAI,OAAmB,GAAnBR,CAAA,CAA4B,KAAM,CAAAG,CAAA,CAAUH,CAAA,EAChD,GAAI,CAAAV,CAAA,CAAUJ,CAAA,CAASD,CAAA,CAAaiB,CAAA,EAChCX,CAAA,CAAS,GAMb,MALA,CAAAiB,CAAA,CAAO2W,OAAO,CAACjY,CAAA,GACTK,CAAA,CAAOqC,MAAM,CAAG,IAAGrC,CAAA,EAAU,IAAjC,EAEAA,CAAA,EADUF,CAAA,CAAS,KAAOC,CAAA,CAAU,OAC1BE,CAAA,CAAgBF,CAAA,CAAU,IAAKD,CAAA,CAAQH,CAAA,CACnD,IACOK,CACT,EAEA,QAAS,CAAAuY,EAAuB5Y,CAAM,CAAEG,CAAM,CAAEa,CAAG,CAAEC,CAAK,EACxD,GAAI,CAAAK,CAAA,CAAUtB,CAAA,CAASD,CAAA,CAAaiB,CAAA,EAChCZ,CAAA,CAAS,GAIb,MAHI,CAAAU,CAAA,CAAcG,CAAA,EAAOyB,MAAM,CAAG,IAChCtC,CAAA,EAAUD,CAAA,CAAS,IAAMmB,CAAA,CAAU,KADrC,EAGOlB,CAAA,CAASE,CAAA,CAAgBgB,CAAA,CAAU,IAAKnB,CAAA,CAAQc,CAAA,CACzD,EAtSAjB,CAAA,CAAAsF,OAAA,CAAiBtE,CAAA,CACjBhB,CAAA,CAAAsF,OAAA,CAAeuC,KAAK,CAAG1E,C,qDCYhB,cAAe,CAAA/C,EACpBJ,CAA2B,CAC3BG,CAAoB,CACpBa,CAAkC,EAalC,MAXK,CAAAA,CAAA,GACHA,CAAA,CAAW,KAAM,CAAAW,CAAA,EADnB,EAIqB,KAAM,CAAAV,CAAA,CAAA4X,gBAAA,CACzB7Y,CAAA,CACA,GACAgB,CAAA,CACAb,CAAA,CAIJ,EAEO,QAAS,CAAAwB,EAAA,EAId,MAHA,CAAAX,CAAA,CAAAD,KAAA,CACG,yBAAwBb,CAAoB,IAAG2B,CAAmB,IAAGV,CAAqB,EAAC,EAEvFF,CAAA,CAAA6X,mBAAA,CACL5Y,CAAA,CACA2B,CAAA,CACA9B,CAAA,CACAoB,CAAA,CAEJ,EAEA,cAAe,CAAAb,EAAcN,CAAwB,EACnD,GAAM,CAAAG,CAAA,CAAuB,CAC3B4Y,GAAA,CAAK/Y,CAAA,CACLS,GAAA,CAAK,CACH,GAAGD,OAAA,CAAQC,GAAG,CACd,IAAIK,CAAA,CAAAyC,QAAO,EAAK,CAACC,eAAA,CAAiBtB,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAkB,MAAM,CAAC,EACvE,CACAkF,MAAA,CAAQ,GACR8T,SAAA,CAAW,CACDhU,MAARA,CAAShF,CAAA,EACPgB,CAAA,CAAAO,IAAA,CAAUvB,CAAA,CAAK6E,QAAQ,GAAGjE,IAAI,GAChC,GACQqY,MAARA,CAASjZ,CAAA,EACPgB,CAAA,CAAA8J,KAAA,CAAW9K,CAAA,CAAK6E,QAAQ,GAAGjE,IAAI,GACjC,EACF,CACF,CAEI,CAAAE,CAAA,CAAAmB,UAAA,CACF,KAAM,CAAAX,CAAA,CAAA4X,IAAA,CAAU,aAAc,CAAC,cAAc,CAAE/Y,CAAA,EAE/C,KAAM,CAAAmB,CAAA,CAAA4X,IAAA,CAAU,OAAQ,CAAC,aAAa,CAAE/Y,CAAA,CAE5C,EAEO,cAAe,CAAAE,EAA0BL,CAAwB,EACtE,GAAM,CAAAG,CAAA,CAAcH,CAAA,CAAQyC,KAAK,CAAC,EAAE,CAAC0W,YAAY,CAEjDnY,CAAA,CAAAO,IAAA,CAAW,kBAAiBpB,CAAY,GAAE,EAC1C,GAAI,CAAAmB,CAAA,CAAa,GACjB,GAAI,IAGE,CAAAtB,CAAA,CAFJsB,CAAA,CAAa,KAAM,CAAAL,CAAA,CAAAmY,YAAA,CAAgBjZ,CAAA,CAAa,OAAWJ,CAAA,EAC3DiB,CAAA,CAAAO,IAAA,CAAU,8BAGRvB,CAAA,CADEc,CAAA,CAAAmB,UAAA,CACsB,KAAM,CAAAhB,CAAA,CAAAoY,UAAA,CAAc/X,CAAA,EAEpB,KAAM,CAAAL,CAAA,CAAAqY,UAAA,CAAchY,CAAA,EAG9CN,CAAA,CAAAO,IAAA,CAAU,+BACV,KAAM,CAAAjB,CAAA,CAAcN,CAAA,CACtB,EAAE,MAAOA,CAAA,CAAK,CAcZ,KAbI,CAAAA,CAAA,WAAe,CAAAiB,CAAA,CAAAsY,SAAA,GAEb,GAAuB,GAAvBvZ,CAAA,CAAIwZ,cAAc,EAAY,GAAuB,GAAvBxZ,CAAA,CAAIwZ,cAAc,CAClDxY,CAAA,CAAAO,IAAA,CACG,6BAA4BvB,CAAA,CAAIwZ,cAAe,4DAA2D,EAG7GxY,CAAA,CAAAO,IAAA,CAAUvB,CAAA,CAAImF,OAAO,EAEnBnF,CAAA,CAAIwV,KAAK,EACXxU,CAAA,CAAAD,KAAA,CAAWf,CAAA,CAAIwV,KAAK,GAGlBxV,CACR,EACF,C,uTAhGA,GAAM,CAAAW,CAAA,CAAQK,CAAA,CAAAyY,QAAA,CAAc,SACtB1Z,CAAA,CAAOY,CAAC,CAAoB,SAASA,CAAA,CAArB,OAChBT,CAAA,CAAsB,UACtB2B,CAAA,CAAqB,kBACrBV,CAAA,CAAuB,OAChBgB,CAAA,CAAgB,qCAAoCjC,CAAoB,IAAG2B,CAAmB,IAAGV,CAAqB,yBAAwB,E,uCEyB3J,QAAsB,CAAAH,EACpBhB,CAAW,CACXG,CAAa,CACba,CAAa,CACbM,CAAkB,E,wCAElBnB,CAAA,CAAOA,CAAA,EAAQuZ,CAAA,CAAK5X,IAAI,CAACsW,CAAA,GAAqBuB,CAAA,CAAAC,OAAM,IACpD,KAAM,CAAAC,CAAA,CAAGC,MAAM,CAACJ,CAAA,CAAK7V,OAAO,CAAC1D,CAAA,GAC7B8U,CAAA,CAAKlU,KAAK,CAAC,eAAef,CAAA,EAC1BiV,CAAA,CAAKlU,KAAK,CAAC,eAAeZ,CAAA,EAE1B,GAAM,CAAAW,CAAA,CAAc,EACdV,CAAA,CAAamY,CAAA,CACjB,uCACA,IAEI5W,CAAA,CAAa4W,CAAA,CACjB,uCACA,IAEIjY,CAAA,CAAc,GAAI,CAAAyZ,CAAA,CAAAC,WAAA,CAAYlZ,CAAA,CAAaV,CAAA,CAAYuB,CAAA,EAC7D,MAAO,MAAM,CAAArB,CAAA,CAAY2Z,OAAO,CAC9B,IADF/B,CAAA,gCAEI,MAAO,MAAM,CAAAjX,CAAA,CAAoBjB,CAAA,CAAKG,CAAA,EAAQ,GAAIa,CAAA,CAAMM,CAAA,CAC1D,IACAtB,CAAC,EACK,EAAAA,CAAA,WAAe,CAAAka,CAAA,IAAala,CAAA,CAAIwZ,cAAc,EAG9C,EAAAxZ,CAAA,CAAIwZ,cAAc,CAAG,MACrB,GAAuB,GAAvBxZ,CAAA,CAAIwZ,cAAc,EAClB,GAAuB,GAAvBxZ,CAAA,CAAIwZ,cAAc,CAU5B,GAAC,EAED,QAAe,CAAAvY,EACbjB,CAAW,CACXG,CAAY,CACZa,CAAa,CACbC,CAAkB,E,wCAElB,GAAIkZ,CAAA,CAAG3V,UAAU,CAACrE,CAAA,EAChB,KAAM,CAAA0C,KAAI,CAAM,yBAAyB1C,CAAI,iBAAiB,EAIhE,GAAM,CAAAmB,CAAA,CAAO,GAAI,CAAA8Y,CAAA,CAAMC,UAAU,CAACC,CAAA,CAAW,EAAE,CAAE,CAC/CC,YAAA,CAAc,EACf,GAEGvZ,CAAA,GACFiU,CAAA,CAAKlU,KAAK,CAAC,YACK,SAAZE,CAAA,GACFA,CAAA,CAAU,IAEZA,CAAA,CAAQuZ,aAAa,CAAGxZ,CAAA,EAG1B,GAAM,CAAAF,CAAA,CAAqC,KAAM,CAAAQ,CAAA,CAAKmZ,GAAG,CAACza,CAAA,CAAKiB,CAAA,EAC/D,GAAI,GAAgC,GAAhCH,CAAA,CAASqE,OAAO,CAACuV,UAAU,CAAU,CACvC,GAAM,CAAAva,CAAA,CAAM,GAAI,CAAA+Z,CAAA,CAAUpZ,CAAA,CAASqE,OAAO,CAACuV,UAAU,CAIrD,MAHA,CAAAzF,CAAA,CAAKlU,KAAK,CACR,4BAA4Bf,CAAG,WAAWc,CAAA,CAASqE,OAAO,CAACuV,UAAU,aAAa5Z,CAAA,CAASqE,OAAO,CAACwV,aAAa,GAAG,EAE/Gxa,CACP,EAGD,GAAM,CAAAC,CAAA,CAAWwa,CAAA,CAAKC,SAAS,CAACC,CAAA,CAAOC,QAAQ,EAKzCpZ,CAAA,CAAa4W,CAJY,CAC7B,8CACA,IAAMzX,CAAA,CAASqE,OAAO,IAGpB7E,CAAA,CAAY,GAChB,GAAI,CAIF,MAHA,MAAM,CAAAF,CAAA,CAASuB,CAAA,CAAYwY,CAAA,CAAGa,iBAAiB,CAAC7a,CAAA,GAChD8U,CAAA,CAAKlU,KAAK,CAAC,qBACXT,CAAA,CAAY,GACLH,CACR,SAAS,CAER,GAAI,CAACG,CAAA,CAAW,CACd2U,CAAA,CAAKlU,KAAK,CAAC,mBACX,GAAI,CACF,KAAM,CAAA8Y,CAAA,CAAGoB,IAAI,CAAC9a,CAAA,CACf,EAAC,MAAOH,CAAA,CAAK,CACZiV,CAAA,CAAKlU,KAAK,CAAC,qBAAqBZ,CAAI,MAAMH,CAAA,CAAImF,OAAO,EAAE,CACxD,EACF,CACF,CACH,EAAC,EAiBD,QAAsB,CAAA7D,EACpBtB,CAAY,CACZG,CAAa,CACba,CAAgB,E,wCAEhBka,aAAA,CAAAC,EAAA,CAAGC,CAAA,CAAY,2CACfF,aAAA,CAAAC,EAAA,CAAGnb,CAAA,CAAM,gCAETG,CAAA,CAAO,KAAM,CAAAiC,CAAA,CAAqBjC,CAAA,EAElC,GAAM,CAAAc,CAAA,CAAcT,OAAA,CAAQuY,GAAG,GAE/B,GADAvY,OAAA,CAAQ6a,KAAK,CAAClb,CAAA,EACVa,CAAA,CACF,GAAI,CACF,GAAM,CAAAb,CAAA,CAAW8U,CAAA,CAAKqG,OAAO,GAAK,OAAS,OACrCra,CAAA,CAAiB,CACrB,IACAd,CAAA,CACA,MACA,YACAH,CAAA,CACD,CACKsB,CAAA,CAAuB,CAC3B4D,MAAA,CAAQ,EACT,CACD,MAAM,CAAA0T,CAAA,CAAAM,IAAA,CAAK,IAAIlY,CAAO,GAAG,CAAEC,CAAA,CAAMK,CAAA,CAClC,SAAS,CACRd,OAAA,CAAQ6a,KAAK,CAACpa,CAAA,CACf,MACI,CACL,GAAM,CAAAD,CAAA,CAAgB0Y,CAAA,CACnB5X,IAAI,CAACyZ,CAAA,CAAW,KAAM,UAAW,oBACjCpX,OAAO,CAAC,KAAM,MACdA,OAAO,CAAC,WAAY,IACjB7C,CAAA,CAActB,CAAA,CAAKmE,OAAO,CAAC,KAAM,MAAMA,OAAO,CAAC,WAAY,IAC3DrD,CAAA,CAAgBX,CAAA,CAAKgE,OAAO,CAAC,KAAM,MAAMA,OAAO,CAAC,WAAY,IAE7D/D,CAAA,CAAiB,CACrB,UACA,OACA,aACA,kBACA,mBACA,eACA,WARc,MAAMY,CAAa,cAAcM,CAAW,cAAcR,CAAa,GAAG,CAUzF,CACKa,CAAA,CAAuB,CAC3BuD,MAAA,CAAQ,EACT,EACD,GAAI,CACF,GAAM,CAAAlF,CAAA,CAAyB,KAAM,CAAA6Z,CAAA,CAAG2B,KAAK,CAAC,aAAc,GAC5D,MAAM,CAAA5C,CAAA,CAAAM,IAAA,CAAK,IAAIlZ,CAAc,GAAG,CAAEI,CAAA,CAAMuB,CAAA,CACzC,SAAS,CACRnB,OAAA,CAAQ6a,KAAK,CAACpa,CAAA,CACf,EACF,CAED,MAAO,CAAAd,CACT,GAAC,EAUD,QAAsB,CAAAW,EACpBd,CAAY,CACZG,CAAa,CACba,CAAA,CAA2B,IAAI,E,2CAwB3B,CAAAC,CAAA,CAtBJ,GAAI,CAACjB,CAAA,CACH,KAAM,CAAA6C,KAAI,CAAM,gCAIlB1C,CAAA,CAAO,KAAM,CAAAiC,CAAA,CAAqBjC,CAAA,EAGlC8U,CAAA,CAAKlU,KAAK,CAAC,0BACX,GAAI,CAAAO,CAAA,CAAgB,EACpB,MAAM,CAAAsX,CAAA,CAAAM,IAAA,CAAK,gBAAiB,EAAE,CAAE,CAC9BuC,gBAAA,CAAkB,GAClBvW,MAAA,CAAQ,GACR8T,SAAA,CAAW,CACThU,MAAA,CAAQhF,CAAC,EAAkBsB,CAAA,EAAiBtB,CAAA,CAAK6E,QAAQ,GACzDoU,MAAA,CAAQjZ,CAAC,EAAkBsB,CAAA,EAAiBtB,CAAA,CAAK6E,QAAQ,EAC1D,CACF,GACDoQ,CAAA,CAAKlU,KAAK,CAACO,CAAA,CAAcV,IAAI,IAC7B,GAAM,CAAAE,CAAA,CAAWQ,CAAA,CAAcoa,WAAW,GAAGhY,QAAQ,CAAC,WAKpDzC,CAAA,CADED,CAAA,WAAiB,CAAA+W,KAAA,CACZ/W,CAAA,CAEA,CAACA,CAAA,CAAM,CAGZiU,CAAA,CAAKqG,OAAO,IAAM,CAACta,CAAA,CAAM0C,QAAQ,CAAC,MACpCzC,CAAA,CAAK2K,IAAI,CAAC,MAGZ,GAAI,CAAAxL,CAAA,CAAUD,CAAA,CACVwB,CAAA,CAAU3B,CAAA,CAmBd,MAlBI,CAAAob,CAAA,EAActa,CAAA,GAChBG,CAAA,CAAK2K,IAAI,CAAC,iBACVxL,CAAA,CAAUD,CAAA,CAAKgE,OAAO,CAAC,MAAO,KAI9BxC,CAAA,CAAU3B,CAAA,CAAKmE,OAAO,CAAC,MAAO,MAG5BrD,CAAA,GAEFG,CAAA,CAAK2K,IAAI,CAAC,gCACV3K,CAAA,CAAK2K,IAAI,CAAC,gBAGZ3K,CAAA,CAAK2K,IAAI,CAAC,KAAMxL,CAAA,CAAS,KAAMuB,CAAA,EAC/B,KAAM,CAAAiX,CAAA,CAAAM,IAAA,CAAK,MAAOjY,CAAA,EAEXd,CACT,GAAC,EAUD,QAAsB,CAAAC,EACpBJ,CAAY,CACZG,CAAa,CACba,CAAA,CAA2B,EAAE,E,2CAOzB,CAAAC,CAAA,CALJia,aAAA,CAAAC,EAAA,CAAGQ,CAAA,CAAQ,4CACXT,aAAA,CAAAC,EAAA,CAAGnb,CAAA,CAAM,gCAETG,CAAA,CAAO,KAAM,CAAAiC,CAAA,CAAqBjC,CAAA,EASlC,CALEc,CAAA,CADED,CAAA,WAAiB,CAAA+W,KAAA,CACZ/W,CAAA,CAEA,CAACA,CAAA,CAAM,EAGX4K,IAAI,CAAC,KAAM,KAAMzL,CAAA,CAAM,KAAMH,CAAA,EAE9BiV,CAAA,CAAKqG,OAAO,IACdra,CAAA,CAAK2K,IAAI,CAAC,MAGZ,GAAM,CAAAtK,CAAA,CAAkB,KAAM,CAAAuY,CAAA,CAAG2B,KAAK,CAAC,MAAO,IAG9C,MAFA,MAAM,CAAA5C,CAAA,CAAAM,IAAA,CAAK,IAAI5X,CAAO,GAAG,CAAEkX,CAAA,CAAQvX,CAAA,GAE5Bd,CACT,GAAC,EASD,QAAsB,CAAAwB,EAAW3B,CAAY,CAAEG,CAAa,E,wCAC1D,GAAI,CAACH,CAAA,CACH,KAAM,CAAA6C,KAAI,CAAM,gCAWlB,MARA,CAAA1C,CAAA,CAAO,KAAM,CAAAiC,CAAA,CAAqBjC,CAAA,EAE9Bib,CAAA,CACF,KAAM,CAAA9a,CAAA,CAAcN,CAAA,CAAMG,CAAA,EAE1B,KAAM,CAAAE,CAAA,CAAcL,CAAA,CAAMG,CAAA,EAGrBA,CACT,GAAC,EAED,QAAe,CAAAG,EAAcN,CAAY,CAAEG,CAAY,E,wCAErD,GAAM,CAAAa,CAAA,CAAchB,CAAA,CAAKmE,OAAO,CAAC,KAAM,MAAMA,OAAO,CAAC,WAAY,IAC3DlD,CAAA,CAAcd,CAAA,CAAKgE,OAAO,CAAC,KAAM,MAAMA,OAAO,CAAC,WAAY,IAC3D7C,CAAA,CAAW,KAAM,CAAAuY,CAAA,CAAG2B,KAAK,CAAC,OAAQ,IAIxC,GAAIla,CAAA,CAAU,CASZ,GAAM,CAAAtB,CAAA,CAAO,CACX,UACA,aACA,kBACA,mBACA,eACA,WAbkB,yKAG4CgB,CAAA,OAAkBC,CAAA,0OAC8ID,CAAA,uBAAkCC,CAAA,kCACjQ,CAUA,CAEDgU,CAAA,CAAKlU,KAAK,CAAC,uBAAuBO,CAAA,EAClC,KAAM,CAAAsX,CAAA,CAAAM,IAAA,CAAK,IAAI5X,CAAQ,GAAG,CAAEtB,CAAA,CAC7B,MAAM,CAQL,GAAM,CAAAA,CAAA,CAAO,CACX,UACA,OACA,aACA,kBACA,mBACA,eACA,WAdwB,iPAG2GgB,CAAA,uBAAkCC,CAAA,yEACvGD,CAAA,OAAkBC,CAAA,aACjF,CAWA,CAEKd,CAAA,CAAiB,KAAM,CAAA0Z,CAAA,CAAG2B,KAAK,CAAC,aAAc,IACpDvG,CAAA,CAAKlU,KAAK,CAAC,6BAA6BZ,CAAA,EAExC,KAAM,CAAAyY,CAAA,CAAAM,IAAA,CAAK,IAAI/Y,CAAc,GAAG,CAAEH,CAAA,CACnC,EACH,EAAC,EAED,QAAe,CAAAK,EAAcL,CAAY,CAAEG,CAAY,E,wCACrD,GAAM,CAAAa,CAAA,CAAY,KAAM,CAAA6Y,CAAA,CAAG2B,KAAK,CAAC,QAAS,IACpCva,CAAA,CAAO,CAACjB,CAAA,CAAK,CACdiV,CAAA,CAAKqG,OAAO,IACfra,CAAA,CAAK2a,OAAO,CAAC,MAEf3a,CAAA,CAAK2a,OAAO,CAAC,MACb,KAAM,CAAAhD,CAAA,CAAAM,IAAA,CAAK,IAAIlY,CAAS,GAAG,CAAEC,CAAA,CAAM,CAAC8X,GAAA,CAAK5Y,CAAI,EAC/C,GAAC,EAUD,QAAsB,CAAAQ,EACpBX,CAAiB,CACjBG,CAAY,CACZa,CAAe,CACfC,CAAa,E,wCAOb,GALAD,CAAA,CAAU6a,CAAA,CAAOC,KAAK,CAAC9a,CAAA,GAAYA,CAAA,CACnCC,CAAA,CAAOA,CAAA,EAAQ8a,CAAA,CAAGC,IAAI,GACtB/G,CAAA,CAAKlU,KAAK,CAAC,gBAAgBZ,CAAI,IAAIa,CAAO,IAAIC,CAAI,EAAE,EAEpDgU,CAAA,CAAKlU,KAAK,CAAC,eAAef,CAAA,EACtB,CAACma,CAAA,CAAG8B,QAAQ,CAACjc,CAAA,EAAWkc,WAAW,GACrC,KAAM,CAAArZ,KAAI,CAAM,gCAIlB,GAAM,CAAAvB,CAAA,CAAmB,KAAM,CAAAiB,CAAA,CAAgBpC,CAAA,CAAMa,CAAA,CAASC,CAAA,EAG9D,IAAK,GAAM,CAAAd,CAAA,GAAY,CAAAga,CAAA,CAAGgC,WAAW,CAACnc,CAAA,EAAY,CAChD,GAAM,CAAAgB,CAAA,CAAI0Y,CAAA,CAAK5X,IAAI,CAAC9B,CAAA,CAAWG,CAAA,CAC/B,MAAM,CAAA0Z,CAAA,CAAGuC,EAAE,CAACpb,CAAA,CAAGM,CAAA,CAAU,CAAC+a,SAAA,CAAW,EAAI,EAC1C,EAKD,MAFA,CAAAlZ,CAAA,CAAkBhD,CAAA,CAAMa,CAAA,CAASC,CAAA,EAE1BK,CACT,GAAC,EAYD,QAAsB,CAAAvB,EACpBC,CAAkB,CAClBG,CAAkB,CAClBa,CAAY,CACZC,CAAe,CACfK,CAAa,E,wCAOb,GALAL,CAAA,CAAU4a,CAAA,CAAOC,KAAK,CAAC7a,CAAA,GAAYA,CAAA,CACnCK,CAAA,CAAOA,CAAA,EAAQya,CAAA,CAAGC,IAAI,GACtB/G,CAAA,CAAKlU,KAAK,CAAC,gBAAgBC,CAAI,IAAIC,CAAO,IAAIK,CAAI,EAAE,EAEpD2T,CAAA,CAAKlU,KAAK,CAAC,gBAAgBf,CAAA,EACvB,CAACma,CAAA,CAAG8B,QAAQ,CAACjc,CAAA,EAAYsc,MAAM,GACjC,KAAM,CAAAzZ,KAAI,CAAM,4BAIlB,GAAM,CAAA/B,CAAA,CAAqB,KAAM,CAAAyB,CAAA,CAAgBvB,CAAA,CAAMC,CAAA,CAASK,CAAA,EAI1DlB,CAAA,CAAmBsZ,CAAA,CAAK5X,IAAI,CAAChB,CAAA,CAAYX,CAAA,EAO/C,MANA,CAAA8U,CAAA,CAAKlU,KAAK,CAAC,oBAAoBX,CAAA,EAC/B,KAAM,CAAAyZ,CAAA,CAAGuC,EAAE,CAACpc,CAAA,CAAYI,CAAA,EAGxB+C,CAAA,CAAkBnC,CAAA,CAAMC,CAAA,CAASK,CAAA,EAE1BR,CACT,GAAC,EASD,QAAgB,CAAAZ,EACdF,CAAgB,CAChBG,CAAmB,CACnBa,CAAa,EAEb,GAAI,CAAChB,CAAA,CACH,KAAM,CAAA6C,KAAI,CAAM,kCAGlB,GAAI,CAAC1C,CAAA,CACH,KAAM,CAAA0C,KAAI,CAAM,qCAGlB7B,CAAA,CAAOA,CAAA,EAAQ+a,CAAA,CAAGC,IAAI,GAGjB5Y,CAAA,CAAkBjD,CAAA,IAGrBA,CAAA,CADckD,CAAA,CADkBxB,CAAA,CAAgB7B,CAAA,CAAUgB,CAAA,EACZb,CAAA,CAC9C,EAIF,GAAI,CAAAc,CAAA,CAAW,GACf,GAAId,CAAA,CAAa,CACfA,CAAA,CAAc0b,CAAA,CAAOC,KAAK,CAAC3b,CAAA,GAAgB,GAC3C,GAAM,CAAAmB,CAAA,CAAYoY,CAAA,CAAK5X,IAAI,CACzBmC,CAAA,GACAjE,CAAA,CACAG,CAAA,CACAa,CAAA,EAEFiU,CAAA,CAAKlU,KAAK,CAAC,mBAAmBO,CAAA,EAC1B6Y,CAAA,CAAG3V,UAAU,CAAClD,CAAA,GAAc6Y,CAAA,CAAG3V,UAAU,CAAC,GAAGlD,CAAS,WAAW,GACnE2T,CAAA,CAAKlU,KAAK,CAAC,uBAAuBf,CAAQ,IAAIG,CAAW,IAAIa,CAAI,EAAE,EACnEC,CAAA,CAAWK,CAAA,EAEX2T,CAAA,CAAKlU,KAAK,CAAC,YAEd,EACD,MAAO,CAAAE,CACT,EAQA,QAAgB,CAAAY,EAAgB7B,CAAgB,CAAEG,CAAa,EAC7D,GAAM,CAAAa,CAAA,CAAqB,EAAE,CAE7Bb,CAAA,CAAOA,CAAA,EAAQ4b,CAAA,CAAGC,IAAI,GACtB,GAAM,CAAA/a,CAAA,CAAWyY,CAAA,CAAK5X,IAAI,CAACmC,CAAA,GAAsBjE,CAAA,EAEjD,GAAIma,CAAA,CAAG3V,UAAU,CAACvD,CAAA,EAEhB,KAAK,GAAM,CAAAjB,CAAA,GADgB,CAAAma,CAAA,CAAGgC,WAAW,CAAClb,CAAA,EAExC,GAAImC,CAAA,CAAkBpD,CAAA,EAAQ,CAC5B,GAAM,CAAAsB,CAAA,CAAWoY,CAAA,CAAK5X,IAAI,CAACb,CAAA,CAAUjB,CAAA,CAAOG,CAAA,EAAQ,IAChDga,CAAA,CAAG3V,UAAU,CAAClD,CAAA,GAAa6Y,CAAA,CAAG3V,UAAU,CAAC,GAAGlD,CAAQ,WAAW,GACjEN,CAAA,CAAS4K,IAAI,CAAC5L,CAAA,CAEjB,GAIL,MAAO,CAAAgB,CACT,EA0BA,QAAsB,CAAAG,EACpBnB,CAAa,CACbG,CAAY,CACZa,CAAa,CACbC,CAAA,CAAS,QAAQ,E,wCAEjB,GAAI,CAAAK,CAAA,CAA2B,EAAE,CAC3BR,CAAA,CAAU,gCAAgCd,CAAK,IAAIG,CAAI,cAAcc,CAAM,EAAE,CAE7Eb,CAAA,CAAyB,GAAI,CAAAga,CAAA,CAAMC,UAAU,CAAC,cAC9C1Y,CAAA,CAAoB,GACtBX,CAAA,GACFiU,CAAA,CAAKlU,KAAK,CAAC,YACXY,CAAA,CAAQ6Y,aAAa,CAAGxZ,CAAA,EAG1B,GAAM,CAAAV,CAAA,CAAW,KAAM,CAAAF,CAAA,CAAKmc,OAAO,CAAazb,CAAA,CAASa,CAAA,EACzD,GAAI,CAACrB,CAAA,CAASwR,MAAM,CAClB,MAAO,CAAAxQ,CAAA,CAGT,GAAI,CAAAjB,CAAA,CAAc,GAClB,IAAK,GAAM,CAAAL,CAAA,GAAQ,CAAAM,CAAA,CAASwR,MAAM,CAAC0K,IAAI,CACrC,GAAI,wBAAc,GAAdxc,CAAA,CAAKyc,IAAI,CAA+B,CAC1Cpc,CAAA,CAAcL,CAAA,CAAK0c,GAAG,CACtB,MACD,CAGH/a,CAAA,CAAQgb,MAAS,CAAG,qCACpB,GAAI,CAAAhc,CAAA,CAAc,KAAM,CAAC,KAAM,CAAAP,CAAA,CAAKqa,GAAG,CAACpa,CAAA,CAAasB,CAAA,GAAUib,QAAQ,GAEvE,GAAIjc,CAAA,CAAa,CAEfA,CAAA,CAAcA,CAAA,CAAYwD,OAAO,CAAC,UAAW,IAC7C,GAAI,CACF7C,CAAA,CAAWwU,IAAA,CAAKjQ,KAAK,CAAClF,CAAA,CACvB,EAAC,MAAAX,CAAA,CAAM,CACNiV,CAAA,CAAKlU,KAAK,CAAC,eACZ,EACF,CAED,MAAO,CAAAO,CACT,GAAC,EAED,QAAsB,CAAAa,EACpBnC,CAAmB,CACnBG,CAAe,CACfa,CAAwB,CACxBC,CAAA,CAAqB8a,CAAA,CAAGC,IAAI,EAAE,E,wCAU9B,MAP2C,MAAM,CAAAa,CAAA,CAAGC,UAAU,CAC5D9c,CAAA,CACAG,CAAA,CACAa,CAAA,CACAC,CAAA,CAIJ,GAAC,EAED,QAAe,CAAAmB,EAAqBpC,CAAa,E,wCAM/C,MALK,CAAAA,CAAA,GAEHA,CAAA,CAAO0Z,CAAA,CAAK5X,IAAI,CAACsW,CAAA,GAAqBuB,CAAA,CAAAC,OAAM,GAA5C,EAEF,KAAM,CAAAC,CAAA,CAAGC,MAAM,CAAC9Z,CAAA,EACTA,CACT,GAAC,EAED,QAAe,CAAAuC,EACbvC,CAAY,CACZG,CAAe,CACfa,CAAa,E,wCAEb,GAAM,CAAAC,CAAA,CAAayY,CAAA,CAAK5X,IAAI,CAC1BmC,CAAA,GACAjE,CAAA,CACA6b,CAAA,CAAOC,KAAK,CAAC3b,CAAA,GAAYA,CAAA,CACzBa,CAAA,EAAQ,IAEViU,CAAA,CAAKlU,KAAK,CAAC,eAAeE,CAAA,EAC1B,GAAM,CAAAK,CAAA,CAAa,GAAGL,CAAU,WAAW,CAI3C,MAHA,MAAM,CAAA4Y,CAAA,CAAGoB,IAAI,CAACha,CAAA,EACd,KAAM,CAAA4Y,CAAA,CAAGoB,IAAI,CAAC3Z,CAAA,EACd,KAAM,CAAAuY,CAAA,CAAGC,MAAM,CAAC7Y,CAAA,EACTA,CACT,GAAC,EAED,QAAS,CAAAkC,EAAkBnD,CAAY,CAAEG,CAAe,CAAEa,CAAa,EACrE,GAAM,CAAAC,CAAA,CAAayY,CAAA,CAAK5X,IAAI,CAC1BmC,CAAA,GACAjE,CAAA,CACA6b,CAAA,CAAOC,KAAK,CAAC3b,CAAA,GAAYA,CAAA,CACzBa,CAAA,EAAQ,IAEJM,CAAA,CAAa,GAAGL,CAAU,WAAW,CAC3CkZ,CAAA,CAAGrV,aAAa,CAACxD,CAAA,CAAY,IAC7B2T,CAAA,CAAKlU,KAAK,CAAC,wBACb,EAOA,QAAgB,CAAAqC,EAAkBpD,CAAmB,EACnD,GAAM,CAAAG,CAAA,CAAI0b,CAAA,CAAOC,KAAK,CAAC9b,CAAA,GAAgB,GACvCiV,CAAA,CAAKlU,KAAK,CAAC,eAAeZ,CAAA,EAE1B,GAAM,CAAAa,CAAA,CAAQ,IAAmB,EAAnB6a,CAAA,CAAOkB,KAAK,CAAC5c,CAAA,EAG3B,MAFA,CAAA8U,CAAA,CAAKlU,KAAK,CAAC,aAAaC,CAAA,EAEjBA,CACT,EASA,QAAgB,CAAAqC,EACdrD,CAAkB,CAClBG,CAAmB,EAEnB,GAAI,CAAAa,CAAA,CAAU,GACdiU,CAAA,CAAKlU,KAAK,CAAC,cAAcf,CAAA,CAAS0C,MAAM,WAAW,EACnD1C,CAAA,CAAWA,CAAA,CAASgd,IAAI,CAAC,CAAChd,CAAA,CAAGG,CAAA,GAC3B0b,CAAI,CAAOoB,EAAE,CAACjd,CAAA,CAAGG,CAAA,EACR,EAEF,IAET,IAAK,GAAI,CAAAc,CAAA,CAAIjB,CAAA,CAAS0C,MAAM,CAAG,EAAGzB,CAAA,EAAK,EAAGA,CAAA,GAAK,CAC7C,GAAM,CAAAK,CAAA,CAAoBtB,CAAQ,CAACiB,CAAA,CAAE,CAErC,GAD2B4a,CAAA,CAAOqB,SAAS,CAAC5b,CAAA,CAAWnB,CAAA,EACxC,CACba,CAAA,CAAUM,CAAA,CACV,MACD,CACF,CAQD,MANI,CAAAN,CAAA,CACFiU,CAAA,CAAKlU,KAAK,CAAC,YAAYC,CAAA,EAEvBiU,CAAA,CAAKlU,KAAK,CAAC,mBAGNC,CACT,EAKA,QAAS,CAAAiD,EAAA,EACP,GAAM,CAAAjE,CAAA,CAAiBQ,OAAA,CAAQC,GAAG,CAACI,iBAAoB,EAAI,GAE3D,MADA,CAAAqa,aAAA,CAAAC,EAAA,CAAGnb,CAAA,CAAgB,4CACZA,CACT,EAKA,QAAS,CAAAoY,EAAA,EACP,GAAM,CAAApY,CAAA,CAAgBQ,OAAA,CAAQC,GAAG,CAAC0c,WAAc,EAAI,GAEpD,MADA,CAAAjC,aAAA,CAAAC,EAAA,CAAGnb,CAAA,CAAe,sCACXA,CACT,EAKA,QAAS,CAAAuY,EAAcvY,CAAW,CAAEG,CAAe,EAEjD,GAAM,CAAAa,CAAA,CAAS0E,cAAc,CAAC1F,CAAA,CAAqB,CAEnD,MAAO,KAAU,KAAVgB,CAAA,CAAsBA,CAAA,CAAQb,CACvC,EAMA,QAAS,CAAAqY,EAAWxY,CAAW,EAC7B,MAAO,CAAA+X,KAAA,CAAMqF,IAAI,CAAC,GAAI,CAAAC,GAAA,CAAIrd,CAAA,EAC5B,K,49CAxwBA,IAAAiV,CAAA,CAAAqD,CAAA,CAAAlT,aAAA,WACAyU,CAAA,CAAAvB,CAAA,CAAAlT,aAAA,WACA+U,CAAA,CAAA7B,CAAA,CAAA/T,SAAA,EACAsY,CAAA,CAAAvE,CAAA,CAAAlT,aAAA,WACA2W,CAAA,CAAAzD,CAAA,CAAArV,SAAA,EACAyW,CAAA,CAAApB,CAAA,CAAApW,WAAA,EACAkY,CAAA,CAAA9B,CAAA,CAAAlT,aAAA,WACAyW,CAAA,CAAAvD,CAAA,CAAAlT,aAAA,WACA0V,CAAA,CAAAxC,CAAA,CAAAhB,aAAA,EACAsD,CAAA,CAAAtC,CAAA,CAAAgF,WAAA,EACA3D,CAAA,CAAAhB,CAAA,CAAAvT,aAAA,W,iDAOA,MAAa,CAAA8U,CAAA,QAAkB,CAAArX,KAAA,CAC7B+G,YAAqB5J,CAAkC,CAAvD,CACE,KAAK,CAAC,6BAA6BA,CAAA,EADhB,KAAAwZ,cAAc,CAAdxZ,CAAA,CAEnB0H,MAAA,CAAO6V,cAAc,CAAC,IAAI,CAAEC,GAAA,CAAAC,MAAA,CAAW9I,SAAS,CAClD,EACD,CALD3U,CAAA,CAAAsF,OAAA,CAAAiU,SAAA,CAAAW,CAAA,CAOA,GAAM,CAAAkB,CAAA,CAAa,OAAqB,GAArB5a,OAAA,CAAQ6E,QAAQ,CAC7BsW,CAAA,CAAS,QAAqB,GAArBnb,OAAA,CAAQ6E,QAAQ,CACzBiV,CAAA,CAAY,oBAWlB,CAAAta,CAAA,CAAAsF,OAAA,CAAA8T,YAAA,CAAApY,CAAA,CAoHAhB,CAAA,CAAAsF,OAAA,CAAAoY,SAAA,CAAApc,CAAA,CAqEAtB,CAAA,CAAAsF,OAAA,CAAAgU,UAAA,CAAAxY,CAAA,CAqEAd,CAAA,CAAAsF,OAAA,CAAAqY,UAAA,CAAAvd,CAAA,CAoCAJ,CAAA,CAAAsF,OAAA,CAAA+T,UAAA,CAAA1X,CAAA,CAyFA3B,CAAA,CAAAsF,OAAA,CAAAsY,QAAA,CAAAjd,CAAA,CAwCAX,CAAA,CAAAsF,OAAA,CAAAuY,SAAA,CAAA9d,CAAA,CAsCAC,CAAA,CAAAsF,OAAA,CAAA9C,IAAA,CAAAtC,CAAA,CAiDAF,CAAA,CAAAsF,OAAA,CAAAwY,eAAA,CAAAjc,CAAA,CA6CA7B,CAAA,CAAAsF,OAAA,CAAAwT,mBAAA,CAAA3X,CAAA,CA6CAnB,CAAA,CAAAsF,OAAA,CAAAuT,gBAAA,CAAA1W,CAAA,CA8DAnC,CAAA,CAAAsF,OAAA,CAAAyY,iBAAA,CAAA3a,CAAA,CAiBApD,CAAA,CAAAsF,OAAA,CAAA0Y,gBAAA,CAAA3a,C,uDE3oBA,QAAsB,CAAA1B,EACpBxB,CAAmB,CACnBa,CAAe,CACfC,CAA0B,CAC1BK,CAAkB,E,2CAId,CAAAR,CAAA,CACAa,CAAA,CAEArB,CAAA,CALJ,GAAM,CAAAD,CAAA,CAAa4C,SAAA,CAAnBoC,QAAA,GAMA,IAAK,GAAM,CAAAvE,CAAA,GAAa,CAAAG,CAAA,CAAY,CAClC,GAAM,CAAAA,CAAA,CAAUH,CAAA,CAAUW,OAAO,CAGjC,GADArB,CAAA,CAAAW,KAAA,CAAM,SAASE,CAAO,cAAcd,CAAW,EAAE,EAE/CQ,CAAA,CAAOuc,SAAS,CAACjc,CAAA,CAASd,CAAA,IACzB,CAACa,CAAA,EAAUF,CAAA,CAAUmd,MAAM,GAAKjd,CAAA,IAEjCV,CAAA,CAAOQ,CAAA,CAAU2B,KAAK,CAACD,IAAI,CAACrC,CAAA,GAC1BC,CAAA,CAAAW,KAAA,CACE,GAAGZ,CAAA,CAAK6b,IAAI,MAAM1a,CAAU,OAAOnB,CAAA,CAAKkF,QAAQ,MAAMhF,CAAU,EAAE,EAGpE,GAAI,CAAAW,CAAA,CAAMb,CAAA,CAAK6b,IAAI,GAAK1a,CAAA,EAAcnB,CAAA,CAAKkF,QAAQ,GAAKhF,CAAA,CACxD,GAAIW,CAAA,EAAOb,CAAA,CAAK+d,gBAAgB,CAAE,CAChC,GAAM,CAAAjd,CAAA,CAAYjB,CAAA,CAAAsF,OAAA,CAAe6Y,aAAa,GAG5Cnd,CAAA,CADEC,CAAA,GAAcd,CAAA,CAAK+d,gBAAgB,EAG/Bvd,CAAA,CAAOuc,SAAS,CAACjc,CAAA,CAAWd,CAAA,CAAK+d,gBAAgB,CAE1D,EAED,MAAO,CAAAld,CACT,KAEU,CACRZ,CAAA,CAAAW,KAAA,CAAM,WAAWD,CAAA,CAAUW,OAAO,EAClCE,CAAA,CAAQb,CAAA,CACR,MACD,CAEJ,CAQD,MANI,CAAAa,CAAA,EAASrB,CAAA,GAGX,CADAQ,CAAA,CAAS4G,MAAA,CAAO0W,MAAM,CAAC,GAAIzc,CAAA,CAA3B,EACOc,KAAK,CAAG,CAACnC,CAAA,CAAK,EAGhBQ,CACT,GAAC,EAED,QAAgB,CAAAR,EAAA,EAGd,GAAM,CAAAH,CAAA,CAAO8C,SAAA,CAAboC,QAAA,GACIrE,CAAA,CAAU,GAEd,GAAI,QAAS,GAATb,CAAA,CACFa,CAAA,CAAUqd,oBAAA,CAAAC,QAAA,CAAY,2BAA2BzZ,QAAQ,OACpD,IAAI,OAAS,GAAT1E,CAAA,CAAkB,CAO3B,GAAM,CAAAA,CAAA,CAAcH,CAAA,CAAAsF,OAAA,CAAeiZ,qBAAqB,GACxD,GAAIpe,CAAA,CAEF,IAAK,GAAM,CAAAH,CAAA,GADG,CAAAG,CAAA,CAAYsD,KAAK,CAAC,MACN,CACxB,GAAM,CAAAtD,CAAA,CAAQH,CAAA,CAAKyD,KAAK,CAAC,KACzB,GACE,CAAiB,GAAjBtD,CAAA,CAAMuC,MAAM,GACX,YAAoB,GAApBvC,CAAK,CAAC,EAAE,CAACS,IAAI,IACZ,iBAAoB,GAApBT,CAAK,CAAC,EAAE,CAACS,IAAI,EAAO,EACtB,CACAI,CAAA,CAAUb,CAAK,CAAC,EAAE,CACfS,IAAI,GACJuD,OAAO,CAAC,KAAM,IACdA,OAAO,CAAC,KAAM,IACjB,MACD,CACF,CAEJ,CAED,MAAO,CAAAnD,CACT,EAEA,QAAgB,CAAAX,EAAA,EACd,GAAM,CAAAL,CAAA,CAAiB,mBACjBG,CAAA,CAAgB,kBAClBa,CAAA,CAAW,GAQf,MANI,CAAAuD,SAAA,CAAAC,UAAA,CAAcxE,CAAA,EAChBgB,CAAA,CAAWuD,SAAA,CAAAK,YAAA,CAAgB5E,CAAA,EAAgB6E,QAAQ,GAC1CN,SAAA,CAAAC,UAAA,CAAcrE,CAAA,IACvBa,CAAA,CAAWuD,SAAA,CAAAK,YAAA,CAAgBzE,CAAA,EAAe0E,QAAQ,EAD7C,EAIA7D,CACT,E,yhCAvKA,IAAAL,CAAA,CAAAW,CAAA,CAAA8D,aAAA,W,yBA6DApF,CAAA,CAAAsF,OAAA,CAAAwX,UAAA,CAAAnb,CAAA,CAwDA3B,CAAA,CAAAsF,OAAA,CAAA6Y,aAAA,CAAA7d,CAAA,CAsCAN,CAAA,CAAAsF,OAAA,CAAAiZ,qBAAA,CAAAle,C,yCCtHA,QAAS,CAAAW,EAAKhB,CAAC,EACbwe,EAAC,CAACxe,CAAA,CAAE,CAAGye,EAAA,EACT,EAgBA,QAAS,CAAAxd,EAAYjB,CAAK,EACxB,IAAK,GAAI,CAAAG,CAAA,CAAI,EAAGA,CAAA,CAAIue,EAAA,CAAsBhc,MAAM,CAAEvC,CAAA,GAAK,CACrD,GAAI,CAAAa,CAAA,CAAQ0d,EAAqB,CAACve,CAAA,CAAE,CAAC,EAAE,CACnCc,CAAA,CAAMyd,EAAqB,CAACve,CAAA,CAAE,CAAC,EAAE,CACrCH,CAAA,CAAQA,CAAA,CACLyD,KAAK,CAACzC,CAAA,CAAQ,KAAKc,IAAI,CAACd,CAAA,CAAQ,MAAQC,CAAA,CAAM,KAC9CwC,KAAK,CAACzC,CAAA,CAAQ,KAAKc,IAAI,CAACd,CAAA,CAAQ,MAAQC,CAAA,CAAM,IACnD,EACA,MAAO,CAAAjB,CACT,EAqOA,QAAS,CAAAsB,EAAOtB,CAAO,CAAEG,CAAO,EAQ9B,GAPKA,CAAA,EAAW,QAAmB,EAAnB,MAAO,CAAAA,CAAA,GACrBA,CAAA,CAAU,CACRwe,KAAA,CAAO,CAAC,CAACxe,CAAA,CACTye,iBAAA,CAAmB,EACrB,GAGE5e,CAAA,WAAmB,CAAA2B,CAAA,CACrB,MAAO,CAAA3B,CAAA,CAGT,GAAuB,UAAnB,MAAO,CAAAA,CAAA,EAIPA,CAAA,CAAQ0C,MAAM,CAAGmc,EAAA,EAKjB,CAAC,CADG1e,CAAA,CAAQwe,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAEO,KAAK,CAAC,CAAGD,EAAM,CAACN,EAAA,CAAEQ,IAAI,CAAC,EACjDja,IAAI,CAAC/E,CAAA,EARV,MAAO,MAYT,GAAI,CACF,MAAO,IAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAASG,CAAA,CAC7B,EAAE,MAAOH,CAAA,CAAI,CACX,MAAO,KACT,EACF,CAGA,QAAS,CAAAc,EAAOd,CAAO,CAAEG,CAAO,EAC9B,GAAI,CAAAa,CAAA,CAAIM,CAAA,CAAMtB,CAAA,CAASG,CAAA,EACvB,MAAO,CAAAa,CAAA,CAAIA,CAAA,CAAES,OAAO,CAAG,IACzB,EAGA,QAAS,CAAArB,EAAOJ,CAAO,CAAEG,CAAO,EAC9B,GAAI,CAAAa,CAAA,CAAIM,CAAA,CAAMtB,CAAA,CAAQY,IAAI,GAAGuD,OAAO,CAAC,SAAU,IAAKhE,CAAA,EACpD,MAAO,CAAAa,CAAA,CAAIA,CAAA,CAAES,OAAO,CAAG,IACzB,EAIA,QAAS,CAAAE,EAAQ3B,CAAO,CAAEG,CAAO,EAO/B,GANKA,CAAA,EAAW,QAAmB,EAAnB,MAAO,CAAAA,CAAA,GACrBA,CAAA,CAAU,CACRwe,KAAA,CAAO,CAAC,CAACxe,CAAA,CACTye,iBAAA,CAAmB,EACrB,GAEE5e,CAAA,WAAmB,CAAA2B,CAAA,CAAQ,CAC7B,GAAI3B,CAAA,CAAQ2e,KAAK,GAAKxe,CAAA,CAAQwe,KAAK,CACjC,MAAO,CAAA3e,CAAA,CAEPA,CAAA,CAAUA,CAAA,CAAQyB,OAAO,EAE7B,IAAO,IAAI,QAAmB,EAAnB,MAAO,CAAAzB,CAAA,CAChB,KAAM,CAAAgW,SAAI,CAAU,oBAAsBhW,CAAA,EAG5C,GAAIA,CAAA,CAAQ0C,MAAM,CAAGmc,EAAA,CACnB,KAAM,CAAA7I,SAAI,CAAU,0BAA4B6I,EAAA,CAAa,eAG/D,GAAI,EAAE,IAAI,WAAY,CAAAld,CAAA,EACpB,MAAO,IAAI,CAAAA,CAAA,CAAO3B,CAAA,CAASG,CAAA,EAG7B8e,EAAA,CAAM,SAAUjf,CAAA,CAASG,CAAA,EACzB,IAAI,CAAC+e,OAAO,CAAG/e,CAAA,CACf,IAAI,CAACwe,KAAK,CAAG,CAAC,CAACxe,CAAA,CAAQwe,KAAK,CAE5B,GAAI,CAAA3d,CAAA,CAAIhB,CAAA,CAAQY,IAAI,GAAGue,KAAK,CAAChf,CAAA,CAAQwe,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAEO,KAAK,CAAC,CAAGD,EAAM,CAACN,EAAA,CAAEQ,IAAI,CAAC,EAE7E,GAAI,CAAChe,CAAA,CACH,KAAM,CAAAgV,SAAI,CAAU,oBAAsBhW,CAAA,EAU5C,GAPA,IAAI,CAACof,GAAG,CAAGpf,CAAA,CAGX,IAAI,CAAC8D,KAAK,CAAG,CAAC9C,CAAC,CAAC,EAAE,CAClB,IAAI,CAAC+C,KAAK,CAAG,CAAC/C,CAAC,CAAC,EAAE,CAClB,IAAI,CAACqe,KAAK,CAAG,CAACre,CAAC,CAAC,EAAE,CAEd,IAAI,CAAC8C,KAAK,CAAGwb,EAAA,EAAoB,IAAI,CAACxb,KAAK,CAAG,EAChD,KAAM,CAAAkS,SAAI,CAAU,yBAGtB,GAAI,IAAI,CAACjS,KAAK,CAAGub,EAAA,EAAoB,IAAI,CAACvb,KAAK,CAAG,EAChD,KAAM,CAAAiS,SAAI,CAAU,yBAGtB,GAAI,IAAI,CAACqJ,KAAK,CAAGC,EAAA,EAAoB,IAAI,CAACD,KAAK,CAAG,EAChD,KAAM,CAAArJ,SAAI,CAAU,wBAIjB,CAAAhV,CAAC,CAAC,EAAE,CAGP,IAAI,CAACue,UAAU,CAAGve,CAAC,CAAC,EAAE,CAACyC,KAAK,CAAC,KAAK0U,GAAG,CAAC,SAAUnY,CAAE,EAChD,GAAI,WAAW+E,IAAI,CAAC/E,CAAA,EAAK,CACvB,GAAI,CAAAG,CAAA,CAAM,CAACH,CAAA,CACX,GAAIG,CAAA,EAAO,GAAKA,CAAA,CAAMmf,EAAA,CACpB,MAAO,CAAAnf,CAEX,EACA,MAAO,CAAAH,CACT,IAVA,IAAI,CAACuf,UAAU,CAAG,EAAE,CAatB,IAAI,CAACC,KAAK,CAAGxe,CAAC,CAAC,EAAE,CAAGA,CAAC,CAAC,EAAE,CAACyC,KAAK,CAAC,KAAO,EAAE,CACxC,IAAI,CAACgc,MAAM,EACb,EAuMA,QAAS,CAAAnf,EAAKN,CAAO,CAAEG,CAAO,CAAEa,CAAK,CAAEC,CAAU,EACxB,UAAnB,MAAQ,CAAAD,CAAA,GACVC,CAAA,CAAaD,CAAA,CACbA,CAAA,CAAQ,QAGV,GAAI,CACF,MAAO,IAAI,CAAAW,CAAA,CAAO3B,CAAA,CAASgB,CAAA,EAAO0e,GAAG,CAACvf,CAAA,CAASc,CAAA,EAAYQ,OAAO,EAClE,MAAOzB,CAAA,CAAI,CACX,MAAO,KACT,EACF,CAGA,QAAS,CAAAK,EAAML,CAAQ,CAAEG,CAAQ,EAC/B,GAAIoY,CAAA,CAAGvY,CAAA,CAAUG,CAAA,EACf,MAAO,MAEP,GAAI,CAAAa,CAAA,CAAKM,CAAA,CAAMtB,CAAA,EACXiB,CAAA,CAAKK,CAAA,CAAMnB,CAAA,EACXW,CAAA,CAAS,GACb,GAAIE,CAAA,CAAGue,UAAU,CAAC7c,MAAM,EAAIzB,CAAA,CAAGse,UAAU,CAAC7c,MAAM,CAAE,CAChD5B,CAAA,CAAS,MACT,GAAI,CAAAV,CAAA,CAAgB,YACtB,EACA,IAAK,GAAI,CAAAuB,CAAA,GAAO,CAAAX,CAAA,CACd,GAAI,QAAQ,GAARW,CAAA,EAAmB,OAAQ,GAARA,CAAA,EAAmB,OAAQ,GAARA,CAAQ,GAC5CX,CAAE,CAACW,CAAA,CAAI,GAAKV,CAAE,CAACU,CAAA,CAAI,CACrB,MAAO,CAAAb,CAAA,CAASa,CAAA,CAItB,MAAO,CAAAvB,CAEX,EAKA,QAAS,CAAAO,EAAoBX,CAAC,CAAEG,CAAC,EAC/B,GAAI,CAAAa,CAAA,CAAO2e,EAAA,CAAQ5a,IAAI,CAAC/E,CAAA,EACpBiB,CAAA,CAAO0e,EAAA,CAAQ5a,IAAI,CAAC5E,CAAA,EAOxB,MALI,CAAAa,CAAA,EAAQC,CAAA,GACVjB,CAAA,CAAI,CAACA,CAAA,CACLG,CAAA,CAAI,CAACA,CAAA,EAGAH,CAAA,GAAMG,CAAA,CAAI,EACba,CAAA,EAAS,CAACC,CAAA,CAAQ,GAClBA,CAAA,EAAS,CAACD,CAAA,CAAQ,EAClBb,CAAI,CAAJH,CAAA,CAAQ,GACR,CACN,EAGA,QAAS,CAAAD,EAAqBC,CAAC,CAAEG,CAAC,EAChC,MAAO,CAAAQ,CAAA,CAAmBR,CAAA,CAAGH,CAAA,CAC/B,EAGA,QAAS,CAAAE,EAAOF,CAAC,CAAEG,CAAK,EACtB,MAAO,IAAI,CAAAwB,CAAA,CAAO3B,CAAA,CAAGG,CAAA,EAAO2D,KAAK,EAInC,QAAS,CAAAjC,EAAO7B,CAAC,CAAEG,CAAK,EACtB,MAAO,IAAI,CAAAwB,CAAA,CAAO3B,CAAA,CAAGG,CAAA,EAAO4D,KAAK,EAInC,QAAS,CAAA5C,EAAOnB,CAAC,CAAEG,CAAK,EACtB,MAAO,IAAI,CAAAwB,CAAA,CAAO3B,CAAA,CAAGG,CAAA,EAAOkf,KAAK,EAInC,QAAS,CAAAld,EAASnC,CAAC,CAAEG,CAAC,CAAEa,CAAK,EAC3B,MAAO,IAAI,CAAAW,CAAA,CAAO3B,CAAA,CAAGgB,CAAA,EAAO4e,OAAO,CAAC,GAAI,CAAAje,CAAA,CAAOxB,CAAA,CAAGa,CAAA,EACpD,EAGA,QAAS,CAAAoB,EAAcpC,CAAC,CAAEG,CAAC,EACzB,MAAO,CAAAgC,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAG,GACvB,EAGA,QAAS,CAAAoC,EAAcvC,CAAC,CAAEG,CAAC,CAAEa,CAAK,EAChC,GAAI,CAAAC,CAAA,CAAW,GAAI,CAAAU,CAAA,CAAO3B,CAAA,CAAGgB,CAAA,EACzBM,CAAA,CAAW,GAAI,CAAAK,CAAA,CAAOxB,CAAA,CAAGa,CAAA,EAC7B,MAAO,CAAAC,CAAA,CAAS2e,OAAO,CAACte,CAAA,GAAaL,CAAA,CAAS4e,YAAY,CAACve,CAAA,CAC7D,EAGA,QAAS,CAAA6B,EAAUnD,CAAC,CAAEG,CAAC,CAAEa,CAAK,EAC5B,MAAO,CAAAmB,CAAA,CAAQhC,CAAA,CAAGH,CAAA,CAAGgB,CAAA,CACvB,EAGA,QAAS,CAAAoC,EAAMpD,CAAI,CAAEgB,CAAK,EACxB,MAAO,CAAAhB,CAAA,CAAKgd,IAAI,CAAC,SAAUhd,CAAC,CAAEiB,CAAC,EAC7B,MAAO,CAAAd,CAAA,CAAQ0f,YAAY,CAAC7f,CAAA,CAAGiB,CAAA,CAAGD,CAAA,CACpC,GACF,EAGA,QAAS,CAAAqC,EAAOrD,CAAI,CAAEgB,CAAK,EACzB,MAAO,CAAAhB,CAAA,CAAKgd,IAAI,CAAC,SAAUhd,CAAC,CAAEiB,CAAC,EAC7B,MAAO,CAAAd,CAAA,CAAQ0f,YAAY,CAAC5e,CAAA,CAAGjB,CAAA,CAAGgB,CAAA,CACpC,GACF,EAGA,QAAS,CAAAiD,EAAIjE,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACtB,MAAO,CAAAmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,EAAS,CAChC,EAGA,QAAS,CAAAoX,EAAIpY,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACtB,MAAO,EAAuB,CAAvBmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,CACvB,EAGA,QAAS,CAAAuX,EAAIvY,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACtB,MAAO,EAAyB,GAAzBmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,CACvB,EAGA,QAAS,CAAAwX,EAAKxY,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACvB,MAAO,EAAyB,GAAzBmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,CACvB,EAGA,QAAS,CAAA0X,EAAK1Y,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACvB,MAAO,CAAAmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,GAAU,CACjC,EAGA,QAAS,CAAAqX,EAAKrY,CAAC,CAAEG,CAAC,CAAEa,CAAK,EACvB,MAAO,EAAwB,EAAxBmB,CAAA,CAAQnC,CAAA,CAAGG,CAAA,CAAGa,CAAA,CACvB,EAGA,QAAS,CAAAsX,EAAKtY,CAAC,CAAEG,CAAE,CAAEa,CAAC,CAAEC,CAAK,EAC3B,OAAQd,CAAA,EACN,IAAK,MAKH,MAJiB,UAAb,MAAO,CAAAH,CAAA,GACTA,CAAA,CAAIA,CAAA,CAAEyB,OAAO,CAAP,CACS,UAAb,MAAO,CAAAT,CAAA,GACTA,CAAA,CAAIA,CAAA,CAAES,OAAO,CAAP,CACDzB,CAAA,GAAMgB,CAEf,KAAK,MAKH,MAJiB,UAAb,MAAO,CAAAhB,CAAA,GACTA,CAAA,CAAIA,CAAA,CAAEyB,OAAO,CAAP,CACS,UAAb,MAAO,CAAAT,CAAA,GACTA,CAAA,CAAIA,CAAA,CAAES,OAAO,CAAP,CACDzB,CAAA,GAAMgB,CAEf,KAAK,GACL,IAAK,IACL,IAAK,KACH,MAAO,CAAAuX,CAAA,CAAGvY,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAElB,KAAK,KACH,MAAO,CAAAuX,CAAA,CAAIxY,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAEnB,KAAK,IACH,MAAO,CAAAgD,CAAA,CAAGjE,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAElB,KAAK,KACH,MAAO,CAAAyX,CAAA,CAAI1Y,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAEnB,KAAK,IACH,MAAO,CAAAmX,CAAA,CAAGpY,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAElB,KAAK,KACH,MAAO,CAAAoX,CAAA,CAAIrY,CAAA,CAAGgB,CAAA,CAAGC,CAAA,CAEnB,SACE,KAAM,CAAA+U,SAAI,CAAU,qBAAuB7V,CAAA,CAC/C,EACF,CAGA,QAAS,CAAA+X,EAAYlY,CAAI,CAAEG,CAAO,EAQhC,GAPKA,CAAA,EAAW,QAAmB,EAAnB,MAAO,CAAAA,CAAA,GACrBA,CAAA,CAAU,CACRwe,KAAA,CAAO,CAAC,CAACxe,CAAA,CACTye,iBAAA,CAAmB,EACrB,GAGE5e,CAAA,WAAgB,CAAAkY,CAAA,CAAY,CAC9B,GAAI,CAAgB,CAAC/X,CAAA,CAAQwe,KAAK,GAA9B3e,CAAA,CAAK2e,KAAK,CACZ,MAAO,CAAA3e,CAAA,CAEPA,CAAA,CAAOA,CAAA,CAAK6H,KAAK,EAIrB,GAAI,EAAE,IAAI,WAAY,CAAAqQ,CAAA,EACpB,MAAO,IAAI,CAAAA,CAAA,CAAWlY,CAAA,CAAMG,CAAA,EAG9BH,CAAA,CAAOA,CAAA,CAAKY,IAAI,GAAG6C,KAAK,CAAC,OAAO3B,IAAI,CAAC,KACrCmd,EAAA,CAAM,aAAcjf,CAAA,CAAMG,CAAA,EAC1B,IAAI,CAAC+e,OAAO,CAAG/e,CAAA,CACf,IAAI,CAACwe,KAAK,CAAG,CAAC,CAACxe,CAAA,CAAQwe,KAAK,CAC5B,IAAI,CAAC9Y,KAAK,CAAC7F,CAAA,EAEP,IAAI,CAAC8f,MAAM,GAAKC,EAAA,CAClB,IAAI,CAAClY,KAAK,CAAG,GAEb,IAAI,CAACA,KAAK,CAAG,IAAI,CAACmY,QAAQ,CAAG,IAAI,CAACF,MAAM,CAACre,OAAO,CAGlDwd,EAAA,CAAM,OAAQ,IAAI,CACpB,EAmGA,QAAS,CAAAtG,EAAO3Y,CAAK,CAAEG,CAAO,EAQ5B,GAPKA,CAAA,EAAW,QAAmB,EAAnB,MAAO,CAAAA,CAAA,GACrBA,CAAA,CAAU,CACRwe,KAAA,CAAO,CAAC,CAACxe,CAAA,CACTye,iBAAA,CAAmB,EACrB,GAGE5e,CAAA,WAAiB,CAAA2Y,CAAA,OACnB,CAAqB,CAACxY,CAAA,CAAQwe,KAAK,GAA/B3e,CAAA,CAAM2e,KAAK,EACX,CAA6B,CAACxe,CAAA,CAAQye,iBAAiB,GAAvD5e,CAAA,CAAM4e,iBAAiB,CAClB5e,CAAA,CAEA,GAAI,CAAA2Y,CAAA,CAAM3Y,CAAA,CAAMof,GAAG,CAAEjf,CAAA,EAIhC,GAAIH,CAAA,WAAiB,CAAAkY,CAAA,CACnB,MAAO,IAAI,CAAAS,CAAA,CAAM3Y,CAAA,CAAM6H,KAAK,CAAE1H,CAAA,EAGhC,GAAI,EAAE,IAAI,WAAY,CAAAwY,CAAA,EACpB,MAAO,IAAI,CAAAA,CAAA,CAAM3Y,CAAA,CAAOG,CAAA,EAuB1B,GApBA,IAAI,CAAC+e,OAAO,CAAG/e,CAAA,CACf,IAAI,CAACwe,KAAK,CAAG,CAAC,CAACxe,CAAA,CAAQwe,KAAK,CAC5B,IAAI,CAACC,iBAAiB,CAAG,CAAC,CAACze,CAAA,CAAQye,iBAAiB,CAKpD,IAAI,CAACQ,GAAG,CAAGpf,CAAA,CACRY,IAAI,GACJ6C,KAAK,CAAC,OACN3B,IAAI,CAAC,KAGR,IAAI,CAACme,GAAG,CAAG,IAAI,CAACb,GAAG,CAAC3b,KAAK,CAAC,MAAM0U,GAAG,CAAC,SAAUnY,CAAK,EACjD,MAAO,KAAI,CAACkgB,UAAU,CAAClgB,CAAA,CAAMY,IAAI,GACnC,GAAG,IAAI,EAAEkX,MAAM,CAAC,SAAU9X,CAAC,EAEzB,MAAO,CAAAA,CAAA,CAAE0C,MAAM,EACjB,EAEI,CAAC,IAAI,CAACud,GAAG,CAACvd,MAAM,CAClB,KAAM,CAAAsT,SAAI,CAAU,yBAA2B,IAAI,CAACoJ,GAAG,EAGzD,IAAI,CAACK,MAAM,EACb,EA4EA,QAAS,CAAA7G,EAAe5Y,CAAW,CAAEG,CAAO,EAK1C,IAJA,GAAI,CAAAa,CAAA,CAAS,GACTC,CAAA,CAAuBjB,CAAA,CAAY+W,KAAK,GACxCzV,CAAA,CAAiBL,CAAA,CAAqBqK,GAAG,GAEtCtK,CAAA,EAAUC,CAAA,CAAqByB,MAAM,EAC1C1B,CAAA,CAASC,CAAA,CAAqBwX,KAAK,CAAC,SAAUzY,CAAe,EAC3D,MAAO,CAAAsB,CAAA,CAAe6e,UAAU,CAACngB,CAAA,CAAiBG,CAAA,CACpD,IAEAmB,CAAA,CAAiBL,CAAA,CAAqBqK,GAAG,GAG3C,MAAO,CAAAtK,CACT,EAIA,QAAS,CAAA+Y,EAAe/Z,CAAK,CAAEG,CAAO,EACpC,MAAO,IAAI,CAAAwY,CAAA,CAAM3Y,CAAA,CAAOG,CAAA,EAAS8f,GAAG,CAAC9H,GAAG,CAAC,SAAUnY,CAAI,EACrD,MAAO,CAAAA,CAAA,CAAKmY,GAAG,CAAC,SAAUnY,CAAC,EACzB,MAAO,CAAAA,CAAA,CAAE6H,KAAK,EAChB,EAAG/F,IAAI,CAAC,KAAKlB,IAAI,GAAG6C,KAAK,CAAC,IAC5B,GACF,EAKA,QAAS,CAAA8X,EAAiBvb,CAAI,CAAEG,CAAO,EAUrC,MATA,CAAA8e,EAAA,CAAM,OAAQjf,CAAA,CAAMG,CAAA,EACpBH,CAAA,CAAO6c,CAAA,CAAc7c,CAAA,CAAMG,CAAA,EAC3B8e,EAAA,CAAM,QAASjf,CAAA,EACfA,CAAA,CAAO6Z,CAAA,CAAc7Z,CAAA,CAAMG,CAAA,EAC3B8e,EAAA,CAAM,SAAUjf,CAAA,EAChBA,CAAA,CAAO0Z,CAAA,CAAe1Z,CAAA,CAAMG,CAAA,EAC5B8e,EAAA,CAAM,SAAUjf,CAAA,EAChBA,CAAA,CAAO6b,CAAA,CAAa7b,CAAA,CAAMG,CAAA,EAC1B8e,EAAA,CAAM,QAASjf,CAAA,EACRA,CACT,EAEA,QAAS,CAAAiV,EAAKjV,CAAE,EACd,MAAO,CAACA,CAAA,EAAM,GAAqB,GAArBA,CAAA,CAAGogB,WAAW,IAAc,GAAO,GAAPpgB,CAC5C,EAQA,QAAS,CAAA6Z,EAAe7Z,CAAI,CAAEG,CAAO,EACnC,MAAO,CAAAH,CAAA,CAAKY,IAAI,GAAG6C,KAAK,CAAC,OAAO0U,GAAG,CAAC,SAAUnY,CAAI,EAChD,MAAO,CAAAma,CAAA,CAAana,CAAA,CAAMG,CAAA,CAC5B,IAAG2B,IAAI,CAAC,IACV,EAEA,QAAS,CAAAqY,EAAcna,CAAI,CAAEG,CAAO,EAClC,GAAI,CAAAa,CAAA,CAAIb,CAAA,CAAQwe,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAE6B,UAAU,CAAC,CAAGvB,EAAM,CAACN,EAAA,CAAE8B,KAAK,CAAC,CAC9D,MAAO,CAAAtgB,CAAA,CAAKmE,OAAO,CAACnD,CAAA,CAAG,SAAUb,CAAC,CAAEa,CAAC,CAAEC,CAAC,CAAEK,CAAC,CAAER,CAAE,KAEzC,CAAAV,CAAA,CAoBJ,MArBA,CAAA6e,EAAA,CAAM,QAASjf,CAAA,CAAMG,CAAA,CAAGa,CAAA,CAAGC,CAAA,CAAGK,CAAA,CAAGR,CAAA,EAG7BmU,CAAA,CAAIjU,CAAA,EACNZ,CAAA,CAAM,GACG6U,CAAA,CAAIhU,CAAA,EACbb,CAAA,CAAM,KAAOY,CAAA,CAAI,UAAY,CAACA,CAAA,CAAI,GAAK,OAC9BiU,CAAA,CAAI3T,CAAA,EAEblB,CAAA,CAAM,KAAOY,CAAA,CAAI,IAAMC,CAAA,CAAI,OAASD,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,KAChDH,CAAA,EACTme,EAAA,CAAM,kBAAmBne,CAAA,EACzBV,CAAA,CAAM,KAAOY,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAAI,IAAMR,CAAA,CACrC,KAAOE,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,MAGlCb,CAAA,CAAM,KAAOY,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAC3B,KAAON,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,KAGpCge,EAAA,CAAM,eAAgB7e,CAAA,EACfA,CACT,GACF,EAQA,QAAS,CAAAyc,EAAe7c,CAAI,CAAEG,CAAO,EACnC,MAAO,CAAAH,CAAA,CAAKY,IAAI,GAAG6C,KAAK,CAAC,OAAO0U,GAAG,CAAC,SAAUnY,CAAI,EAChD,MAAO,CAAA+b,CAAA,CAAa/b,CAAA,CAAMG,CAAA,CAC5B,IAAG2B,IAAI,CAAC,IACV,EAEA,QAAS,CAAAia,EAAc/b,CAAI,CAAEG,CAAO,EAClC8e,EAAA,CAAM,QAASjf,CAAA,CAAMG,CAAA,EACrB,GAAI,CAAAa,CAAA,CAAIb,CAAA,CAAQwe,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAE+B,UAAU,CAAC,CAAGzB,EAAM,CAACN,EAAA,CAAEgC,KAAK,CAAC,CAC9D,MAAO,CAAAxgB,CAAA,CAAKmE,OAAO,CAACnD,CAAA,CAAG,SAAUb,CAAC,CAAEa,CAAC,CAAEC,CAAC,CAAEK,CAAC,CAAER,CAAE,KAEzC,CAAAV,CAAA,CA2CJ,MA5CA,CAAA6e,EAAA,CAAM,QAASjf,CAAA,CAAMG,CAAA,CAAGa,CAAA,CAAGC,CAAA,CAAGK,CAAA,CAAGR,CAAA,EAG7BmU,CAAA,CAAIjU,CAAA,EACNZ,CAAA,CAAM,GACG6U,CAAA,CAAIhU,CAAA,EACbb,CAAA,CAAM,KAAOY,CAAA,CAAI,UAAY,CAACA,CAAA,CAAI,GAAK,OAC9BiU,CAAA,CAAI3T,CAAA,EAEXlB,CAAA,CADE,GAAM,GAANY,CAAA,CACI,KAAOA,CAAA,CAAI,IAAMC,CAAA,CAAI,OAASD,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,KAEnD,KAAOD,CAAA,CAAI,IAAMC,CAAA,CAAI,QAAU,CAACD,CAAA,CAAI,GAAK,OAExCF,CAAA,EACTme,EAAA,CAAM,kBAAmBne,CAAA,EAGrBV,CAAA,CAFA,GAAM,GAANY,CAAA,CACE,GAAM,GAANC,CAAA,CACI,KAAOD,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAAI,IAAMR,CAAA,CACrC,KAAOE,CAAA,CAAI,IAAMC,CAAA,CAAI,KAAO,CAACK,CAAA,CAAI,GAEjC,KAAON,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAAI,IAAMR,CAAA,CACrC,KAAOE,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,KAG9B,KAAOD,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAAI,IAAMR,CAAA,CACrC,MAAQ,CAACE,CAAA,CAAI,GAAK,SAG1Bie,EAAA,CAAM,SAGF7e,CAAA,CAFA,GAAM,GAANY,CAAA,CACE,GAAM,GAANC,CAAA,CACI,KAAOD,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAC3B,KAAON,CAAA,CAAI,IAAMC,CAAA,CAAI,KAAO,CAACK,CAAA,CAAI,GAEjC,KAAON,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAC3B,KAAON,CAAA,CAAI,KAAO,CAACC,CAAA,CAAI,GAAK,KAG9B,KAAOD,CAAA,CAAI,IAAMC,CAAA,CAAI,IAAMK,CAAA,CAC3B,MAAQ,CAACN,CAAA,CAAI,GAAK,QAI5Bie,EAAA,CAAM,eAAgB7e,CAAA,EACfA,CACT,GACF,EAEA,QAAS,CAAAsZ,EAAgB1Z,CAAI,CAAEG,CAAO,EAEpC,MADA,CAAA8e,EAAA,CAAM,iBAAkBjf,CAAA,CAAMG,CAAA,EACvBH,CAAA,CAAKyD,KAAK,CAAC,OAAO0U,GAAG,CAAC,SAAUnY,CAAI,EACzC,MAAO,CAAAoa,CAAA,CAAcpa,CAAA,CAAMG,CAAA,CAC7B,IAAG2B,IAAI,CAAC,IACV,EAEA,QAAS,CAAAsY,EAAepa,CAAI,CAAEG,CAAO,EACnCH,CAAA,CAAOA,CAAA,CAAKY,IAAI,GAChB,GAAI,CAAAI,CAAA,CAAIb,CAAA,CAAQwe,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAEiC,WAAW,CAAC,CAAG3B,EAAM,CAACN,EAAA,CAAEkC,MAAM,CAAC,CAChE,MAAO,CAAA1gB,CAAA,CAAKmE,OAAO,CAACnD,CAAA,CAAG,SAAUA,CAAG,CAAEC,CAAI,CAAEK,CAAC,CAAER,CAAC,CAAEV,CAAC,CAAEuB,CAAE,EACrDsd,EAAA,CAAM,SAAUjf,CAAA,CAAMgB,CAAA,CAAKC,CAAA,CAAMK,CAAA,CAAGR,CAAA,CAAGV,CAAA,CAAGuB,CAAA,EAC1C,GAAI,CAAArB,CAAA,CAAK2U,CAAA,CAAI3T,CAAA,EACTjB,CAAA,CAAKC,CAAA,EAAM2U,CAAA,CAAInU,CAAA,EACfH,CAAA,CAAKN,CAAA,EAAM4U,CAAA,CAAI7U,CAAA,EACfL,CAAA,CAAOY,CAAA,CA4DX,MA1Da,MAATM,CAAA,EAAgBlB,CAAA,GAClBkB,CAAA,CAAO,EADT,EAMAU,CAAA,CAAKxB,CAAA,CAAQye,iBAAiB,CAAG,KAAO,GAEpCte,CAAA,CAGAU,CAAA,CAFE,GAAS,GAATC,CAAA,EAAgB,GAAS,GAATA,CAAA,CAEZ,WAGA,IAECA,CAAA,EAAQlB,CAAA,EAGbM,CAAA,GACFS,CAAA,CAAI,GAENV,CAAA,CAAI,EAEA,GAAS,GAATa,CAAA,EAIFA,CAAA,CAAO,KACHZ,CAAA,EACFiB,CAAA,CAAI,CAACA,CAAA,CAAI,EACTR,CAAA,CAAI,GAGJA,CAAA,CAAI,CAACA,CAAA,CAAI,EACTV,CAAA,CAAI,GAEY,OAATa,CAAA,GAGTA,CAAA,CAAO,IACHZ,CAAA,CACFiB,CAAA,CAAI,CAACA,CAAA,CAAI,EAETR,CAAA,CAAI,CAACA,CAAA,CAAI,GAIbE,CAAA,CAAMC,CAAA,CAAOK,CAAA,CAAI,IAAMR,CAAA,CAAI,IAAMV,CAAA,CAAIuB,CAAA,EAC5BtB,CAAA,CACTW,CAAA,CAAM,KAAOM,CAAA,CAAI,OAASK,CAAA,CAAK,MAAQ,CAACL,CAAA,CAAI,GAAK,OAASK,CAAA,CACjDhB,CAAA,GACTK,CAAA,CAAM,KAAOM,CAAA,CAAI,IAAMR,CAAA,CAAI,KAAOa,CAAA,CAChC,KAAOL,CAAA,CAAI,KAAO,CAACR,CAAA,CAAI,GAAK,KAAOa,CAFhC,EAKPsd,EAAA,CAAM,gBAAiBje,CAAA,EAEhBA,CACT,GACF,EAIA,QAAS,CAAA6a,EAAc7b,CAAI,CAAEG,CAAO,EAGlC,MAFA,CAAA8e,EAAA,CAAM,eAAgBjf,CAAA,CAAMG,CAAA,EAErBH,CAAA,CAAKY,IAAI,GAAGuD,OAAO,CAAC2a,EAAM,CAACN,EAAA,CAAEmC,IAAI,CAAC,CAAE,GAC7C,EAOA,QAAS,CAAA7F,EAAe9a,CAAE,CACxBG,CAAI,CAAEa,CAAE,CAAEC,CAAE,CAAEK,CAAE,CAAER,CAAG,CAAEV,CAAE,CACzBuB,CAAE,CAAErB,CAAE,CAAED,CAAE,CAAEM,CAAE,CAAEZ,CAAG,CAAEG,CAAE,EAuBvB,MAAQ,EArBNC,CAAA,CADE8U,CAAA,CAAIjU,CAAA,EACC,GACEiU,CAAA,CAAIhU,CAAA,EACN,KAAOD,CAAA,CAAK,OACViU,CAAA,CAAI3T,CAAA,EACN,KAAON,CAAA,CAAK,IAAMC,CAAA,CAAK,KAEvB,KAAOd,CAAA,EAeD,KAXbwB,CAAA,CADEsT,CAAA,CAAI3U,CAAA,EACD,GACI2U,CAAA,CAAI5U,CAAA,EACR,KAAO,CAACC,CAAA,CAAK,GAAK,OACd2U,CAAA,CAAItU,CAAA,EACR,IAAML,CAAA,CAAK,KAAO,CAACD,CAAA,CAAK,GAAK,KACzBN,CAAA,CACJ,KAAOO,CAAA,CAAK,IAAMD,CAAA,CAAK,IAAMM,CAAA,CAAK,IAAMZ,CAAA,CAExC,KAAO4B,CAAA,CAGO,EAAIf,IAAI,EAC/B,EAwBA,QAAS,CAAAga,EAAS5a,CAAG,CAAEG,CAAO,CAAEa,CAAO,EACrC,IAAK,GAAI,CAAAC,CAAA,CAAI,EAAGA,CAAA,CAAIjB,CAAA,CAAI0C,MAAM,CAAEzB,CAAA,GAC9B,GAAI,CAACjB,CAAG,CAACiB,CAAA,CAAE,CAAC8D,IAAI,CAAC5E,CAAA,EACf,MAAO,GAIX,GAAIA,CAAA,CAAQof,UAAU,CAAC7c,MAAM,EAAI,CAAC1B,CAAA,CAAQ4d,iBAAiB,CAAE,CAM3D,IAAK3d,CAAA,CAAI,EAAGA,CAAA,CAAIjB,CAAA,CAAI0C,MAAM,CAAEzB,CAAA,GAE1B,GADAge,EAAA,CAAMjf,CAAG,CAACiB,CAAA,CAAE,CAAC6e,MAAM,EACf9f,CAAG,CAACiB,CAAA,CAAE,CAAC6e,MAAM,GAAKC,EAAA,EAIlB/f,CAAG,CAACiB,CAAA,CAAE,CAAC6e,MAAM,CAACP,UAAU,CAAC7c,MAAM,CAAG,EAAG,CACvC,GAAI,CAAApB,CAAA,CAAUtB,CAAG,CAACiB,CAAA,CAAE,CAAC6e,MAAM,CAC3B,GAAIxe,CAAA,CAAQwC,KAAK,GAAK3D,CAAA,CAAQ2D,KAAK,EAC/BxC,CAAA,CAAQyC,KAAK,GAAK5D,CAAA,CAAQ4D,KAAK,EAC/BzC,CAAA,CAAQ+d,KAAK,GAAKlf,CAAA,CAAQkf,KAAK,CACjC,MAAO,EAEX,EAIF,MAAO,EACT,EAEA,MAAO,EACT,EAGA,QAAS,CAAA1F,EAAW3Z,CAAO,CAAEG,CAAK,CAAEa,CAAO,EACzC,GAAI,CACFb,CAAA,CAAQ,GAAI,CAAAwY,CAAA,CAAMxY,CAAA,CAAOa,CAAA,CAC3B,EAAE,MAAOhB,CAAA,CAAI,CACX,MAAO,EACT,EACA,MAAO,CAAAG,CAAA,CAAM4E,IAAI,CAAC/E,CAAA,CACpB,EAGA,QAAS,CAAAka,EAAela,CAAQ,CAAEG,CAAK,CAAEa,CAAO,EAC9C,GAAI,CAAAC,CAAA,CAAM,KACNK,CAAA,CAAQ,KACZ,GAAI,CACF,GAAI,CAAAR,CAAA,CAAW,GAAI,CAAA6X,CAAA,CAAMxY,CAAA,CAAOa,CAAA,CAClC,EAAE,MAAOhB,CAAA,CAAI,CACX,MAAO,KACT,EAWA,MAVA,CAAAA,CAAA,CAASiY,OAAO,CAAC,SAAUjY,CAAC,EACtBc,CAAA,CAASiE,IAAI,CAAC/E,CAAA,IAEZ,CAACiB,CAAA,EAAO,CAAqB,IAArBK,CAAA,CAAMse,OAAO,CAAC5f,CAAA,CAAO,IAG/BsB,CAAA,CAAQ,GAAI,CAAAK,CAAA,CADZV,CAAA,CAAMjB,CAAA,CACkBgB,CAAA,CAAxB,CAGN,IACOC,CACT,EAGA,QAAS,CAAAma,EAAepb,CAAQ,CAAEG,CAAK,CAAEa,CAAO,EAC9C,GAAI,CAAAC,CAAA,CAAM,KACNK,CAAA,CAAQ,KACZ,GAAI,CACF,GAAI,CAAAR,CAAA,CAAW,GAAI,CAAA6X,CAAA,CAAMxY,CAAA,CAAOa,CAAA,CAClC,EAAE,MAAOhB,CAAA,CAAI,CACX,MAAO,KACT,EAWA,MAVA,CAAAA,CAAA,CAASiY,OAAO,CAAC,SAAUjY,CAAC,EACtBc,CAAA,CAASiE,IAAI,CAAC/E,CAAA,IAEZ,CAACiB,CAAA,EAAO,CAAqB,GAArBK,CAAA,CAAMse,OAAO,CAAC5f,CAAA,CAAO,IAG/BsB,CAAA,CAAQ,GAAI,CAAAK,CAAA,CADZV,CAAA,CAAMjB,CAAA,CACkBgB,CAAA,CAAxB,CAGN,IACOC,CACT,EAGA,QAAS,CAAA0a,EAAY3b,CAAK,CAAEG,CAAK,EAC/BH,CAAA,CAAQ,GAAI,CAAA2Y,CAAA,CAAM3Y,CAAA,CAAOG,CAAA,EAEzB,GAAI,CAAAa,CAAA,CAAS,GAAI,CAAAW,CAAA,CAAO,SACxB,GAAI3B,CAAA,CAAM+E,IAAI,CAAC/D,CAAA,IAIfA,CAAA,CAAS,GAAI,CAAAW,CAAA,CAAO,WAChB3B,CAAA,CAAM+E,IAAI,CAAC/D,CAAA,GAJb,MAAO,CAAAA,CAAA,CAQTA,CAAA,CAAS,KACT,IAAK,GAAI,CAAAC,CAAA,CAAI,EAAGA,CAAA,CAAIjB,CAAA,CAAMigB,GAAG,CAACvd,MAAM,CAAE,EAAEzB,CAAA,CAGtCjB,CAFkB,CAAMigB,GAAG,CAAChf,CAAA,CAAE,CAElBgX,OAAO,CAAC,SAAUjY,CAAU,EAEtC,GAAI,CAAAG,CAAA,CAAU,GAAI,CAAAwB,CAAA,CAAO3B,CAAA,CAAW8f,MAAM,CAACre,OAAO,EAClD,OAAQzB,CAAA,CAAWggB,QAAQ,EACzB,IAAK,IACC,CAA8B,GAA9B7f,CAAA,CAAQof,UAAU,CAAC7c,MAAM,CAC3BvC,CAAA,CAAQkf,KAAK,GAEblf,CAAA,CAAQof,UAAU,CAAC3T,IAAI,CAAC,GAE1BzL,CAAA,CAAQif,GAAG,CAAGjf,CAAA,CAAQsf,MAAM,EAE9B,KAAK,GACL,IAAK,KACC,EAACze,CAAA,EAAUiD,CAAA,CAAGjD,CAAA,CAAQb,CAAA,KACxBa,CAAA,CAASb,CADX,EAGA,MACF,IAAK,IACL,IAAK,KAEH,MAEF,QACE,KAAM,CAAA0C,KAAI,CAAM,yBAA2B7C,CAAA,CAAWggB,QAAQ,CAClE,EACF,SAGF,CAAAhf,CAAI,EAAUhB,CAAA,CAAM+E,IAAI,CAAC/D,CAAA,EAChBA,CAAA,CAGF,IACT,EAGA,QAAS,CAAAsZ,EAAYta,CAAK,CAAEG,CAAO,EACjC,GAAI,CAGF,MAAO,IAAI,CAAAwY,CAAA,CAAM3Y,CAAA,CAAOG,CAAA,EAASygB,KAAK,EAAI,GAC5C,EAAE,MAAO5gB,CAAA,CAAI,CACX,MAAO,KACT,EACF,CAIA,QAAS,CAAA6gB,EAAK7gB,CAAO,CAAEG,CAAK,CAAEa,CAAO,EACnC,MAAO,CAAA8f,CAAA,CAAQ9gB,CAAA,CAASG,CAAA,CAAO,IAAKa,CAAA,CACtC,EAIA,QAAS,CAAA+f,EAAK/gB,CAAO,CAAEG,CAAK,CAAEa,CAAO,EACnC,MAAO,CAAA8f,CAAA,CAAQ9gB,CAAA,CAASG,CAAA,CAAO,IAAKa,CAAA,CACtC,EAGA,QAAS,CAAA8f,EAAS9gB,CAAO,CAAEG,CAAK,CAAEa,CAAI,CAAEC,CAAO,EAK7C,OAJAjB,CAAA,CAAU,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAASiB,CAAA,EAC9Bd,CAAA,CAAQ,GAAI,CAAAwY,CAAA,CAAMxY,CAAA,CAAOc,CAAA,EAGjBD,CAAA,EACN,IAAK,IACHM,CAAA,CAAO2C,CAAA,CACPnD,CAAA,CAAQuX,CAAA,CACRjY,CAAA,CAAOgY,CAAA,CACP9X,CAAA,CAAO,IACPD,CAAA,CAAQ,KACR,MACF,IAAK,IACHiB,CAAA,CAAO8W,CAAA,CACPtX,CAAA,CAAQ4X,CAAA,CACRtY,CAAA,CAAO6D,CAAA,CACP3D,CAAA,CAAO,IACPD,CAAA,CAAQ,KACR,MACF,QACE,KAAM,CAAA2V,SAAI,CAAU,wCACxB,EAGA,GAAI2D,CAAA,CAAU3Z,CAAA,CAASG,CAAA,CAAOc,CAAA,EAC5B,MAAO,GAMT,IAAK,GA5BD,CAAAK,CAAA,CAAMR,CAAA,CAAOV,CAAA,CAAME,CAAA,CAAMD,CAAA,CA4BpBM,CAAA,CAAI,EAAGA,CAAA,CAAIR,CAAA,CAAM8f,GAAG,CAACvd,MAAM,CAAE,EAAE/B,CAAA,CAAG,CACzC,GAAI,CAAAZ,CAAA,CAAcI,CAAA,CAAM8f,GAAG,CAACtf,CAAA,CAAE,CAE1BT,CAAA,CAAO,KACP2B,CAAA,CAAM,KAiBV,GAfA9B,CAAA,CAAYkY,OAAO,CAAC,SAAUjY,CAAU,EAClCA,CAAA,CAAW8f,MAAM,GAAKC,EAAA,GACxB/f,CAAA,CAAa,GAAI,CAAAkY,CAAA,CAAW,UAD9B,EAGAhY,CAAA,CAAOA,CAAA,EAAQF,CAAA,CACf6B,CAAA,CAAMA,CAAA,EAAO7B,CAAA,CACTsB,CAAA,CAAKtB,CAAA,CAAW8f,MAAM,CAAE5f,CAAA,CAAK4f,MAAM,CAAE7e,CAAA,EACvCf,CAAA,CAAOF,CAAA,CACEI,CAAA,CAAKJ,CAAA,CAAW8f,MAAM,CAAEje,CAAA,CAAIie,MAAM,CAAE7e,CAAA,IAC7CY,CAAA,CAAM7B,CADD,CAGT,IAIIE,CAAA,CAAK8f,QAAQ,GAAK1f,CAAA,EAAQJ,CAAA,CAAK8f,QAAQ,GAAK3f,CAAA,EAM3C,EAACwB,CAAA,CAAIme,QAAQ,EAAIne,CAAA,CAAIme,QAAQ,GAAK1f,CAAA,GACnCQ,CAAA,CAAMd,CAAA,CAAS6B,CAAA,CAAIie,MAAM,GAElBje,CAAA,CAAIme,QAAQ,GAAK3f,CAAA,EAASD,CAAA,CAAKJ,CAAA,CAAS6B,CAAA,CAAIie,MAAM,EAR3D,MAAO,EAWX,EACA,MAAO,EACT,EAGA,QAAS,CAAAkB,EAAYhhB,CAAO,CAAEG,CAAO,EACnC,GAAI,CAAAa,CAAA,CAASM,CAAA,CAAMtB,CAAA,CAASG,CAAA,EAC5B,MAAO,CAAAa,CAAA,EAAWA,CAAA,CAAOue,UAAU,CAAC7c,MAAM,CAAI1B,CAAA,CAAOue,UAAU,CAAG,IACpE,EAGA,QAAS,CAAA0B,EAAYjhB,CAAE,CAAEG,CAAE,CAAEa,CAAO,EAGlC,MAFA,CAAAhB,CAAA,CAAK,GAAI,CAAA2Y,CAAA,CAAM3Y,CAAA,CAAIgB,CAAA,EACnBb,CAAA,CAAK,GAAI,CAAAwY,CAAA,CAAMxY,CAAA,CAAIa,CAAA,EACZhB,CAAA,CAAGmgB,UAAU,CAAChgB,CAAA,CACvB,EAGA,QAAS,CAAA+gB,EAAQlhB,CAAO,CAAEG,CAAO,EAC/B,GAAIH,CAAA,WAAmB,CAAA2B,CAAA,CACrB,MAAO,CAAA3B,CAAA,CAOT,GAJuB,UAAnB,MAAO,CAAAA,CAAA,GACTA,CAAA,EAAU,EADZ,EAII,QAAmB,EAAnB,MAAO,CAAAA,CAAA,CACT,MAAO,MAKT,GAYM,CAAAgB,CAAA,CAZFC,CAAA,CAAQ,KACZ,GAAK,CAHLd,CAAA,CAAUA,CAAA,EAAW,CAAC,GAGTghB,GAAG,CAET,CAUL,KAAO,CAACngB,CAAA,CAAO8d,EAAM,CAACN,EAAA,CAAE4C,SAAS,CAAC,CAAClI,IAAI,CAAClZ,CAAA,KACrC,CAACiB,CAAA,EAASA,CAAA,CAAMogB,KAAK,CAAGpgB,CAAK,CAAC,EAAE,CAACyB,MAAM,GAAK1C,CAAA,CAAQ0C,MAAK,CAAL,EAEhDzB,CAAA,EACDD,CAAA,CAAKqgB,KAAK,CAAGrgB,CAAI,CAAC,EAAE,CAAC0B,MAAM,GAAKzB,CAAA,CAAMogB,KAAK,CAAGpgB,CAAK,CAAC,EAAE,CAACyB,MAAM,GAC/DzB,CAAA,CAAQD,CAFV,EAIA8d,EAAM,CAACN,EAAA,CAAE4C,SAAS,CAAC,CAACE,SAAS,CAAGtgB,CAAA,CAAKqgB,KAAK,CAAGrgB,CAAI,CAAC,EAAE,CAAC0B,MAAM,CAAG1B,CAAI,CAAC,EAAE,CAAC0B,MAAM,CAG9Eoc,EAAM,CAACN,EAAA,CAAE4C,SAAS,CAAC,CAACE,SAAS,CAAG,EAClC,MAtBE,CAAArgB,CAAA,CAAQjB,CAAA,CAAQmf,KAAK,CAACL,EAAM,CAACN,EAAA,CAAE+C,MAAM,CAAC,QAwBxC,KAAc,GAAVtgB,CAAA,CACK,KAGFK,CAAA,CAAML,CAAK,CAAC,EAAE,CACnB,KAAOA,CAAK,CAAC,EAAE,EAAI,KACnB,KAAOA,CAAK,CAAC,EAAE,EAAI,KAAMd,CAAA,CAC7B,EA1mDAA,CAAA,CAAUH,CAAA,CAAOsF,OAAO,CAAG3D,CAAA,CAQzBsd,EAAA,CAJE,QAAmB,EAAnB,MAAO,CAAAze,OAAA,EACPA,OAAA,CAAQC,GAAG,EACXD,OAAA,CAAQC,GAAG,CAAC+gB,UAAU,EACtB,cAAczc,IAAI,CAACvE,OAAA,CAAQC,GAAG,CAAC+gB,UAAU,EACnC,WACN,GAAI,CAAAxhB,CAAA,CAAO+X,KAAA,CAAMpD,SAAS,CAACoC,KAAK,CAACzP,IAAI,CAACma,SAAA,CAAW,GACjDzhB,CAAA,CAAK4b,OAAO,CAAC,UACb8F,OAAA,CAAQC,GAAG,CAACC,KAAK,CAACF,OAAA,CAAS1hB,CAAA,CAC7B,GAEQ,WAAa,EAKvBG,CAAA,CAAQ0hB,mBAAmB,CAAG,QAE1BhD,EAAA,CAAa,IACbS,EAAA,CAAmBvW,MAAA,CAAO+Y,gBAAgB,EACjB,iBAGzBC,EAAA,CAA4B,GAE5BC,EAAA,CAAwBnD,EAAA,CAAa,EAGrCoD,EAAA,CAAK9hB,CAAA,CAAQ+hB,EAAE,CAAG,EAAE,CACpBpD,EAAA,CAAS3e,CAAA,CAAQgiB,MAAM,CAAG,EAAE,CAC5BC,EAAA,CAAMjiB,CAAA,CAAQkiB,GAAG,CAAG,EAAE,CACtB7D,EAAA,CAAIre,CAAA,CAAQmiB,MAAM,CAAG,CAAC,EACtB7D,EAAA,CAAI,EAcJC,EAAA,CAAwB,CAC1B,CAAC,MAAO,EAAE,CACV,CAAC,MAAOG,EAAA,CAAW,CACnB,CAXE0D,EAAA,CAAmB,eAWFP,EAAA,CAAsB,CAC1C,CAmBDhhB,CAAA,CAAI,qBACJohB,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAAG,cAC3BxhB,CAAA,CAAI,0BACJohB,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CAAG,OAMhCzhB,CAAA,CAAI,wBACJohB,EAAG,CAAC5D,EAAA,CAAEkE,oBAAoB,CAAC,CAAG,gBAAkBH,EAAA,CAAmB,IAKnEvhB,CAAA,CAAI,eACJohB,EAAG,CAAC5D,EAAA,CAAEmE,WAAW,CAAC,CAAG,IAAMP,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAA9B,QACIJ,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAD5B,QAEIJ,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAAG,IAEpDxhB,CAAA,CAAI,oBACJohB,EAAG,CAAC5D,EAAA,CAAEoE,gBAAgB,CAAC,CAAG,IAAMR,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CAAnC,QACIL,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CADjC,QAEIL,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CAAG,IAK9DzhB,CAAA,CAAI,wBACJohB,EAAG,CAAC5D,EAAA,CAAEqE,oBAAoB,CAAC,CAAG,MAAQT,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAClC,IAAMJ,EAAG,CAAC5D,EAAA,CAAEkE,oBAAoB,CAAC,CAAG,IAEhE1hB,CAAA,CAAI,6BACJohB,EAAG,CAAC5D,EAAA,CAAEsE,yBAAyB,CAAC,CAAG,MAAQV,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CACvC,IAAML,EAAG,CAAC5D,EAAA,CAAEkE,oBAAoB,CAAC,CAAG,IAMrE1hB,CAAA,CAAI,cACJohB,EAAG,CAAC5D,EAAA,CAAEuE,UAAU,CAAC,CAAG,QAAUX,EAAG,CAAC5D,EAAA,CAAEqE,oBAAoB,CAAC,CACvC,SAAWT,EAAG,CAAC5D,EAAA,CAAEqE,oBAAoB,CAAC,CAAG,OAE3D7hB,CAAA,CAAI,mBACJohB,EAAG,CAAC5D,EAAA,CAAEwE,eAAe,CAAC,CAAG,SAAWZ,EAAG,CAAC5D,EAAA,CAAEsE,yBAAyB,CAAC,CAC7C,SAAWV,EAAG,CAAC5D,EAAA,CAAEsE,yBAAyB,CAAC,CAAG,OAKrE9hB,CAAA,CAAI,mBACJohB,EAAG,CAAC5D,EAAA,CAAEyE,eAAe,CAAC,CAAGV,EAAA,CAAmB,IAM5CvhB,CAAA,CAAI,SACJohB,EAAG,CAAC5D,EAAA,CAAE0E,KAAK,CAAC,CAAG,UAAYd,EAAG,CAAC5D,EAAA,CAAEyE,eAAe,CAAC,CACpC,SAAWb,EAAG,CAAC5D,EAAA,CAAEyE,eAAe,CAAC,CAAG,OAWjDjiB,CAAA,CAAI,QACJA,CAAA,CAAI,aACJohB,EAAG,CAAC5D,EAAA,CAAE2E,SAAS,CAAC,CAAG,KAAOf,EAAG,CAAC5D,EAAA,CAAEmE,WAAW,CAAC,CAC1BP,EAAG,CAAC5D,EAAA,CAAEuE,UAAU,CAAC,CAAG,IACpBX,EAAG,CAAC5D,EAAA,CAAE0E,KAAK,CAAC,CAAG,IAEjCd,EAAG,CAAC5D,EAAA,CAAEQ,IAAI,CAAC,CAAG,IAAMoD,EAAG,CAAC5D,EAAA,CAAE2E,SAAS,CAAC,CAAG,IAKvCniB,CAAA,CAAI,cACJohB,EAAG,CAAC5D,EAAA,CAAE4E,UAAU,CAAC,CAAG,WAAahB,EAAG,CAAC5D,EAAA,CAAEoE,gBAAgB,CAAC,CACtCR,EAAG,CAAC5D,EAAA,CAAEwE,eAAe,CAAC,CAAG,IACzBZ,EAAG,CAAC5D,EAAA,CAAE0E,KAAK,CAAC,CAAG,IAEjCliB,CAAA,CAAI,SACJohB,EAAG,CAAC5D,EAAA,CAAEO,KAAK,CAAC,CAAG,IAAMqD,EAAG,CAAC5D,EAAA,CAAE4E,UAAU,CAAC,CAAG,IAEzCpiB,CAAA,CAAI,QACJohB,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CAAG,eAKdriB,CAAA,CAAI,yBACJohB,EAAG,CAAC5D,EAAA,CAAE8E,qBAAqB,CAAC,CAAGlB,EAAG,CAAC5D,EAAA,CAAEiE,sBAAsB,CAAC,CAAG,WAC/DzhB,CAAA,CAAI,oBACJohB,EAAG,CAAC5D,EAAA,CAAE+E,gBAAgB,CAAC,CAAGnB,EAAG,CAAC5D,EAAA,CAAEgE,iBAAiB,CAAC,CAAG,WAErDxhB,CAAA,CAAI,eACJohB,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAAG,YAAcpB,EAAG,CAAC5D,EAAA,CAAE+E,gBAAgB,CAAC,CAArC,WACUnB,EAAG,CAAC5D,EAAA,CAAE+E,gBAAgB,CAAC,CADjC,WAEUnB,EAAG,CAAC5D,EAAA,CAAE+E,gBAAgB,CAAC,CAFjC,OAGMnB,EAAG,CAAC5D,EAAA,CAAEuE,UAAU,CAAC,CAAG,KAC5BX,EAAG,CAAC5D,EAAA,CAAE0E,KAAK,CAAC,CAJV,QAOrBliB,CAAA,CAAI,oBACJohB,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAAG,YAAcrB,EAAG,CAAC5D,EAAA,CAAE8E,qBAAqB,CAAC,CAA1C,WACUlB,EAAG,CAAC5D,EAAA,CAAE8E,qBAAqB,CAAC,CADtC,WAEUlB,EAAG,CAAC5D,EAAA,CAAE8E,qBAAqB,CAAC,CAFtC,OAGMlB,EAAG,CAAC5D,EAAA,CAAEwE,eAAe,CAAC,CAAG,KACjCZ,EAAG,CAAC5D,EAAA,CAAE0E,KAAK,CAAC,CAJV,QAO1BliB,CAAA,CAAI,UACJohB,EAAG,CAAC5D,EAAA,CAAEkC,MAAM,CAAC,CAAG,IAAM0B,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CAAG,OAASjB,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAAG,IAClExiB,CAAA,CAAI,eACJohB,EAAG,CAAC5D,EAAA,CAAEiC,WAAW,CAAC,CAAG,IAAM2B,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CAAG,OAASjB,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAAG,IAI5EziB,CAAA,CAAI,UACJohB,EAAG,CAAC5D,EAAA,CAAE+C,MAAM,CAAC,CAAG,oBACUQ,EAAA,CADV,kBAEgBA,EAAA,CAFhB,oBAGgBA,EAAA,CAHhB,mBAKhB/gB,CAAA,CAAI,aACJihB,EAAE,CAACzD,EAAA,CAAE4C,SAAS,CAAC,CAAGsC,MAAI,CAAOtB,EAAG,CAAC5D,EAAA,CAAE+C,MAAM,CAAC,CAAE,KAC5CzC,EAAM,CAACN,EAAA,CAAE4C,SAAS,CAAC,CAAGsC,MAAI,CAAOziB,CAAA,CAAWmhB,EAAG,CAAC5D,EAAA,CAAE+C,MAAM,CAAC,EAAG,KAI5DvgB,CAAA,CAAI,aACJohB,EAAG,CAAC5D,EAAA,CAAEmF,SAAS,CAAC,CAAG,UAEnB3iB,CAAA,CAAI,aACJohB,EAAG,CAAC5D,EAAA,CAAEoF,SAAS,CAAC,CAAG,SAAWxB,EAAG,CAAC5D,EAAA,CAAEmF,SAAS,CAAC,CAAG,OACjD1B,EAAE,CAACzD,EAAA,CAAEoF,SAAS,CAAC,CAAGF,MAAI,CAAOtB,EAAG,CAAC5D,EAAA,CAAEoF,SAAS,CAAC,CAAE,KAC/C9E,EAAM,CAACN,EAAA,CAAEoF,SAAS,CAAC,CAAGF,MAAI,CAAOziB,CAAA,CAAWmhB,EAAG,CAAC5D,EAAA,CAAEoF,SAAS,CAAC,EAAG,KAC3DC,EAAA,CAAmB,MAEvB7iB,CAAA,CAAI,SACJohB,EAAG,CAAC5D,EAAA,CAAE8B,KAAK,CAAC,CAAG,IAAM8B,EAAG,CAAC5D,EAAA,CAAEmF,SAAS,CAAC,CAAGvB,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAAG,IAC7DxiB,CAAA,CAAI,cACJohB,EAAG,CAAC5D,EAAA,CAAE6B,UAAU,CAAC,CAAG,IAAM+B,EAAG,CAAC5D,EAAA,CAAEmF,SAAS,CAAC,CAAGvB,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAAG,IAIvEziB,CAAA,CAAI,aACJohB,EAAG,CAAC5D,EAAA,CAAEsF,SAAS,CAAC,CAAG,UAEnB9iB,CAAA,CAAI,aACJohB,EAAG,CAAC5D,EAAA,CAAEuF,SAAS,CAAC,CAAG,SAAW3B,EAAG,CAAC5D,EAAA,CAAEsF,SAAS,CAAC,CAAG,OACjD7B,EAAE,CAACzD,EAAA,CAAEuF,SAAS,CAAC,CAAGL,MAAI,CAAOtB,EAAG,CAAC5D,EAAA,CAAEuF,SAAS,CAAC,CAAE,KAC/CjF,EAAM,CAACN,EAAA,CAAEuF,SAAS,CAAC,CAAGL,MAAI,CAAOziB,CAAA,CAAWmhB,EAAG,CAAC5D,EAAA,CAAEuF,SAAS,CAAC,EAAG,KAC3DC,EAAA,CAAmB,MAEvBhjB,CAAA,CAAI,SACJohB,EAAG,CAAC5D,EAAA,CAAEgC,KAAK,CAAC,CAAG,IAAM4B,EAAG,CAAC5D,EAAA,CAAEsF,SAAS,CAAC,CAAG1B,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAAG,IAC7DxiB,CAAA,CAAI,cACJohB,EAAG,CAAC5D,EAAA,CAAE+B,UAAU,CAAC,CAAG,IAAM6B,EAAG,CAAC5D,EAAA,CAAEsF,SAAS,CAAC,CAAG1B,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAAG,IAGvEziB,CAAA,CAAI,mBACJohB,EAAG,CAAC5D,EAAA,CAAEyF,eAAe,CAAC,CAAG,IAAM7B,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CAAG,QAAUjB,EAAG,CAAC5D,EAAA,CAAE4E,UAAU,CAAC,CAAG,QAC3EpiB,CAAA,CAAI,cACJohB,EAAG,CAAC5D,EAAA,CAAE0F,UAAU,CAAC,CAAG,IAAM9B,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CAAG,QAAUjB,EAAG,CAAC5D,EAAA,CAAE2E,SAAS,CAAC,CAAG,QAIrEniB,CAAA,CAAI,kBACJohB,EAAG,CAAC5D,EAAA,CAAE2F,cAAc,CAAC,CAAG,SAAW/B,EAAG,CAAC5D,EAAA,CAAE6E,IAAI,CAAC,CACxB,QAAUjB,EAAG,CAAC5D,EAAA,CAAE4E,UAAU,CAAC,CAAG,IAAMhB,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAAG,IAG/EvB,EAAE,CAACzD,EAAA,CAAE2F,cAAc,CAAC,CAAGT,MAAI,CAAOtB,EAAG,CAAC5D,EAAA,CAAE2F,cAAc,CAAC,CAAE,KACzDrF,EAAM,CAACN,EAAA,CAAE2F,cAAc,CAAC,CAAGT,MAAI,CAAOziB,CAAA,CAAWmhB,EAAG,CAAC5D,EAAA,CAAE2F,cAAc,CAAC,EAAG,KACrEC,EAAA,CAAwB,SAM5BpjB,CAAA,CAAI,eACJohB,EAAG,CAAC5D,EAAA,CAAE6F,WAAW,CAAC,CAAG,SAAWjC,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAA7B,cAEIpB,EAAG,CAAC5D,EAAA,CAAEgF,WAAW,CAAC,CAFtB,SAKrBxiB,CAAA,CAAI,oBACJohB,EAAG,CAAC5D,EAAA,CAAE8F,gBAAgB,CAAC,CAAG,SAAWlC,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAAlC,cAEIrB,EAAG,CAAC5D,EAAA,CAAEiF,gBAAgB,CAAC,CAF3B,SAM1BziB,CAAA,CAAI,QACJohB,EAAG,CAAC5D,EAAA,CAAEmC,IAAI,CAAC,CAAG,kBAId,IAAK,GAnRD,CAAA1B,EAAA,CAmBAJ,EAAA,CACAS,EAAA,CAIAyC,EAAA,CAEAC,EAAA,CAGAC,EAAA,CACAnD,EAAA,CACAsD,EAAA,CACA5D,EAAA,CACAC,EAAA,CAMA8D,EAAA,CAQA7D,EAAA,CAsKAmF,EAAA,CAgBAG,EAAA,CAsBAI,EAAA,CA0YAzE,EAAA,CAqLAI,EAAA,CAviBKwE,EAAA,CAAI,EAAGA,EAAA,CAAI9F,EAAA,CAAG8F,EAAA,GACrBtF,EAAA,CAAMsF,EAAA,CAAGnC,EAAG,CAACmC,EAAA,CAAE,EACVtC,EAAE,CAACsC,EAAA,CAAE,GACRtC,EAAE,CAACsC,EAAA,CAAE,CAAG,GAAI,CAAAb,MAAA,CAAOtB,EAAG,CAACmC,EAAA,CAAE,EAQzBzF,EAAM,CAACyF,EAAA,CAAE,CAAG,GAAI,CAAAb,MAAA,CAAOziB,CAAA,CAAWmhB,EAAG,CAACmC,EAAA,CAAE,GAI5C,CAAApkB,CAAA,CAAQ0F,KAAK,CAAGvE,CAAA,CAiChBnB,CAAA,CAAQ4c,KAAK,CAAGjc,CAAA,CAMhBX,CAAA,CAAQ2b,KAAK,CAAG1b,CAAA,CAMhBD,CAAA,CAAQqkB,MAAM,CAAG7iB,CAAA,CA2EjBA,CAAA,CAAOgT,SAAS,CAAC8K,MAAM,CAAG,WAKxB,MAJA,KAAI,CAAChe,OAAO,CAAG,IAAI,CAACqC,KAAK,CAAG,IAAM,IAAI,CAACC,KAAK,CAAG,IAAM,IAAI,CAACsb,KAAK,CAC3D,IAAI,CAACE,UAAU,CAAC7c,MAAM,GACxB,IAAI,CAACjB,OAAO,EAAI,IAAM,IAAI,CAAC8d,UAAU,CAACzd,IAAI,CAAC,IAD7C,EAGO,IAAI,CAACL,OAAO,EACrB,CAEAE,CAAA,CAAOgT,SAAS,CAAC9P,QAAQ,CAAG,WAC1B,MAAO,KAAI,CAACpD,OAAO,EACrB,CAEAE,CAAA,CAAOgT,SAAS,CAACiL,OAAO,CAAG,SAAU5f,CAAK,EAMxC,MALA,CAAAif,EAAA,CAAM,iBAAkB,IAAI,CAACxd,OAAO,CAAE,IAAI,CAACyd,OAAO,CAAElf,CAAA,EAC9CA,CAAA,WAAiB,CAAA2B,CAAA,GACrB3B,CAAA,CAAQ,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAO,IAAI,CAACkf,OAAO,GAGjC,IAAI,CAACuF,WAAW,CAACzkB,CAAA,GAAU,IAAI,CAAC0kB,UAAU,CAAC1kB,CAAA,CACpD,GAEA2B,CAAA,CAAOgT,SAAS,CAAC8P,WAAW,CAAG,SAAUzkB,CAAK,EAK5C,MAJM,CAAAA,CAAA,WAAiB,CAAA2B,CAAA,GACrB3B,CAAA,CAAQ,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAO,IAAI,CAACkf,OAAO,GAGjCve,CAAA,CAAmB,IAAI,CAACmD,KAAK,CAAE9D,CAAA,CAAM8D,KAAK,GAC1CnD,CAAA,CAAmB,IAAI,CAACoD,KAAK,CAAE/D,CAAA,CAAM+D,KAAK,GAC1CpD,CAAA,CAAmB,IAAI,CAAC0e,KAAK,CAAErf,CAAA,CAAMqf,KAAK,CACnD,GAEA1d,CAAA,CAAOgT,SAAS,CAAC+P,UAAU,CAAG,SAAU1kB,CAAK,EAM3C,GALMA,CAAA,WAAiB,CAAA2B,CAAA,GACrB3B,CAAA,CAAQ,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAO,IAAI,CAACkf,OAAO,GAIpC,IAAI,CAACK,UAAU,CAAC7c,MAAM,EAAI,CAAC1C,CAAA,CAAMuf,UAAU,CAAC7c,MAAM,CACpD,MAAO,GACF,GAAI,CAAC,IAAI,CAAC6c,UAAU,CAAC7c,MAAM,EAAI1C,CAAA,CAAMuf,UAAU,CAAC7c,MAAM,CAC3D,MAAO,GACF,GAAI,CAAC,IAAI,CAAC6c,UAAU,CAAC7c,MAAM,EAAI,CAAC1C,CAAA,CAAMuf,UAAU,CAAC7c,MAAM,CAC5D,MAAO,GAGT,GAAI,CAAAvC,CAAA,CAAI,EACR,EAAG,CACD,GAAI,CAAAa,CAAA,CAAI,IAAI,CAACue,UAAU,CAACpf,CAAA,CAAE,CACtBc,CAAA,CAAIjB,CAAA,CAAMuf,UAAU,CAACpf,CAAA,CAAE,CAE3B,GADA8e,EAAA,CAAM,qBAAsB9e,CAAA,CAAGa,CAAA,CAAGC,CAAA,EAC9B,IAAM,KAAND,CAAA,EAAmB,IAAM,KAANC,CAAA,CACrB,MAAO,GACF,GAAI,IAAM,KAANA,CAAA,CACT,MAAO,GACF,GAAI,IAAM,KAAND,CAAA,CACT,MAAO,OACF,IAAIA,CAAA,GAAMC,CAAA,CACf,aAEA,OAAO,CAAAN,CAAA,CAAmBK,CAAA,CAAGC,CAAA,CAEjC,QAAS,EAAEd,CAAA,EAAE,CACf,CAEAwB,CAAA,CAAOgT,SAAS,CAACkL,YAAY,CAAG,SAAU7f,CAAK,EACvCA,CAAA,WAAiB,CAAA2B,CAAA,GACrB3B,CAAA,CAAQ,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAO,IAAI,CAACkf,OAAO,GAGxC,GAAI,CAAA/e,CAAA,CAAI,EACR,EAAG,CACD,GAAI,CAAAa,CAAA,CAAI,IAAI,CAACwe,KAAK,CAACrf,CAAA,CAAE,CACjBc,CAAA,CAAIjB,CAAA,CAAMwf,KAAK,CAACrf,CAAA,CAAE,CAEtB,GADA8e,EAAA,CAAM,qBAAsB9e,CAAA,CAAGa,CAAA,CAAGC,CAAA,EAC9B,IAAM,KAAND,CAAA,EAAmB,IAAM,KAANC,CAAA,CACrB,MAAO,GACF,GAAI,IAAM,KAANA,CAAA,CACT,MAAO,GACF,GAAI,IAAM,KAAND,CAAA,CACT,MAAO,OACF,IAAIA,CAAA,GAAMC,CAAA,CACf,aAEA,OAAO,CAAAN,CAAA,CAAmBK,CAAA,CAAGC,CAAA,CAEjC,QAAS,EAAEd,CAAA,EAAE,CACf,CAIAwB,CAAA,CAAOgT,SAAS,CAAC+K,GAAG,CAAG,SAAU1f,CAAO,CAAEG,CAAU,EAClD,OAAQH,CAAA,EACN,IAAK,WACH,IAAI,CAACuf,UAAU,CAAC7c,MAAM,CAAG,EACzB,IAAI,CAAC2c,KAAK,CAAG,EACb,IAAI,CAACtb,KAAK,CAAG,EACb,IAAI,CAACD,KAAK,GACV,IAAI,CAAC4b,GAAG,CAAC,MAAOvf,CAAA,EAChB,MACF,IAAK,WACH,IAAI,CAACof,UAAU,CAAC7c,MAAM,CAAG,EACzB,IAAI,CAAC2c,KAAK,CAAG,EACb,IAAI,CAACtb,KAAK,GACV,IAAI,CAAC2b,GAAG,CAAC,MAAOvf,CAAA,EAChB,MACF,IAAK,WAIH,IAAI,CAACof,UAAU,CAAC7c,MAAM,CAAG,EACzB,IAAI,CAACgd,GAAG,CAAC,QAASvf,CAAA,EAClB,IAAI,CAACuf,GAAG,CAAC,MAAOvf,CAAA,EAChB,MAGF,IAAK,aAC4B,IAA3B,IAAI,CAACof,UAAU,CAAC7c,MAAM,EACxB,IAAI,CAACgd,GAAG,CAAC,QAASvf,CAAA,EAEpB,IAAI,CAACuf,GAAG,CAAC,MAAOvf,CAAA,EAChB,MAEF,IAAK,QAKC,EAAe,GAAf,IAAI,CAAC4D,KAAK,EACV,CAAe,GAAf,IAAI,CAACsb,KAAK,EACV,CAA2B,GAA3B,IAAI,CAACE,UAAU,CAAC7c,MAAM,GACxB,IAAI,CAACoB,KAAK,GAEZ,IAAI,CAACC,KAAK,CAAG,EACb,IAAI,CAACsb,KAAK,CAAG,EACb,IAAI,CAACE,UAAU,CAAG,EAAE,CACpB,MACF,IAAK,QAKC,EAAe,GAAf,IAAI,CAACF,KAAK,EAAU,CAA2B,GAA3B,IAAI,CAACE,UAAU,CAAC7c,MAAM,GAC5C,IAAI,CAACqB,KAAK,GAEZ,IAAI,CAACsb,KAAK,CAAG,EACb,IAAI,CAACE,UAAU,CAAG,EAAE,CACpB,MACF,IAAK,QAK4B,IAA3B,IAAI,CAACA,UAAU,CAAC7c,MAAM,EACxB,IAAI,CAAC2c,KAAK,GAEZ,IAAI,CAACE,UAAU,CAAG,EAAE,CACpB,MAGF,IAAK,MACH,GAAI,CAA2B,GAA3B,IAAI,CAACA,UAAU,CAAC7c,MAAM,CACxB,IAAI,CAAC6c,UAAU,CAAG,CAAC,EAAE,KAChB,CAEL,IADA,GAAI,CAAAve,CAAA,CAAI,IAAI,CAACue,UAAU,CAAC7c,MAAM,CACvB,EAAE1B,CAAA,EAAK,GACsB,UAA9B,MAAO,KAAI,CAACue,UAAU,CAACve,CAAA,CAAE,GAC3B,IAAI,CAACue,UAAU,CAACve,CAAA,CAAE,GAClBA,CAAA,CAAI,GAGE,MAANA,CAAA,EAEF,IAAI,CAACue,UAAU,CAAC3T,IAAI,CAAC,EAEzB,EACIzL,CAAA,GAGE,IAAI,CAACof,UAAU,CAAC,EAAE,GAAKpf,CAAA,CACrB+I,KAAA,CAAM,IAAI,CAACqW,UAAU,CAAC,EAAE,IAC1B,IAAI,CAACA,UAAU,CAAG,CAACpf,CAAA,CAAY,EAAE,EAGnC,IAAI,CAACof,UAAU,CAAG,CAACpf,CAAA,CAAY,EAAE,EAGrC,MAEF,QACE,KAAM,CAAA0C,KAAI,CAAM,+BAAiC7C,CAAA,CACrD,EAGA,MAFA,KAAI,CAACyf,MAAM,GACX,IAAI,CAACL,GAAG,CAAG,IAAI,CAAC3d,OAAO,CAChB,IAAI,EACb,CAEAtB,CAAA,CAAQuf,GAAG,CAAGpf,CAAA,CAcdH,CAAA,CAAQwkB,IAAI,CAAGtkB,CAAA,CAuBfF,CAAA,CAAQykB,kBAAkB,CAAGjkB,CAAA,CAEzBgf,EAAA,CAAU,WAiBdxf,CAAA,CAAQ0kB,mBAAmB,CAAG9kB,CAAA,CAK9BI,CAAA,CAAQ2D,KAAK,CAAG5D,CAAA,CAKhBC,CAAA,CAAQ4D,KAAK,CAAGlC,CAAA,CAKhB1B,CAAA,CAAQkf,KAAK,CAAGle,CAAA,CAKhBhB,CAAA,CAAQyf,OAAO,CAAGzd,CAAA,CAKlBhC,CAAA,CAAQ2kB,YAAY,CAAG1iB,CAAA,CAKvBjC,CAAA,CAAQ0f,YAAY,CAAGtd,CAAA,CAOvBpC,CAAA,CAAQ4kB,QAAQ,CAAG5hB,CAAA,CAKnBhD,CAAA,CAAQ6c,IAAI,CAAG5Z,CAAA,CAOfjD,CAAA,CAAQ6kB,KAAK,CAAG3hB,CAAA,CAOhBlD,CAAA,CAAQ8c,EAAE,CAAGhZ,CAAA,CAKb9D,CAAA,CAAQ8kB,EAAE,CAAG7M,CAAA,CAKbjY,CAAA,CAAQ+kB,EAAE,CAAG3M,CAAA,CAKbpY,CAAA,CAAQglB,GAAG,CAAG3M,CAAA,CAKdrY,CAAA,CAAQilB,GAAG,CAAG1M,CAAA,CAKdvY,CAAA,CAAQklB,GAAG,CAAGhN,CAAA,CAKdlY,CAAA,CAAQmlB,GAAG,CAAGhN,CAAA,CA0CdnY,CAAA,CAAQolB,UAAU,CAAGrN,CAAA,CAoCjB6H,EAAA,CAAM,CAAC,EACX7H,CAAA,CAAWvD,SAAS,CAAC9O,KAAK,CAAG,SAAU7F,CAAI,EACzC,GAAI,CAAAG,CAAA,CAAI,IAAI,CAAC+e,OAAO,CAACP,KAAK,CAAGG,EAAM,CAACN,EAAA,CAAEyF,eAAe,CAAC,CAAGnF,EAAM,CAACN,EAAA,CAAE0F,UAAU,CAAC,CACzEljB,CAAA,CAAIhB,CAAA,CAAKmf,KAAK,CAAChf,CAAA,EAEnB,GAAI,CAACa,CAAA,CACH,KAAM,CAAAgV,SAAI,CAAU,uBAAyBhW,CAAA,CAG/C,KAAI,CAACggB,QAAQ,CAAG,IAAS,KAAThf,CAAC,CAAC,EAAE,CAAiBA,CAAC,CAAC,EAAE,CAAG,GACtB,MAAlB,IAAI,CAACgf,QAAQ,GACf,IAAI,CAACA,QAAQ,CAAG,EADlB,EAKKhf,CAAC,CAAC,EAAE,CAGP,IAAI,CAAC8e,MAAM,CAAG,GAAI,CAAAne,CAAA,CAAOX,CAAC,CAAC,EAAE,CAAE,IAAI,CAACke,OAAO,CAACP,KAAK,EAFjD,IAAI,CAACmB,MAAM,CAAGC,EAIlB,GAEA7H,CAAA,CAAWvD,SAAS,CAAC9P,QAAQ,CAAG,WAC9B,MAAO,KAAI,CAACgD,KAAK,EACnB,CAEAqQ,CAAA,CAAWvD,SAAS,CAAC5P,IAAI,CAAG,SAAU/E,CAAO,EAG3C,GAFAif,EAAA,CAAM,kBAAmBjf,CAAA,CAAS,IAAI,CAACkf,OAAO,CAACP,KAAK,EAEhD,IAAI,CAACmB,MAAM,GAAKC,EAAA,EAAO/f,CAAA,GAAY+f,EAAA,CACrC,MAAO,GAGT,GAAI,QAAmB,EAAnB,MAAO,CAAA/f,CAAA,CACT,GAAI,CACFA,CAAA,CAAU,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAS,IAAI,CAACkf,OAAO,CAC5C,EAAE,MAAOlf,CAAA,CAAI,CACX,MAAO,EACT,EAGF,MAAO,CAAAsY,CAAA,CAAItY,CAAA,CAAS,IAAI,CAACggB,QAAQ,CAAE,IAAI,CAACF,MAAM,CAAE,IAAI,CAACZ,OAAO,CAC9D,GAEAhH,CAAA,CAAWvD,SAAS,CAACwL,UAAU,CAAG,SAAUngB,CAAI,CAAEG,CAAO,EACvD,GAAI,EAAEH,CAAA,WAAgB,CAAAkY,CAAA,EACpB,KAAM,CAAAlC,SAAI,CAAU,4BAYtB,GATK7V,CAAA,EAAW,QAAmB,EAAnB,MAAO,CAAAA,CAAA,GACrBA,CAAA,CAAU,CACRwe,KAAA,CAAO,CAAC,CAACxe,CAAA,CACTye,iBAAA,CAAmB,EACrB,GAKE,EAAkB,GAAlB,IAAI,CAACoB,QAAQ,OACf,EAAmB,GAAf,IAAI,CAACnY,KAAK,GAGd7G,CAAA,CAAW,GAAI,CAAA2X,CAAA,CAAM3Y,CAAA,CAAK6H,KAAK,CAAE1H,CAAA,EAC1BwZ,CAAA,CAAU,IAAI,CAAC9R,KAAK,CAAE7G,CAAA,CAAUb,CAAA,GAClC,GAAI,EAAkB,GAAlBH,CAAA,CAAKggB,QAAQ,OACtB,EAAmB,GAAfhgB,CAAA,CAAK6H,KAAK,GAGd7G,CAAA,CAAW,GAAI,CAAA2X,CAAA,CAAM,IAAI,CAAC9Q,KAAK,CAAE1H,CAAA,EAC1BwZ,CAAA,CAAU3Z,CAAA,CAAK8f,MAAM,CAAE9e,CAAA,CAAUb,CAAA,GAG1C,GAhBI,CAAAa,CAAA,CAgBAC,CAAA,CACD,KAAkB,GAAlB,IAAI,CAAC+e,QAAQ,EAAa,GAAkB,GAAlB,IAAI,CAACA,QAAQ,IACvC,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,EAAa,GAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,CAAK,CAC3C1e,CAAA,CACD,KAAkB,GAAlB,IAAI,CAAC0e,QAAQ,EAAa,GAAkB,GAAlB,IAAI,CAACA,QAAQ,IACvC,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,EAAa,GAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,CAAK,CAC3Clf,CAAA,CAAa,IAAI,CAACgf,MAAM,CAACre,OAAO,GAAKzB,CAAA,CAAK8f,MAAM,CAACre,OAAO,CACxDrB,CAAA,CACD,KAAkB,GAAlB,IAAI,CAAC4f,QAAQ,EAAa,IAAkB,GAAlB,IAAI,CAACA,QAAQ,IACvC,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,EAAa,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,CAAK,CAC3Cre,CAAA,CACF2W,CAAA,CAAI,IAAI,CAACwH,MAAM,CAAE,IAAK9f,CAAA,CAAK8f,MAAM,CAAE3f,CAAA,IACjC,IAAkB,GAAlB,IAAI,CAAC6f,QAAQ,EAAa,GAAkB,GAAlB,IAAI,CAACA,QAAQ,CAAK,GAC7C,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,EAAa,GAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,CAAK,CAC3C1f,CAAA,CACFgY,CAAA,CAAI,IAAI,CAACwH,MAAM,CAAE,IAAK9f,CAAA,CAAK8f,MAAM,CAAE3f,CAAA,IACjC,IAAkB,GAAlB,IAAI,CAAC6f,QAAQ,EAAa,GAAkB,GAAlB,IAAI,CAACA,QAAQ,CAAK,GAC7C,IAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,EAAa,GAAkB,GAAlBhgB,CAAA,CAAKggB,QAAQ,CAAK,CAE/C,MAAO,CAAA/e,CAAA,EAA2BK,CAAA,EAC/BR,CAAA,EAAcV,CAAA,EACfuB,CAAA,EAA8BrB,CAClC,GAEAH,CAAA,CAAQqlB,KAAK,CAAG7M,CAAA,CAqDhBA,CAAA,CAAMhE,SAAS,CAAC8K,MAAM,CAAG,WAIvB,MAHA,KAAI,CAACmB,KAAK,CAAG,IAAI,CAACX,GAAG,CAAC9H,GAAG,CAAC,SAAUnY,CAAK,EACvC,MAAO,CAAAA,CAAA,CAAM8B,IAAI,CAAC,KAAKlB,IAAI,EAC7B,IAAGkB,IAAI,CAAC,MAAMlB,IAAI,GACX,IAAI,CAACggB,KAAK,EACnB,CAEAjI,CAAA,CAAMhE,SAAS,CAAC9P,QAAQ,CAAG,WACzB,MAAO,KAAI,CAAC+b,KAAK,EACnB,CAEAjI,CAAA,CAAMhE,SAAS,CAACuL,UAAU,CAAG,SAAUlgB,CAAK,EAC1C,GAAI,CAAAG,CAAA,CAAQ,IAAI,CAAC+e,OAAO,CAACP,KAAK,CAE1B3d,CAAA,CAAKb,CAAA,CAAQ2e,EAAM,CAACN,EAAA,CAAE8F,gBAAgB,CAAC,CAAGxF,EAAM,CAACN,EAAA,CAAE6F,WAAW,CAAC,CACnErkB,CAAA,CAAQA,CAAA,CAAMmE,OAAO,CAACnD,CAAA,CAAI8Z,CAAA,EAC1BmE,EAAA,CAAM,iBAAkBjf,CAAA,EAExBA,CAAA,CAAQA,CAAA,CAAMmE,OAAO,CAAC2a,EAAM,CAACN,EAAA,CAAE2F,cAAc,CAAC,CAAEC,EAAA,EAChDnF,EAAA,CAAM,kBAAmBjf,CAAA,CAAO8e,EAAM,CAACN,EAAA,CAAE2F,cAAc,CAAC,EASxDnkB,CAAA,CAAQ,CAHRA,CAAA,CAAQ,CAHRA,CAAA,CAAQA,CAAA,CAAMmE,OAAO,CAAC2a,EAAM,CAACN,EAAA,CAAEoF,SAAS,CAAC,CAAEC,EAAA,CAA3C,EAGc1f,OAAO,CAAC2a,EAAM,CAACN,EAAA,CAAEuF,SAAS,CAAC,CAAEC,EAAA,CAA3C,EAGcvgB,KAAK,CAAC,OAAO3B,IAAI,CAAC,KAKhC,GAAI,CAAAb,CAAA,CAASd,CAAA,CAAQ2e,EAAM,CAACN,EAAA,CAAEyF,eAAe,CAAC,CAAGnF,EAAM,CAACN,EAAA,CAAE0F,UAAU,CAAC,CACjE5iB,CAAA,CAAMtB,CAAA,CAAMyD,KAAK,CAAC,KAAK0U,GAAG,CAAC,SAAUnY,CAAI,EAC3C,MAAO,CAAAub,CAAA,CAAgBvb,CAAA,CAAM,IAAI,CAACkf,OAAO,CAC3C,GAAG,IAAI,EAAEpd,IAAI,CAAC,KAAK2B,KAAK,CAAC,OAWzB,MAVI,KAAI,CAACyb,OAAO,CAACP,KAAK,GAEpBrd,CAAA,CAAMA,CAAA,CAAIwW,MAAM,CAAC,SAAU9X,CAAI,EAC7B,MAAO,CAAC,CAACA,CAAA,CAAKmf,KAAK,CAACle,CAAA,CACtB,KAEFK,CAAA,CAAMA,CAAA,CAAI6W,GAAG,CAAC,SAAUnY,CAAI,EAC1B,MAAO,IAAI,CAAAkY,CAAA,CAAWlY,CAAA,CAAM,IAAI,CAACkf,OAAO,CAC1C,GAAG,IAAI,CAGT,GAEAvG,CAAA,CAAMhE,SAAS,CAACwL,UAAU,CAAG,SAAUngB,CAAK,CAAEG,CAAO,EACnD,GAAI,EAAEH,CAAA,WAAiB,CAAA2Y,CAAA,EACrB,KAAM,CAAA3C,SAAI,CAAU,uBAGtB,MAAO,KAAI,CAACiK,GAAG,CAACwF,IAAI,CAAC,SAAUzkB,CAAe,EAC5C,MACE,CAAA4X,CAAA,CAAc5X,CAAA,CAAiBb,CAAA,GAC/BH,CAAA,CAAMigB,GAAG,CAACwF,IAAI,CAAC,SAAUzlB,CAAgB,EACvC,MACE,CAAA4Y,CAAA,CAAc5Y,CAAA,CAAkBG,CAAA,GAChCa,CAAA,CAAgByX,KAAK,CAAC,SAAUzX,CAAc,EAC5C,MAAO,CAAAhB,CAAA,CAAiByY,KAAK,CAAC,SAAUzY,CAAe,EACrD,MAAO,CAAAgB,CAAA,CAAemf,UAAU,CAACngB,CAAA,CAAiBG,CAAA,CACpD,GACF,GAEJ,GAEJ,GACF,GAqBAA,CAAA,CAAQulB,aAAa,CAAG3L,CAAA,CA8PxBpB,CAAA,CAAMhE,SAAS,CAAC5P,IAAI,CAAG,SAAU/E,CAAO,EACtC,GAAI,CAACA,CAAA,CACH,MAAO,GAGT,GAAI,QAAmB,EAAnB,MAAO,CAAAA,CAAA,CACT,GAAI,CACFA,CAAA,CAAU,GAAI,CAAA2B,CAAA,CAAO3B,CAAA,CAAS,IAAI,CAACkf,OAAO,CAC5C,EAAE,MAAOlf,CAAA,CAAI,CACX,MAAO,EACT,EAGF,IAAK,GAAI,CAAAG,CAAA,CAAI,EAAGA,CAAA,CAAI,IAAI,CAAC8f,GAAG,CAACvd,MAAM,CAAEvC,CAAA,GACnC,GAAIya,CAAA,CAAQ,IAAI,CAACqF,GAAG,CAAC9f,CAAA,CAAE,CAAEH,CAAA,CAAS,IAAI,CAACkf,OAAO,EAC5C,MAAO,GAGX,MAAO,EACT,GAsCA/e,CAAA,CAAQ+c,SAAS,CAAGvD,CAAA,CAUpBxZ,CAAA,CAAQwlB,aAAa,CAAGzL,CAAA,CAsBxB/Z,CAAA,CAAQylB,aAAa,CAAGxK,CAAA,CAsBxBjb,CAAA,CAAQ0lB,UAAU,CAAGlK,CAAA,CAsDrBxb,CAAA,CAAQwE,UAAU,CAAG2V,CAAA,CAYrBna,CAAA,CAAQ2lB,GAAG,CAAGjF,CAAA,CAMd1gB,CAAA,CAAQ4lB,GAAG,CAAGhF,CAAA,CAKd5gB,CAAA,CAAQ6lB,OAAO,CAAGlF,CAAA,CAsElB3gB,CAAA,CAAQof,UAAU,CAAGyB,CAAA,CAMrB7gB,CAAA,CAAQggB,UAAU,CAAGc,CAAA,CAOrB9gB,CAAA,CAAQ8lB,MAAM,CAAG/E,C,yCCtjDjB,QAAS,CAAAlgB,EAAGhB,CAAO,CAAEG,CAAG,CAAEa,CAAM,EAC9B,GAAI,CAAAF,CAAA,CAAIX,CAAA,EAAOa,CAAA,EAAU,CAEF,WAAnB,MAAO,CAAAhB,CAAA,GACTG,CAAA,CAAM,QAAY,GAAZH,CAAA,CAAuB+X,KAAI,CAAM,IAAM,KAC7C/X,CAAA,CAAU,MAIZ,GAAI,CAAAI,CAAA,CAAO,CAFXJ,CAAA,CAAUA,CAAA,EAAW,CAAC,GAEHkmB,MAAM,EAAK,CAAAlmB,CAAA,CAAQmmB,GAAG,EAAIllB,CAAA,IAO7C,GAJAb,CAAI,CAAC,EAAE,CAAI,EAAU,CAAVA,CAAI,CAAC,EAAE,CAAW,GAC7BA,CAAI,CAAC,EAAE,CAAI,EAAU,CAAVA,CAAI,CAAC,EAAE,CAAW,IAGzBD,CAAA,CACF,IAAK,GAAI,CAAAwB,CAAA,CAAK,EAAGA,CAAA,CAAK,GAAI,EAAEA,CAAA,CAC1BxB,CAAG,CAACW,CAAA,CAAIa,CAAA,CAAG,CAAGvB,CAAI,CAACuB,CAAA,CAAG,CAI1B,MAAO,CAAAxB,CAAA,EAAOmB,CAAA,CAAYlB,CAAA,CAC5B,K,kDAEA,CAAAJ,CAAA,CAAAsF,OAAA,CAAiBtE,C,yCCvBjBhB,CAAA,CAAAsF,OAAA,CAAiB,WACf,MAAO,CAAA8gB,aAAA,CAAAC,WAAA,CAAmB,GAC5B,E,yCCEA,QAAS,CAAArlB,EAAYhB,CAAG,CAAEG,CAAM,EAC9B,GAAI,CAAAa,CAAA,CAAIb,CAAA,EAAU,EACdmB,CAAA,CAAML,CAAA,CAEV,MAAO,CACLK,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAC5BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAE,IAC9BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAE,IAC9BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAE,IAC9BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAE,IAC9BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAC5BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAC5BM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAAEM,CAAG,CAACtB,CAAG,CAACgB,CAAA,GAAI,CAAC,CAC7B,CAAEc,IAAI,CAAC,GACV,EAlBA,IAAK,GADD,CAAAb,CAAA,CAAY,EAAE,CACTK,CAAA,CAAI,EAAGA,CAAA,CAAI,IAAK,EAAEA,CAAA,CACzBL,CAAS,CAACK,CAAA,CAAE,CAAI,CAAAA,CAAA,CAAI,KAAOuD,QAAQ,CAAC,IAAIyhB,MAAM,CAAC,EAmBjD,CAAAtmB,CAAA,CAAAsF,OAAA,CAAiBtE,C,+gCEzBjB,IAAAZ,CAAA,CAAAkB,CAAA,CAAA8D,aAAA,UAKA,MAAa,CAAAzD,CAAA,CAKXiI,YAAY5J,CAAmB,CAAEG,CAAkB,CAAEa,CAAkB,CAAvE,CACE,GAAIhB,CAAA,CAAc,EAChB,KAAM,CAAA6C,KAAI,CAAM,qDAMlB,GAHA,IAAI,CAAC0jB,WAAW,CAAGvmB,CAAA,CACnB,IAAI,CAACwmB,UAAU,CAAG5P,IAAA,CAAK6P,KAAK,CAACtmB,CAAA,EAC7B,IAAI,CAACumB,UAAU,CAAG9P,IAAA,CAAK6P,KAAK,CAACzlB,CAAA,EACzB,IAAI,CAACwlB,UAAU,CAAG,IAAI,CAACE,UAAU,CACnC,KAAM,CAAA7jB,KAAI,CAAM,0DAEpB,EAEMoX,QACJja,CAAwB,CACxBG,CAAmC,CAF/B,C,wCAIJ,GAAI,CAAAa,CAAA,CAAU,EACd,KAAOA,CAAA,CAAU,IAAI,CAACulB,WAAW,EAAE,CAEjC,GAAI,CACF,MAAO,MAAM,CAAAvmB,CAAA,EACd,EAAC,MAAOA,CAAA,CAAK,CACZ,GAAIG,CAAA,EAAe,CAACA,CAAA,CAAYH,CAAA,EAC9B,KAAM,CAAAA,CAAA,CAGRI,CAAA,CAAKmB,IAAI,CAACvB,CAAA,CAAImF,OAAO,CACtB,EAGD,GAAM,CAAAlE,CAAA,CAAU,IAAI,CAAC0lB,cAAc,GACnCvmB,CAAA,CAAKmB,IAAI,CAAC,WAAWN,CAAO,8BAA8B,EAC1D,KAAM,KAAI,CAAC2lB,KAAK,CAAC3lB,CAAA,EACjBD,CAAA,EACD,EAGD,MAAO,MAAM,CAAAhB,CAAA,EACf,GAAC,EAEO2mB,eAAA,EACN,MACE,CAAA/P,IAAA,CAAK6P,KAAK,CAAC7P,IAAA,CAAKsP,MAAM,IAAM,IAAI,CAACQ,UAAU,CAAG,IAAI,CAACF,UAAU,CAAG,IAChE,IAAI,CAACA,UAAU,EAILI,MAAM5mB,CAAe,CAArB,C,wCACZ,MAAO,IAAI,CAAAkX,OAAA,CAAQ/W,CAAA,EAAW0mB,UAAA,CAAW1mB,CAAA,CAAS,GAAU,CAAVH,CAAA,EACpD,GAAC,EACF,CAxDDA,CAAA,CAAAsF,OAAA,CAAA0U,WAAA,CAAArY,C,uDCgBO,cAAe,CAAAA,EACpB3B,CAAmB,CACnBG,CAAoB,CACpBmB,CAA0B,CAC1BlB,CAAoB,CACpBuB,CAAyB,EAEzB,GAEI,CAAAhB,CAAA,CACAZ,CAAA,CAHAG,CAAA,CAAsB,GACtB2B,CAAA,CAAwB,GAItBV,CAAA,CAAkBd,CAAA,CAAiBL,CAAA,EAEzC,GAAII,CAAA,GACFL,CAAA,CAAW,KAAM,CAAAiB,CAAA,CAAjB8lB,wBAAA,KACgB/mB,CAAA,CAAS2C,MAAM,CAAG,EAAG,CACnC,GAAM,CAAA1C,CAAA,CAAcgB,CAAA,CAAA+lB,WAAA,CAClBhnB,CAAA,CACAoB,CAAA,CAAgB6lB,aAAa,CAC7B7lB,CAAA,CAAgB8lB,WAAW,CAC3B9mB,CAAA,CACA,IAGEH,CAAA,EACFc,CAAA,CAAAS,IAAA,CACG,oBAAmBvB,CAAA,CAAYoB,mBAAoB,iBAAgBpB,CAAA,CAAYqB,qBAAsB,GAAE,EAE1GF,CAAA,CAAgB6lB,aAAa,CAAGhnB,CAAA,CAAYqB,qBAAqB,CACjEF,CAAA,CAAgB8lB,WAAW,CAAGjnB,CAAA,CAAYoB,mBAAmB,EAE7DN,CAAA,CAAAS,IAAA,CACG,0BAAyBJ,CAAA,CAAgB8lB,WAAY,iBAAgB9lB,CAAA,CAAgB6lB,aAAc,iBAAgB,CAG1H,EAGD,EAAAE,UAAA,CAACvmB,CAAU,CAAAU,qBAAA,CAAEQ,CAAqB,CAAAT,mBAAA,CAAElB,CAAmB,CAAC,CAAGI,CAAA,CAC1Da,CAAA,CAAgB6lB,aAAa,CAC7B7lB,CAAA,CAAgB8lB,WAAW,CAC3B9mB,CAAA,GAGGQ,CAAA,GACF,CAAAumB,UAAA,CAACvmB,CAAU,CAAAU,qBAAA,CAAEQ,CAAqB,CAAAT,mBAAA,CAAElB,CAAmB,CAAC,CACvD,KAAM,CAAAc,CAAA,CAAAmmB,WAAA,CACJhmB,CAAA,CAAgB8lB,WAAW,CAC3B9lB,CAAA,CAAgB6lB,aAAa,CAC7B7mB,CAAA,CACAwB,CAAA,CACA5B,CAAA,GAIN,GAAM,CAAAoC,CAAA,CAASlB,CAAA,CAAAgB,UAAS,CAAI,UAAY,MAClCG,CAAA,CAAUF,WAAA,CAAAJ,IAAA,CAAUnB,CAAA,CAAYwB,CAAA,EAChCI,CAAA,CAAkBtB,CAAA,CAAAgB,UAAS,CAAI,OAAS,GACxCkB,CAAA,CAAajB,WAAA,CAAAJ,IAAA,CACjBb,CAAA,CAAAgB,UAAS,CAAItB,CAAA,CAAayB,CAAA,CAC1B,SAASG,CAAA,EAELa,CAAA,CAAiBpC,CAAA,CAAAomB,iBAAA,CAA8BzmB,CAAA,EAgBrD,MAfI,CAAAW,CAAA,GACFR,CAAA,CAAAwC,cAAA,CAAoB,iBAAkB3C,CAAA,EAEtCG,CAAA,CAAAwC,cAAA,CAAoB,kBAAmB3C,CAAA,EAEvCG,CAAA,CAAAwC,cAAA,CAAoB,mBAAoB3C,CAAA,EAExCG,CAAA,CAAAwC,cAAA,CAAoB,mBAAoB3C,CAAA,EACxCG,CAAA,CAAAwC,cAAA,CAAoB,kBAAmBF,CAAA,CAAiB,kBACxDtC,CAAA,CAAA6C,OAAA,CAAaP,CAAA,EACbtC,CAAA,CAAA6C,OAAA,CAAavB,CAAA,GAEftB,CAAA,CAAAoD,SAAA,CAAe,iBAAkB,OAAShE,CAAA,EAC1CY,CAAA,CAAAoD,SAAA,CAAe,cAAef,CAAA,EAEvB,CAAC/B,mBAAA,CAAAlB,CAAA,CAAqBmB,qBAAA,CAAAQ,CAAqB,CACpD,EAEO,QAAS,CAAAvB,EACdN,CAAqB,CACrBG,CAAmB,CACnBa,CAAoB,EAEpB,GAAI,CAAAW,CAAA,CAAsB,GACtBrB,CAAA,CAAwB,GACxBD,CAAA,CAA4BY,CAAA,CAAAgB,UAAS,CACrCtB,CAAA,CAA6BX,CAAA,EAC7BI,CAAA,CAAAoC,IAAA,CAAQ,OAAQxC,CAAA,CAAegB,CAAA,EAyBnC,MAvBI,CAAAX,CAAA,GAGFC,CAAA,CAAwB,GAAAW,CAAA,CAAAomB,sBAAqB,EAAEhnB,CAAA,EAC/CsB,CAAA,CAAsB,GAAAV,CAAA,CAAAqmB,wBAAuB,EAAEjnB,CAAA,EAEhBiB,CAAA,CAAA4b,SAAA,CAC7Bvb,CAAA,CACAxB,CAAA,IAGAE,CAAA,CAAa,KACbsB,CAAA,CAAsB,GACtBrB,CAAA,CAAwB,KAIvBD,CAAA,EACHS,CAAA,CAAAS,IAAA,CACG,gBAAevB,CAAc,KAAIG,CAAY,oCAAmC,EAI9E,CAAC+mB,UAAA,CAAA7mB,CAAA,CAAYgB,qBAAA,CAAAf,CAAA,CAAuBc,mBAAA,CAAAO,CAAmB,CAChE,EAEO,QAAS,CAAAtB,EAAiBL,CAAmB,KAe9C,CAAAG,CAAA,CAdJ,GAAM,CAAAmB,CAAA,CAAWtB,CAAA,CAAYyD,KAAK,CAAC,KAAKqU,MAAM,CAAC9X,CAAA,EAAQ,CAAC,CAACA,CAAA,EAEzD,GAAI,cAAc+E,IAAI,CAACzD,CAAQ,CAAC,EAAE,EAAG,CACnC,GAAM,CAAAtB,CAAA,CAAgBsB,CAAQ,CAAC,EAAE,CAAC6C,OAAO,CAAC,OAAQ,IAClD7C,CAAA,CAASimB,MAAM,CAAC,EAAG,EAAG,OAAQvnB,CAAA,CAChC,EAEA,GAAIsB,CAAA,CAASoB,MAAM,CAAG,GAAK,MAAe,EAAfpB,CAAQ,CAAC,EAAE,CACpC,KAAM,CAAAuB,KAAI,CACR,0KAIJ,GAAM,CAAA/B,CAAA,CAAgBQ,CAAQ,CAAC,EAAE,CAQjC,GALEnB,CAAA,CADEmB,CAAA,CAASoB,MAAM,CAAG,EACN1B,CAAA,CAAAwmB,qBAAA,CAAkClmB,CAAQ,CAAC,EAAE,EAE7C,IAGZ,CAAC,GAAAL,CAAA,CAAAwmB,eAAc,EAAE3mB,CAAA,GAAkB,CAAC,GAAAG,CAAA,CAAAwmB,eAAc,EAAEtnB,CAAA,EACtD,KAAM,CAAA0C,KAAI,CACR,yJAIJ,GAAI,CAAC,GAAA5B,CAAA,CAAAymB,kCAAiC,EAAE5mB,CAAA,EACtC,KAAM,CAAA+B,KAAI,CACR,6IAIJ,MAAO,CACLokB,WAAA,CAAa9mB,CAAA,CACb6mB,aAAA,CAAelmB,CACjB,CACF,EAEO,QAAS,CAAAH,EAA6BX,CAAqB,EAChE,GAAI,CAAAG,CAAA,CAAa,GAOjB,MALA,GAAAc,CAAA,CAAA0mB,aAAY,EAAE1P,OAAO,CACnBjX,CAAA,EACGb,CAAA,CAAaA,CAAA,EAAcC,CAAA,CAAAoC,IAAA,CAAQ,OAAQxC,CAAA,CAAegB,CAAA,GAGxDb,CACT,E,uOC3KO,cAAe,CAAAG,EACpBN,CAAmB,CACnBG,CAAqB,CACrBmB,CAAoB,CACpBR,CAAyB,CACzBV,CAA4C,KAExC,CAAAE,CAAA,CAIJ,GAAI,EAFJF,CAAA,CAAW,MAAAA,CAAA,CAAAA,CAAA,CAAa,KAAM,CAAAC,CAAA,EAA9B,GAEiB,CAAoB,GAApBD,CAAA,CAASsC,MAAM,CAC9B,KAAM,CAAAG,KAAI,CAAM,6CAGlB,GAAI,CAAA1B,CAAA,CAAcjB,CAAA,CAChBE,CAAA,CACAD,CAAA,CACAH,CAAA,CACAsB,CAAA,CACA,IAoBF,IAjBIR,CAAA,EAAqBK,CAAC,EAAgBA,CAAA,CAAYymB,UAAU,GAE9D5mB,CAAA,CAAAO,IAAA,CACE,CACG,uBAAsBpB,CAAc,KAAIH,CAAY,eAAcsB,CAAa,YAAW,CAC3F,8BACD,CAACQ,IAAI,CAACmB,SAAA,CAANC,GAAA,GAEH/B,CAAA,CAAcjB,CAAA,CACZE,CAAA,CACAD,CAAA,CACAH,CAAA,CACAsB,CAAA,CACA,KAIA,CAACH,CAAA,EAAe,CAACA,CAAA,CAAYymB,UAAU,CACzC,KAAM,CAAA/kB,KAAI,CACP,gBAAe1C,CAAc,KAAIH,CAAY,eAAcsB,CAAa,YAAW,EAIxF,GAAM,CAAAsmB,UAAA,CAACzlB,CAAU,CAAAd,qBAAA,CAAEe,CAAqB,CAAAhB,mBAAA,CAAEmB,CAAmB,CAAC,CAAGpB,CAAA,CAC3DgC,CAAA,CAAc,GAAGhB,CAAA,CAAWgX,YAAY,CAE9CnY,CAAA,CAAAO,IAAA,CAAW,0BAAyB4B,CAAY,OAAM,EAEtD,GAAI,CACF,GAAM,CAAAnD,CAAA,CAAW,KAAM,CAAAiB,CAAA,CAAAmY,YAAA,CAAgBjW,CAAA,EAEvCnC,CAAA,CAAAO,IAAA,CAAU,oCAERjB,CAAA,CADEqB,CAAA,CAAAM,UAAA,CACY,KAAM,CAAAhB,CAAA,CAAAoY,UAAA,CAAcrZ,CAAA,EAEpB,KAAM,CAAAiB,CAAA,CAAAqY,UAAA,CAActZ,CAAA,CAAU,OAAW,KAKzD,GAAM,CAAAG,CAAA,CAAcmE,sBAAA,CAAAC,SAAA,EAAG4X,WAAW,CAAC7b,CAAA,CAAY,CAAC,EAAE,CAE5CQ,CAAA,CAAUoB,WAAA,CAAAJ,IAAA,CAAUxB,CAAA,CAAaH,CAAA,EACnCC,CAAA,CAAaU,CAAA,CACZ,GAAAa,CAAA,CAAAkmB,gBAAe,EAAEtlB,CAAA,IACpBnC,CAAA,CAAa,KAAM,CAAAa,CAAA,CAAA2c,QAAA,CACjB9c,CAAA,CACA,OACAsB,CAAA,CACAd,CAAA,CALJ,EASA,GAAAK,CAAA,CAAAmmB,yBAAwB,EAAE1nB,CAAA,CAAYmC,CAAA,EAEtC,GAAM,CAAAlC,CAAA,CAAawB,CAAA,CAAkBzB,CAAA,EAIrC,MAHA,MAAM,CAAAO,CAAA,CAAkBN,CAAA,CAAY+B,CAAA,EACpC,KAAM,CAAArC,CAAA,CAAWM,CAAA,EAEV,CAAC6mB,UAAA,CAAA9mB,CAAA,CAAYiB,qBAAA,CAAAe,CAAA,CAAuBhB,mBAAA,CAAAmB,CAAmB,CAChE,EAAE,MAAOvC,CAAA,CAAK,CAiBZ,KAhBI,CAAAA,CAAA,WAAe,CAAA6C,KAAA,GAGf7C,CAAA,WAAe,CAAAiB,CAAA,CAAAsY,SAAA,GACd,GAAuB,GAAvBvZ,CAAA,CAAIwZ,cAAc,EAAY,GAAuB,GAAvBxZ,CAAA,CAAIwZ,cAAc,CAAK,CAEtDxY,CAAA,CAAAO,IAAA,CACG,6BAA4BvB,CAAA,CAAIwZ,cAAe,4DAA2D,EAG7GxY,CAAA,CAAAO,IAAA,CAAUvB,CAAA,CAAImF,OAAO,EAEL,SAAdnF,CAAA,CAAIwV,KAAK,EACXxU,CAAA,CAAAD,KAAA,CAAWf,CAAA,CAAIwV,KAAK,GAGlBxV,CACR,EACF,CAEO,cAAe,CAAAK,EAAA,EACpB,GAAM,CAAAL,CAAA,CAAM,kDACNG,CAAA,CAAyB,GAAI,CAAAW,CAAA,CAAAuZ,UAAA,CAAiB,cAE9CrZ,CAAA,CAAW,KAAM,CAAAb,CAAA,CAAKoc,OAAO,CAAyBvc,CAAA,EAC5D,GAAI,CAACgB,CAAA,CAAS8Q,MAAM,CAClB,KAAM,CAAAjP,KAAI,CACP,gEAA+D7C,CAAI,GAAE,EAI1E,MAAO,CAAAgB,CAAA,CAAS8Q,MAAM,EAGxB,cAAe,CAAAnR,EACbX,CAAsB,CACtBG,CAAqB,EAErB,GAAM,CAAAc,CAAA,CAAUK,CAAA,CAAA2kB,MAAA,CAAc9lB,CAAA,EACxBW,CAAA,CAAsBQ,CAAA,CAAAwC,KAAA,CAAa7C,CAAA,EACnCb,CAAA,CAAckB,CAAA,CAAAyC,KAAA,CAAa9C,CAAA,EAC3BX,CAAA,CAAoB,CAAwB,GAAxBQ,CAAA,CAA4B,GAAK,IACrDT,CAAA,CAA+B,GAAES,CAAoB,IAAGV,CAAY,EAAC,CACrEO,CAAA,CAAkBgB,CAAA,CAAAM,UAAS,CAAI,OAAS,GAE9CjB,CAAA,CAAAO,IAAA,CAAU,wBACV,GAAAI,CAAA,CAAAomB,qBAAoB,EAClB/nB,CAAA,CACC,OAAMM,CAAkB,GAAEK,CAAgB,EAAC,CAC3C,SAAQG,CAAoB,GAAEH,CAAgB,EAAC,CAChD,IAGF,GAAAgB,CAAA,CAAAomB,qBAAoB,EAClB/nB,CAAA,CACC,OAAMM,CAAkB,GAAEK,CAAgB,EAAC,CAC5C,SAASA,CAAA,CACT,IAGF,GAAAgB,CAAA,CAAAomB,qBAAoB,EAClB/nB,CAAA,CACC,OAAMM,CAAkB,GAAEK,CAAgB,EAAC,CAC3C,OAAMN,CAA4B,GAAEM,CAAgB,EAAC,CACtD,GAEJ,EAEA,cAAe,CAAAZ,EAAWC,CAAsB,EAC9CgB,CAAA,CAAAO,IAAA,CAAU,+BACV,GAAM,CAAApB,CAAA,CAAe+B,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAgB,SAC/C,MAAM,CAAAI,CAAA,CAAA8Y,IAAA,CAAW,GAAE/Y,CAAa,eAAc,EAE9C,KAAM,CAAAC,CAAA,CAAA8Y,IAAA,CACH,GAAElZ,CAAe,+CAA8C,CAEpE,EAEO,QAAS,CAAAE,EACdF,CAAgC,CAChCG,CAAqB,CACrBa,CAAmB,CACnBC,CAAoB,CACpBH,CAA0B,EAE1B,GAAM,CAAAV,CAAA,CAAU,CAACwe,iBAAA,CAAmB9d,CAAiB,EAC/CR,CAAA,CAAiBN,CAAA,CAAS8X,MAAM,CAAC9X,CAAA,GACrC,GAAM,CAAAc,CAAA,CAA2BQ,CAAA,CAAA4b,SAAA,CAC/B5b,CAAA,CAAA2kB,MAAA,CAAcjmB,CAAA,CAAKgoB,cAAc,EACjC7nB,CAAA,EAIIG,CAAA,CACJ,CAFA,EAAAqB,CAAA,CAAAkmB,gBAAe,EAAE7mB,CAAA,GAAgB,GAAAW,CAAA,CAAAkmB,gBAAe,EAAE7nB,CAAA,CAAKioB,YAAY,GAGnE3mB,CAAA,CAAA4b,SAAA,CACE/b,CAAA,CAAsBnB,CAAA,CAAKioB,YAAY,EACvCjnB,CAAA,CACAZ,CAAA,EAEEC,CAAA,CACJL,CAAA,CAAKyC,KAAK,GACTd,CAAA,CAAAM,UAAS,CACNE,CAAA,CAAwBnC,CAAA,CAAMiB,CAAA,EAC9BmB,CAAA,CAA2BpC,CAAA,CAAMiB,CAAA,CAAcT,OAAA,CAAQ6E,QAAQ,GACrE,MAAO,CAAAvE,CAAA,EAA4BR,CAAA,EAA0BD,CAC/D,IAEA,GAAI,CAA0B,GAA1BC,CAAA,CAAeoC,MAAM,CACvB,MAAO,MAgBT,GAAM,CAAArC,CAAA,CAAeC,CAbE,CAAe0c,IAAI,CAAC,CAAChd,CAAA,CAAUG,CAAA,GAElDmB,CAAA,CAAAse,OAAA,CACEte,CAAA,CAAA2kB,MAAA,CAAc9kB,CAAA,CAAsBhB,CAAA,CAAQ8nB,YAAY,GACxD3mB,CAAA,CAAA2kB,MAAA,CAAc9kB,CAAA,CAAsBnB,CAAA,CAASioB,YAAY,KAE3D3mB,CAAA,CAAAse,OAAA,CACEte,CAAA,CAAA2kB,MAAA,CAAc9lB,CAAA,CAAQ6nB,cAAc,EACpC1mB,CAAA,CAAA2kB,MAAA,CAAcjmB,CAAA,CAASgoB,cAAc,GAKR,CAAC,EAAE,CAKtC,MAAO,CACLJ,UAAA,CALiBjmB,CAAA,CAAAM,UAAS,CACxBM,CAAA,CAAoBlC,CAAA,CAAcY,CAAA,EAClCkC,CAAA,CAAuB9C,CAAA,CAAcY,CAAA,CAAcT,OAAA,CAAQ6E,QAAQ,EAIrEhE,qBAAA,CAAuBhB,CAAA,CAAa2nB,cAAc,CAClD5mB,mBAAA,CAAqBf,CAAA,CAAa4nB,YAAY,CAACrnB,IAAI,EACrD,CACF,EAMO,QAAS,CAAAiB,EAAkB7B,CAAkB,EAClD,GAAM,CAAAG,CAAA,CAAU+B,WAAA,CAAAJ,IAAA,CAAU9B,CAAA,CAAY,OACtC,MAAO,CAAA2B,CAAA,CAAAM,UAAS,CAAIjC,CAAA,CAAaG,CACnC,EAEO,QAAS,CAAAgB,EAAsBnB,CAAmB,EACvD,GAAM,CAAAG,CAAA,CAAoB,oCAC1B,MAAO,CAAAH,CAAA,CAAYmE,OAAO,CAAChE,CAAA,CAAmB,WAChD,EAEO,QAAS,CAAAgC,EAAwBnC,CAAS,CAAEG,CAAoB,EAErE,MADA,CAAAA,CAAA,CAAeiD,CAAA,CAAgBjD,CAAA,EACxBH,CAAA,CAAKyC,KAAK,CAACgjB,IAAI,CACpBzlB,CAAC,EACC,GAAA2B,CAAA,CAAAumB,iBAAgB,EAAExkB,QAAQ,CAAC1D,CAAA,CAAKqF,QAAQ,GAAKrF,CAAA,CAAKgc,IAAI,GAAK7b,CAAA,CAEjE,EAEO,QAAS,CAAAiC,EACdpC,CAAS,CACTG,CAAoB,CACpBa,CAAgB,EAEhB,MAAO,CAAAhB,CAAA,CAAKyC,KAAK,CAACgjB,IAAI,CACpBzlB,CAAC,EAAcA,CAAA,CAAKgc,IAAI,GAAK7b,CAAA,EAAgBH,CAAA,CAAKqF,QAAQ,GAAKrE,CAAA,CAEnE,EAEO,QAAS,CAAAuB,EAAoBvC,CAAa,CAAEG,CAAoB,EAErE,MADA,CAAAA,CAAA,CAAeiD,CAAA,CAAgBjD,CAAA,EACxBH,CAAA,CAASyC,KAAK,CAACD,IAAI,CACxBxC,CAAC,EACC,GAAA2B,CAAA,CAAAumB,iBAAgB,EAAExkB,QAAQ,CAAC1D,CAAA,CAAKqF,QAAQ,GAAKrF,CAAA,CAAKgc,IAAI,GAAK7b,CAAA,CAEjE,EAEO,QAAS,CAAAgD,EACdnD,CAAa,CACbG,CAAoB,CACpBa,CAAgB,EAEhB,MAAO,CAAAhB,CAAA,CAASyC,KAAK,CAACD,IAAI,CACxBxC,CAAC,EAAcA,CAAA,CAAKgc,IAAI,GAAK7b,CAAA,EAAgBH,CAAA,CAAKqF,QAAQ,GAAKrE,CAAA,CAEnE,EAEA,QAAS,CAAAoC,EAAgBpD,CAAoB,EAK3C,MAHqB,QAAjBA,CAAA,GACFA,CAAA,CAAe,KADjB,EAGOA,CACT,E"} \ No newline at end of file diff --git a/dist/legacy/setup-cpp.js b/dist/legacy/setup-cpp.js index 0c8ef841..88295f25 100644 --- a/dist/legacy/setup-cpp.js +++ b/dist/legacy/setup-cpp.js @@ -1,18 +1,18 @@ #!/usr/bin/env node -let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rY({env:n})],pathExt:t?n6.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=n6.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return iJ&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return rJ.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function w({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function y(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return y(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r5(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r2.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oq(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oB());});}),n.getBufferedValue();}function D(e,t,r){let n;let i=aa(e,t,r),o=o4(e,t),a=o5(e,t);ai(a,i.options),ok(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o0(e,Promise.reject(ou({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o1(n),l=oP(n,i.options,s),u=oU(n,i.options,l),c={isCanceled:!1};n.kill=oA.bind(null,n.kill.bind(n)),n.cancel=o$.bind(null,n,c);let d=rZ(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await oQ(n,i.options,u),f=as(i.options,l),h=as(i.options,p),m=as(i.options,d);if(e||0!==t||null!==r){let l=ou({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oz(n,i.options),n.all=oY(n,i.options),oj(n),o0(n,d),n;}function S(e,t,r){let n;let i=aa(e,t,r),o=o4(e,t),a=o5(e,t);ai(a,i.options);let s=oV(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw ou({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=as(i.options,n.stdout,n.error),u=as(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=ou({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){var e,t;return((null===(e=(t=process).getuid)||void 0===e?void 0:e.call(t))===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return S(r,n,t);}(A(e,t),r):S(e,R(t),r);}function I(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return D(r,n,t);}(A(e,t),r):D(e,R(t),r);}function A(e,t){return"sudo "+R([e,...t]).join(" ");}function R(e){return e.map(e=>`'${e}'`);}async function O(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(n8).statSync(e).isDirectory();await I("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ac);}}function C(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,n6.join)("/Users/",process.env.SUDO_USER):(0,n6.join)("/home/",process.env.SUDO_USER);{let e=(0,n5.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(ap,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function $(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aM(n,i.options,u),f=a2(i.options,l),h=a2(i.options,p),m=a2(i.options,d);if(e||0!==t||null!==r){let l=af({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return aL(n,i.options),n.all=aP(n,i.options),aR(n),aq(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function M(e,t,r=a7){let n=function(e,t=!1){let r=t?p(nv)(e):e;return p(nE)(r,'"',"\\");}(null!=t?t:"",r.shouldEscapeSpace);try{if(rR.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,ng.exportVariable)(e,n);}catch(t){(0,rO.error)(t),await j(e,n,r);}else await j(e,n,r);}catch(t){(0,rO.error)(t),(0,ng.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function F(e){if(!function(e){if(se.some(t=>t.test(e))){var t,r;return(null!==(r=null===(t=process.env.PATH)||void 0===t?void 0:t.split(n6.delimiter))&&void 0!==r?r:[]).includes(e);}return!1;}(e)){process.env.PATH=`${e}${n6.delimiter}${process.env.PATH}`;try{if(rR.GITHUB_ACTIONS)try{(0,ng.addPath)(e);}catch(t){(0,rO.error)(t),await q(e);}else await q(e);}catch(t){(0,rO.error)(t),(0,ng.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function j(e,t,r){let n=null!=t?t:"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,ng.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,n8.appendFileSync)(st,` +let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rY({env:n})],pathExt:t?ie.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=ie.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return i3&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return r0.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function w({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function y(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return y(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r8(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r5.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oV(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oX());});}),n.getBufferedValue();}function D(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options),oj(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o4(e,Promise.reject(of({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o5(n),l=oM(n,i.options,s),u=oq(n,i.options,l),c={isCanceled:!1};n.kill=o_.bind(null,n.kill.bind(n)),n.cancel=oU.bind(null,n,c);let d=r1(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await o1(n,i.options,u),f=ap(i.options,l),h=ap(i.options,p),m=ap(i.options,d);if(e||0!==t||null!==r){let l=of({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oQ(n,i.options),n.all=oJ(n,i.options),oH(n),o4(n,d),n;}function S(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options);let s=oW(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw of({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=ap(i.options,n.stdout,n.error),u=ap(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=of({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){var e,t;return((null===(e=(t=process).getuid)||void 0===e?void 0:e.call(t))===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return S(r,n,t);}(A(e,t),r):S(e,R(t),r);}function I(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return D(r,n,t);}(A(e,t),r):D(e,R(t),r);}function A(e,t){return"sudo "+R([e,...t]).join(" ");}function R(e){return e.map(e=>`'${e}'`);}async function O(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(it).statSync(e).isDirectory();await I("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ah);}}function C(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,ie.join)("/Users/",process.env.SUDO_USER):(0,ie.join)("/home/",process.env.SUDO_USER);{let e=(0,n7.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(am,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function L(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aB(n,i.options,u),f=a8(i.options,l),h=a8(i.options,p),m=a8(i.options,d);if(e||0!==t||null!==r){let l=av({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return aF(n,i.options),n.all=aM(n,i.options),aL(n),aV(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function F(e,t,r=sn){let n=function(e,t=!1){let r=t?p(nb)(e):e;return p(nx)(r,'"',"\\");}(null!=t?t:"",r.shouldEscapeSpace);try{if(rR.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ny.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,ny.exportVariable)(e,n);}catch(t){(0,rO.error)(t),await j(e,n,r);}else await j(e,n,r);}catch(t){(0,rO.error)(t),(0,ny.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function M(e){if(!function(e){if(si.some(t=>t.test(e))){var t,r;return(null!==(r=null===(t=process.env.PATH)||void 0===t?void 0:t.split(ie.delimiter))&&void 0!==r?r:[]).includes(e);}return!1;}(e)){process.env.PATH=`${e}${ie.delimiter}${process.env.PATH}`;try{if(rR.GITHUB_ACTIONS)try{(0,ny.addPath)(e);}catch(t){(0,rO.error)(t),await q(e);}else await q(e);}catch(t){(0,rO.error)(t),(0,ny.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function j(e,t,r){let n=null!=t?t:"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ny.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,ny.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,it.appendFileSync)(so,` if [ -z "\${${e}}" ]; then export ${e}="${n}"; fi -`),(0,ng.info)(`if not defined ${e} then ${e}="${n}" was added to "${st}`)):((0,n8.appendFileSync)(st,` +`),(0,ny.info)(`if not defined ${e} then ${e}="${n}" was added to "${so}`)):((0,it.appendFileSync)(so,` export ${e}="${n}" -`),(0,ng.info)(`${e}="${n}" was added to "${st}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,ng.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,n8.appendFileSync)(st,` +`),(0,ny.info)(`${e}="${n}" was added to "${so}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,ny.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,it.appendFileSync)(so,` export PATH="${e}:$PATH" -`),(0,ng.info)(`"${e}" was added to "${st}"`);return;default:return;}}async function B(){if(sr)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,nw.pathExists)(st))&&(0,n8.readFileSync)(st,"utf8").includes(e))return;(0,n8.appendFileSync)(st,` +`),(0,ny.info)(`"${e}" was added to "${so}"`);return;default:return;}}async function B(){if(sa)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,nD.pathExists)(so))&&(0,it.readFileSync)(so,"utf8").includes(e))return;(0,it.appendFileSync)(so,` ${e} -`),(0,ng.info)(`Added ${e} to ${st}`);let t=` +`),(0,ny.info)(`Added ${e} to ${so}`);let t=` # source .cpprc if SOURCE_CPPRC is not set to 0 -if [[ "$SOURCE_CPPRC" != 0 && -f "${st}" ]]; then source "${st}"; fi -`;try{let e=C("~/.profile");(0,n8.appendFileSync)(e,t),(0,ng.info)(`${t} was added to ${e}`);let r=C("~/.bashrc");(0,n8.appendFileSync)(r,t),(0,ng.info)(`${t} was added to ${r}`);}catch(e){(0,rO.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sr=!0;}async function G(){if(await(0,nw.pathExists)(st)){let e=(0,n8.readFileSync)(st,"utf-8").split("\n"),t=[...new Set(e.reverse())].reverse();(0,n8.writeFileSync)(st,t.join("\n")),await O(st);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rO.info)(`Installing ${t} ${null!=r?r:""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!si||t)&&(Y(n),si=!0),so||(await W(n),so=!0);let i=[...new Set(e.flatMap(e=>{var t;return null!==(t=e.repositories)&&void 0!==t?t:[];}))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);Y(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sa.some(e=>t.includes(e))&&((0,rO.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("apt-cache",["search","--names-only",`^${(0,ny.default)(e)}-${(0,ny.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await D("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await D("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${null!=t?t:""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function Y(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function W(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[Q(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),Q(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(M("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),M("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function K(){N("gpg",["-k"]);}async function Q(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,nw.pathExists)(n))||(K(),await Promise.all(e.map(async e=>{await I("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await I("chmod",["644",n]);}))),n;}catch(e){(0,rO.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function J(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,nw.pathExists)(r))||(K(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await D("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rR.GITHUB_ACTIONS?I("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),sn(st,` +if [[ "$SOURCE_CPPRC" != 0 && -f "${so}" ]]; then source "${so}"; fi +`;try{let e=C("~/.profile");(0,it.appendFileSync)(e,t),(0,ny.info)(`${t} was added to ${e}`);let r=C("~/.bashrc");(0,it.appendFileSync)(r,t),(0,ny.info)(`${t} was added to ${r}`);}catch(e){(0,rO.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sa=!0;}async function G(){if(await(0,nD.pathExists)(so)){let e=[...new Set((0,it.readFileSync)(so,"utf-8").split("\n").reverse())].reverse();(0,it.writeFileSync)(so,e.join("\n")),await O(so);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rO.info)(`Installing ${t} ${null!=r?r:""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!sl||t)&&(Y(n),sl=!0),su||(await W(n),su=!0);let i=[...new Set(e.flatMap(e=>{var t;return null!==(t=e.repositories)&&void 0!==t?t:[];}))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);Y(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sc.some(e=>t.includes(e))&&((0,rO.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("apt-cache",["search","--names-only",`^${(0,nS.default)(e)}-${(0,nS.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await D("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await D("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${null!=t?t:""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function Y(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function W(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[Q(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),Q(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(F("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),F("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function K(){N("gpg",["-k"]);}async function Q(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,nD.pathExists)(n))||(K(),await Promise.all(e.map(async e=>{await I("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await I("chmod",["644",n]);}))),n;}catch(e){(0,rO.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function J(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,nD.pathExists)(r))||(K(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await D("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rR.GITHUB_ACTIONS?I("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),ss(so,` if [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${e} ${e} ${t} ${r}; fi -`));}async function ee(e){try{let{stdout:t}=await D("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nx.dirname)(i)};let o=p(n6).join((0,n5.tmpdir)(),"setup-cpp","brew");await(0,nD.mkdirP)(o),S("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,n6.join)(o,"install.sh");return"linux"===process.platform&&(0,n8.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),S("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await F(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,ng.info)(`Installing ${e} ${null!=t?t:""} via brew`),ss&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),ss=!0);let n=er();return S((0,nx.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){var i;if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let o=p(rP).sync("choco",{nothrow:!0});if(null!==o)return{binDir:r=(0,nx.dirname)(o)};let a="powershell.exe",s=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==s&&(a=s),S(a,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let l=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await F(l);let u=p(rP).sync("choco",{nothrow:!0});if(r=null!==u?(0,nx.dirname)(u):`${null!==(i=process.env.ChocolateyInstall)&&void 0!==i?i:"C:/ProgramData/chocolatey"}/bin`,await(0,nw.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){var n;(0,rO.info)(`Installing ${e} ${null!=t?t:""} via chocolatey`),sl&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sl=!0);let i=process.env.PATH,o={...process.env};if(delete o.TMP,delete o.TEMP,delete o.Path,o.PATH=i,void 0!==t&&""!==t)S("choco",["install","-y",e,"--version="+t,...r],{env:o,extendEnv:!1,stdio:"inherit"});else try{S("choco",["install","-y",e,...r],{env:o,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rO.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let a=`${null!==(n=process.env.ChocolateyInstall)&&void 0!==n?n:"C:/ProgramData/chocolatey"}/bin`;return await F(a),{binDir:a};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rO.info)(`Installing ${t} ${null!=r?r:""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await D("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rO.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await J("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rO.info)(`Installing ${e} ${null!=t?t:""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);su||"yay"===r||(N(n,["-Sy","--noconfirm"]),su=!0),sc||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sc=!0);let i=e=>"yay"===r?S(r,["-S","--noconfirm",e]):N(null!=r?r:n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rO.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await D(e,["-Si",t]);for(let e of n.matchAll(sp))r.push(e[1]);}catch(e){(0,rO.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sg.arch();let n=sv.join(ey(),e);if(sh.existsSync(n)){for(let e of sh.readdirSync(n))if(eE(e)){let i=sv.join(n,e,t||"");sh.existsSync(i)&&sh.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nR(this,void 0,void 0,function*(){return e||(e=sv.join(eb(),sx.default())),yield sf.mkdirP(e),e;});}function eg(e,t,r){return nR(this,void 0,void 0,function*(){let n=sv.join(ey(),e,sw.clean(t)||t,r||"");sd.debug("destination "+n);let i=`${n}.complete`;return yield sf.rmRF(n),yield sf.rmRF(i),yield sf.mkdirP(n),n;});}function ev(e,t,r){let n=sv.join(ey(),e,sw.clean(t)||t,r||""),i=`${n}.complete`;sh.writeFileSync(i,""),sd.debug("finished caching tool");}function eE(e){let t=sw.clean(e)||"";sd.debug("isExplicit: "+t);let r=null!=sw.valid(t);return sd.debug("explicit? "+r),r;}function ew(e,t){let r="";sd.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sw.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sw.satisfies(i,t)){r=i;break;}}return r?sd.debug("matched: "+r):sd.debug("match not found"),r;}function ey(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rS[e];return void 0!==r?r:t;}function eD(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sI(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nS.downloadTool)(s),{name:s,max:4,backoffBase:2e3,report:e=>(0,rO.info)(e)});sA||((0,rO.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),sA=!0),(0,rO.info)(`Extracting ${r} to ${n}`),await(null==d?void 0:d(r,n));}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${s}: ${r}`);}return(0,rO.info)(`Add ${h} to PATH`),await F(h),rR.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nS.cacheDir)(n,e,t)),{installDir:f,binDir:h};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await D(await eI(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await O(t),t;}async function eI(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eA(e,t){return eN(e,t);}function eR(e,t){return eN(e,t);}async function eO(e,t,r=["--strip-components=0"]){try{await(0,nD.mkdirP)(t);}catch{}try{await D("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rO.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return O(t),t;}function eC(e,t,r){var n;let i=null!==(n=p(nM)(e))&&void 0!==n?n:e;switch(t){case"win32":{let t;let n=p(nU)(i,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?n?"win32-x86":"windows-i386":n?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eR,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nU)(i,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nS.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let n=p(nU)(i,"v3.19.8");t=["aarch64"].includes(r)?n?"Linux-aarch64":"linux-aarch64":n?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nS.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eS("cmake",e,eC,t,r);}function e$(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nq.call(e,0):[];}function eL(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?eL:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nj[r]||(t[r]=e[r]);return t;}(t)),d=new nB(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,w=d.shouldUpdateOnHit,y=function(){var t=g?e$(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)w&&u(d,p,y),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,y));else{var n=e.apply(this,arguments),i=g?t:e$(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(y),v&&s(d,p,y),E&&l(d,p,y);}return h[0];};return y.cache=d,y.fn=e,y.isMemoized=!0,y.options=p,y;}function eU(e,t){return new Promise(r=>{try{let n=(0,ie.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eM(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nV)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function eF(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nH(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eM(e,r)){let e=await n(t,o);if(null!==e){if(await nH(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function ej(e,t=sR){try{var r,n;let i=await(0,nC.getExecOutput)(e,["--version"]),o=i.stdout||i.stderr||"",a=null===(r=o.trim().match(t))||void 0===r?void 0:r[1];return null!==(n=p(nM)(a))&&void 0!==n?n:void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sR){let n=await ej(e,r);return void 0!==n&&""!==t&&-1!==p(nV)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eK(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await D(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rO.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rO.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eY(t);if(void 0!==i){let e=(0,nx.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rR.GITHUB_ACTIONS)try{(0,rO.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rI("fEioR");await o(e,t,r),i=await eY(t);let a=(0,nx.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rO.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eY(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eY(e),i=(0,nx.dirname)(n);await F(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await D("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nx.join)(e.stdout,"libexec","bin");await F(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eY(e){for(let t of["python3","python"]){let r=await eW(t,e);if(void 0!==r)return r;}}async function eW(e,t){try{var r;if(void 0!==t){let r=(0,nx.join)(t,(0,nx.addExeExt)(e));if((await(0,nw.pathExists)(r))&&(await eq(r,sC.python)))return r;}for(let t of null!==(r=await p(rP)(e,{nothrow:!0,all:!0}))&&void 0!==r?r:[])if(await eq(t,sC.python))return t;}catch{}}async function eK(e){let t=await eQ();return void 0===t?((0,rO.info)("pip was not found. Installing pip"),await eZ(e),eQ()):t;}async function eQ(){for(let e of["pip3","pip"]){let t=await eJ(e);if(void 0!==t)return t;}}async function eJ(e){try{var t;for(let r of null!==(t=await p(rP)(e,{nothrow:!0,all:!0}))&&void 0!==t?t:[])if(null!==r&&(await eq(r,sC.pip)))return r;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await D(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rO.info)(t.toString());try{return await D(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rO.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nC.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nx.join)(r,"Scripts"),(0,nx.join)(r,"Scripts","bin"),(0,nx.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in s_?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,s_[e]):e2(t)&&e in sO?sO[e]:"true"===t?"":null!=t?t:"";}function e2(e){return"true"===e||void 0===e;}async function e4(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e5(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nz.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rO.warning)(e.toString()),null;}}function e6(){let e=p(n5).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await sJ(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,ng.info)(`Installing ${t} ${null!=r?r:""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await sK(),i.PIPX_BIN_DIR=await sQ()),S(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,ng.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await s$(e),p=await ti(c,t);return await F(p),{binDir:p};}async function e7(e){return 0===(await D(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=C("~/.local/pipx");if(await(0,nw.pathExists)(t))return t;switch(process.platform){case"win32":e=C("~/AppData/Local/pipx");break;case"darwin":e=C("~/Library/Application Support/pipx");break;default:e=C("~/.local/share/pipx");}return await sW(e),await sW((0,nx.join)(e,"trash")),await sW((0,nx.join)(e,"shared")),await sW((0,nx.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=C("~/.local/bin");return await F(e),await sW(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await sL()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await D(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,nw.pathExists)((0,nx.join)(e,(0,nx.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nx.addExeExt)(t),{nothrow:!0});return null!==n?(0,nx.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,ng.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await F(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await F(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nY({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s3[s>>18]+s3[s>>12&s1]+s3[null===o?64:s>>6&s1]+s3[null===a?64:s&s1];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lo(),{devices:n,eject:i}=await r.attach(e),o=n[0];await I("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nS.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eR,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nF)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rO.info)(e)});let t=await tw();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eS("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s0()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eS("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rO.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rO.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await sL()),"",r),n;}default:throw Error("Unsupported platform");}}async function tw(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,nw.pathExists)((0,nx.join)(e,"doxygen.exe")))return await F(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function ty(){if("darwin"===process.platform)try{let e=await(0,nC.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await M("SDKROOT",t.trim()):(0,rO.error)("SDKROOT not set");}catch(e){(0,rO.error)(e);}}function tb(e,t,r){if("win32"===t){let t=la[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eS("g++",e,tb,t,r);}catch(t){(0,rO.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tS(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rO.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tD(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tS(e,t){var r,n;let i;if(await eo("mingw",e),"x64"===t&&(await(0,nw.pathExists)("C:/tools/mingw64/bin"))?(i="C:/tools/mingw64/bin",await F(i)):"ia32"===t&&(await(0,nw.pathExists)("C:/tools/mingw32/bin"))?(i="C:/tools/mingw32/bin",await F(i)):(await(0,nw.pathExists)(`${null!==(r=process.env.ChocolateyInstall)&&void 0!==r?r:"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(i=`${null!==(n=process.env.ChocolateyInstall)&&void 0!==n?n:"C:/ProgramData/chocolatey"}/bin`),void 0!==i)return{binDir:i};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(M("CC",(0,nx.addExeExt)(`${t}/gcc`)),M("CXX",(0,nx.addExeExt)(`${t}/g++`)));else{var i;let o=p(nK)(null!==(i=p(nM)(e))&&void 0!==i?i:e);o>=5?(n.push(M("CC",`${t}/gcc-${o}`),M("CXX",`${t}/g++-${o}`)),ec()&&n.push(Z("cc",`${t}/gcc-${o}`,r),Z("cxx",`${t}/g++-${o}`,r),Z("gcc",`${t}/gcc-${o}`,r),Z("g++",`${t}/g++-${o}`,r))):(n.push(M("CC",`${t}/gcc-${e}`),M("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(ty()),rR.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nx.join)(nQ,"gcc_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rO.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}function tI(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eR,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tA(e,t,r){return eS("ninja",e,tI,t,r);}function tR(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:eO};}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:tC};}async function tC(e,t){let r=await eO(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nx.join)(nJ,"gcc13.patch");await D("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rO.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nx.join)(r,"build");return await D(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await D(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await sL()),(0,nx.join)(C("~"),"cmake"),"");e=(0,nx.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tA(e3("ninja",void 0,await sL()),(0,nx.join)(C("~"),"ninja"),"")),e;}async function t$(e,t,r){var n;let i;if("linux"!==process.platform){(0,rO.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eS("kcov",a,tR,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eS("kcov",a,tO,t,r),i;}function tL(e){if(Object.values(lp).includes(e));else if(e in lp)return lp[e];return e;}function tP(e){let t;let r=tL(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){ng.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&n8.existsSync(n))return ng.info("Found with vswhere: "+n),n;ng.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lp).includes(e));else for(let[t,r]of Object.entries(lp))if(r===e)return t;return e;}(e)]:lc;for(let e of ll)for(let t of i)for(let r of lu)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,ng.info("Trying standard location: "+n),n8.existsSync(n))return ng.info("Found standard location: "+n),n;if(ng.info("Not found in standard locations"),n=`${ls}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,n8.existsSync(n))return ng.info("Found VS 2015: "+n),n;throw ng.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,nw.pathExists)(t))&&((0,rO.info)(`Adding ${t} to PATH`),await M("VCTargetsPath",t)),n1(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lv){(0,ng.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(lg(e)),e.addEventListener("abort",()=>{l(lg(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lf();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=null!=o?o:`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tM(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rO.error)(t),a.push(`${e} failed to install`);}return(0,ng.endGroup)(),l;}async function tM(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lC[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nx.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tF(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await D("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tj("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await ly("/tmp/llvm-setup-cpp.sh","755"),await I("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lv}),await F(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tj(e,t,r,n){var i,o,a,s,l;let u=await lE(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await lw(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rD.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lx.has(e))return null;let r="LLVM-",n=p(nU)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nU)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nH(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lD.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nU)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lS.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lb.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eM(lb,e)[0];}else""!==n&&n in lT?t=lT[n]:(t=lT[lN],(0,rO.warning)(`Falling back to LLVM version ${lN} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nU)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await eF(lb,t,e,tV);return(0,rO.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nx.addExeExt)("clang"),extractFunction:"win32"===t?eA:(e,t)=>eO(e,t,["--strip-components=1"])};}async function tz(e,t,r){var n;let i=await lI(e,t,r);return await tJ(null!==(n=i.installDir)&&void 0!==n?n:t),i;}async function tY(e,t,r){let[n,i,o]=await Promise.all([tW(e,t,r),lR(r),tZ()]);return n;}async function tW(e,t,r,n=n3.All){let i=parseInt(function(e){if(null===p(nX)(e))try{let t=p(nM)(e);if(null!==t)return(0,rO.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tF(i,n);}catch(e){(0,rO.info)("Failed to install llvm via system package manager "+e);}let o=await eS("llvm",e,tX,t,r);return await lA(i),o;}async function tK(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tQ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await sL()),"",e,40));}async function tJ(e){var t,r;let n=null!==(t=process.env.LD_LIBRARY_PATH)&&void 0!==t?t:"",i=null!==(r=process.env.DYLD_LIBRARY_PATH)&&void 0!==r?r:"",o=[M("LLVM_PATH",e),M("LD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${n}`),M("DYLD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${i}`),M("LDFLAGS",`-L"${e}/lib"`),M("CPPFLAGS",`-I"${e}/include"`),M("CC",(0,nx.addExeExt)(`${e}/bin/clang`)),M("CXX",(0,nx.addExeExt)(`${e}/bin/clang++`)),M("LIBRARY_PATH",`${e}/lib`),ty()];ec()&&o.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(o);}async function tZ(){if(rR.GITHUB_ACTIONS){let e=(0,nx.join)(n2,"llvm_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rO.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await F("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=nZ(e);(0,rO.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n0(l);u=!0,(0,rO.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rO.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rO.error)(e);}await tk(l,s,r,a,n,i,o),rR.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nx.join)(n4,"msvc_matcher.json");if(!(await(0,nw.pathExists)(e)))return(0,rO.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nx.dirname)(n)};let i=await J("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t4(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t5()};}async function t5(){let e="C:/Program Files/OpenCppCoverage";return await F(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await F(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await sL(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eR:eO,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return lO&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nx.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,nw.pathExists)((0,nx.join)(t,(0,nx.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rO.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):S("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nx.dirname)(t),stdio:"inherit"}),S((0,nx.addShExt)((0,nx.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await O(t),await F(t),lO=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nX)(e)||(0,rO.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,ng.startGroup)(`Installing ${s} ${null!=l?l:""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,n6.join)(r,"llvm"),n);await M("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tD(e,(0,n6.join)(r,"gcc"),n):await tx(e,(0,n6.join)(r,"gcc"),n);o&&(await M("CPPFLAGS","")),await function(e){let t=p(nX)(e),r=null!==t?p(nK)(t):e;return M("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,n6.join)(r,"msvc"),n);o&&(await M("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,ng.notice)("Assuming apple-clang is already installed"),await Promise.all([M("CC","clang"),M("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rO.error)(t),a.push("Failed to install the "+e);}(0,ng.endGroup)();}async function rt(e){var t,r,n;let i,o,a=Promise.resolve();rR.GITHUB_ACTIONS||(a=L(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let s=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...l$,"timeout"],default:Object.fromEntries(l$.map(e=>[e,function(e){let t=(0,ng.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});s.help&&((0,rO.info)(` +`));}async function ee(e){try{let{stdout:t}=await D("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nN.dirname)(i)};let o=p(ie).join((0,n7.tmpdir)(),"setup-cpp","brew");await(0,nI.mkdirP)(o),S("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,ie.join)(o,"install.sh");return"linux"===process.platform&&(0,it.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),S("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await M(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,ny.info)(`Installing ${e} ${null!=t?t:""} via brew`),sp&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),sp=!0);let n=er();return S((0,nN.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){var i;if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let o=p(rP).sync("choco",{nothrow:!0});if(null!==o)return{binDir:r=(0,nN.dirname)(o)};let a="powershell.exe",s=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==s&&(a=s),S(a,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let l=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await M(l);let u=p(rP).sync("choco",{nothrow:!0});if(r=null!==u?(0,nN.dirname)(u):`${null!==(i=process.env.ChocolateyInstall)&&void 0!==i?i:"C:/ProgramData/chocolatey"}/bin`,await(0,nD.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){var n;(0,rO.info)(`Installing ${e} ${null!=t?t:""} via chocolatey`),sd&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sd=!0);let i=process.env.PATH,o={...process.env};if(delete o.TMP,delete o.TEMP,delete o.Path,o.PATH=i,void 0!==t&&""!==t)S("choco",["install","-y",e,"--version="+t,...r],{env:o,extendEnv:!1,stdio:"inherit"});else try{S("choco",["install","-y",e,...r],{env:o,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rO.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let a=`${null!==(n=process.env.ChocolateyInstall)&&void 0!==n?n:"C:/ProgramData/chocolatey"}/bin`;return await M(a),{binDir:a};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rO.info)(`Installing ${t} ${null!=r?r:""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await D("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rO.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await J("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rO.info)(`Installing ${e} ${null!=t?t:""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);sf||"yay"===r||(N(n,["-Sy","--noconfirm"]),sf=!0),sh||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sh=!0);let i=e=>"yay"===r?S(r,["-S","--noconfirm",e]):N(null!=r?r:n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rO.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await D(e,["-Si",t]);for(let e of n.matchAll(sm))r.push(e[1]);}catch(e){(0,rO.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sy.arch();let n=sb.join(ey(),e);if(sE.existsSync(n)){for(let e of sE.readdirSync(n))if(eE(e)){let i=sb.join(n,e,t||"");sE.existsSync(i)&&sE.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nL(this,void 0,void 0,function*(){return e||(e=sb.join(eb(),sN.default())),yield sv.mkdirP(e),e;});}function eg(e,t,r){return nL(this,void 0,void 0,function*(){let n=sb.join(ey(),e,sD.clean(t)||t,r||"");sg.debug("destination "+n);let i=`${n}.complete`;return yield sv.rmRF(n),yield sv.rmRF(i),yield sv.mkdirP(n),n;});}function ev(e,t,r){let n=sb.join(ey(),e,sD.clean(t)||t,r||""),i=`${n}.complete`;sE.writeFileSync(i,""),sg.debug("finished caching tool");}function eE(e){let t=sD.clean(e)||"";sg.debug("isExplicit: "+t);let r=null!=sD.valid(t);return sg.debug("explicit? "+r),r;}function ew(e,t){let r="";sg.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sD.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sD.satisfies(i,t)){r=i;break;}}return r?sg.debug("matched: "+r):sg.debug("match not found"),r;}function ey(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rS[e];return void 0!==r?r:t;}function eD(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sC(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nA.downloadTool)(s),{name:s,max:4,backoffBase:2e3,report:e=>(0,rO.info)(e)});s_||((0,rO.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),s_=!0),(0,rO.info)(`Extracting ${r} to ${n}`),await(null==d?void 0:d(r,n));}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${s}: ${r}`);}return(0,rO.info)(`Add ${h} to PATH`),await M(h),rR.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nA.cacheDir)(n,e,t)),{installDir:f,binDir:h};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await D(await eI(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await O(t),t;}async function eI(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eA(e,t){return eN(e,t);}function eR(e,t){return eN(e,t);}async function eO(e,t,r=["--strip-components=0"]){try{await(0,nI.mkdirP)(t);}catch{}try{await D("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rO.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return O(t),t;}function eC(e,t,r){var n;let i=null!==(n=p(nB)(e))&&void 0!==n?n:e;switch(t){case"win32":{let t;let n=p(nq)(i,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?n?"win32-x86":"windows-i386":n?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eR,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nq)(i,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nA.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let n=p(nq)(i,"v3.19.8");t=["aarch64"].includes(r)?n?"Linux-aarch64":"linux-aarch64":n?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nA.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eS("cmake",e,eC,t,r);}function eL(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nV.call(e,0):[];}function e$(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?e$:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nH[r]||(t[r]=e[r]);return t;}(t)),d=new nX(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,w=d.shouldUpdateOnHit,y=function(){var t=g?eL(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)w&&u(d,p,y),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,y));else{var n=e.apply(this,arguments),i=g?t:eL(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(y),v&&s(d,p,y),E&&l(d,p,y);}return h[0];};return y.cache=d,y.fn=e,y.isMemoized=!0,y.options=p,y;}function eU(e,t){return new Promise(r=>{try{let n=(0,io.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eF(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nW)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function eM(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nY(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eF(e,r)){let e=await n(t,o);if(null!==e){if(await nY(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function ej(e,t=sL){try{var r,n;let i=await(0,nP.getExecOutput)(e,["--version"]),o=i.stdout||i.stderr||"",a=null===(r=o.trim().match(t))||void 0===r?void 0:r[1];return null!==(n=p(nB)(a))&&void 0!==n?n:void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sL){let n=await ej(e,r);return void 0!==n&&""!==t&&-1!==p(nW)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eK(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await D(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rO.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rO.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eY(t);if(void 0!==i){let e=(0,nN.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rR.GITHUB_ACTIONS)try{(0,rO.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rI("fEioR");await o(e,t,r),i=await eY(t);let a=(0,nN.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rO.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eY(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eY(e),i=(0,nN.dirname)(n);await M(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await D("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nN.join)(e.stdout,"libexec","bin");await M(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eY(e){for(let t of["python3","python"]){let r=await eW(t,e);if(void 0!==r)return r;}}async function eW(e,t){try{var r;if(void 0!==t){let r=(0,nN.join)(t,(0,nN.addExeExt)(e));if((await(0,nD.pathExists)(r))&&(await eq(r,sP.python)))return r;}for(let t of null!==(r=await p(rP)(e,{nothrow:!0,all:!0}))&&void 0!==r?r:[])if(await eq(t,sP.python))return t;}catch{}}async function eK(e){let t=await eQ();return void 0===t?((0,rO.info)("pip was not found. Installing pip"),await eZ(e),eQ()):t;}async function eQ(){for(let e of["pip3","pip"]){let t=await eJ(e);if(void 0!==t)return t;}}async function eJ(e){try{var t;for(let r of null!==(t=await p(rP)(e,{nothrow:!0,all:!0}))&&void 0!==t?t:[])if(null!==r&&(await eq(r,sP.pip)))return r;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await D(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rO.info)(t.toString());try{return await D(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rO.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nP.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nN.join)(r,"Scripts"),(0,nN.join)(r,"Scripts","bin"),(0,nN.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in sk?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,sk[e]):e2(t)&&e in s$?s$[e]:"true"===t?"":null!=t?t:"";}function e2(e){return"true"===e||void 0===e;}async function e4(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e5(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nQ.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rO.warning)(e.toString()),null;}}function e6(){let e=p(n7).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await s3(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,ny.info)(`Installing ${t} ${null!=r?r:""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await s0(),i.PIPX_BIN_DIR=await s1()),S(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,ny.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await sU(e),p=await ti(c,t);return await M(p),{binDir:p};}async function e7(e){return 0===(await D(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=C("~/.local/pipx");if(await(0,nD.pathExists)(t))return t;switch(process.platform){case"win32":e=C("~/AppData/Local/pipx");break;case"darwin":e=C("~/Library/Application Support/pipx");break;default:e=C("~/.local/share/pipx");}return await sZ(e),await sZ((0,nN.join)(e,"trash")),await sZ((0,nN.join)(e,"shared")),await sZ((0,nN.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=C("~/.local/bin");return await M(e),await sZ(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await sF()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await D(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,nD.pathExists)((0,nN.join)(e,(0,nN.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nN.addExeExt)(t),{nothrow:!0});return null!==n?(0,nN.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,ny.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await M(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await M(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nJ({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s6[s>>18]+s6[s>>12&s5]+s6[null===o?64:s>>6&s5]+s6[null===a?64:s&s5];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lu(),{devices:n,eject:i}=await r.attach(e),o=n[0];await I("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nA.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eR,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nG)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rO.info)(e)});let t=await tw();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eS("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s4()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eS("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rO.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rO.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await sF()),"",r),n;}default:throw Error("Unsupported platform");}}async function tw(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,nD.pathExists)((0,nN.join)(e,"doxygen.exe")))return await M(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function ty(){if("darwin"===process.platform)try{let e=await(0,nP.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await F("SDKROOT",t.trim()):(0,rO.error)("SDKROOT not set");}catch(e){(0,rO.error)(e);}}function tb(e,t,r){if("win32"===t){let t=lc[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eS("g++",e,tb,t,r);}catch(t){(0,rO.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tS(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rO.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tD(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tS(e,t){var r,n;let i;if(await eo("mingw",e),"x64"===t&&(await(0,nD.pathExists)("C:/tools/mingw64/bin"))?(i="C:/tools/mingw64/bin",await M(i)):"ia32"===t&&(await(0,nD.pathExists)("C:/tools/mingw32/bin"))?(i="C:/tools/mingw32/bin",await M(i)):(await(0,nD.pathExists)(`${null!==(r=process.env.ChocolateyInstall)&&void 0!==r?r:"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(i=`${null!==(n=process.env.ChocolateyInstall)&&void 0!==n?n:"C:/ProgramData/chocolatey"}/bin`),void 0!==i)return{binDir:i};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(F("CC",(0,nN.addExeExt)(`${t}/gcc`)),F("CXX",(0,nN.addExeExt)(`${t}/g++`)));else{var i;let o=p(n0)(null!==(i=p(nB)(e))&&void 0!==i?i:e);o>=5?(n.push(F("CC",`${t}/gcc-${o}`),F("CXX",`${t}/g++-${o}`)),ec()&&n.push(Z("cc",`${t}/gcc-${o}`,r),Z("cxx",`${t}/g++-${o}`,r),Z("gcc",`${t}/gcc-${o}`,r),Z("g++",`${t}/g++-${o}`,r))):(n.push(F("CC",`${t}/gcc-${e}`),F("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(ty()),rR.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nN.join)(n1,"gcc_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rO.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}function tI(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eR,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tA(e,t,r){return eS("ninja",e,tI,t,r);}function tR(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:eO};}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:tC};}async function tC(e,t){let r=await eO(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nN.join)(n3,"gcc13.patch");await D("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rO.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nN.join)(r,"build");return await D(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await D(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await sF()),(0,nN.join)(C("~"),"cmake"),"");e=(0,nN.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tA(e3("ninja",void 0,await sF()),(0,nN.join)(C("~"),"ninja"),"")),e;}async function tL(e,t,r){var n;let i;if("linux"!==process.platform){(0,rO.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eS("kcov",a,tR,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eS("kcov",a,tO,t,r),i;}function t$(e){if(Object.values(lm).includes(e));else if(e in lm)return lm[e];return e;}function tP(e){let t;let r=t$(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){ny.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&it.existsSync(n))return ny.info("Found with vswhere: "+n),n;ny.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lm).includes(e));else for(let[t,r]of Object.entries(lm))if(r===e)return t;return e;}(e)]:lh;for(let e of ld)for(let t of i)for(let r of lf)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,ny.info("Trying standard location: "+n),it.existsSync(n))return ny.info("Found standard location: "+n),n;if(ny.info("Not found in standard locations"),n=`${lp}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,it.existsSync(n))return ny.info("Found VS 2015: "+n),n;throw ny.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,nD.pathExists)(t))&&((0,rO.info)(`Adding ${t} to PATH`),await F("VCTargetsPath",t)),n5(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lb){(0,ny.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(ly(e)),e.addEventListener("abort",()=>{l(ly(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lv();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=null!=o?o:`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tF(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rO.error)(t),a.push(`${e} failed to install`);}return(0,ny.endGroup)(),l;}async function tF(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lP[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nN.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tM(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await D("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tj("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await lS("/tmp/llvm-setup-cpp.sh","755"),await I("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lb}),await M(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tj(e,t,r,n){var i,o,a,s,l;let u=await lx(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await lD(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rD.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lN.has(e))return null;let r="LLVM-",n=p(nq)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nq)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nY(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lI.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nq)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lA.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lT.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eF(lT,e)[0];}else""!==n&&n in lR?t=lR[n]:(t=lR[lO],(0,rO.warning)(`Falling back to LLVM version ${lO} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nq)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await eM(lT,t,e,tV);return(0,rO.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nN.addExeExt)("clang"),extractFunction:"win32"===t?eA:(e,t)=>eO(e,t,["--strip-components=1"])};}async function tz(e,t,r){var n;let i=await lC(e,t,r);return await tJ(null!==(n=i.installDir)&&void 0!==n?n:t),i;}async function tY(e,t,r){let[n,i,o]=await Promise.all([tW(e,t,r),lL(r),tZ()]);return n;}async function tW(e,t,r,n=n6.All){let i=parseInt(function(e){if(null===p(nK)(e))try{let t=p(nB)(e);if(null!==t)return(0,rO.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tM(i,n);}catch(e){(0,rO.info)("Failed to install llvm via system package manager "+e);}let o=await eS("llvm",e,tX,t,r);return await l_(i),o;}async function tK(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tQ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await sF()),"",e,40));}async function tJ(e){var t,r;let n=null!==(t=process.env.LD_LIBRARY_PATH)&&void 0!==t?t:"",i=null!==(r=process.env.DYLD_LIBRARY_PATH)&&void 0!==r?r:"",o=[F("LLVM_PATH",e),F("LD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${n}`),F("DYLD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${i}`),F("LDFLAGS",`-L"${e}/lib"`),F("CPPFLAGS",`-I"${e}/include"`),F("CC",(0,nN.addExeExt)(`${e}/bin/clang`)),F("CXX",(0,nN.addExeExt)(`${e}/bin/clang++`)),F("LIBRARY_PATH",`${e}/lib`),ty()];ec()&&o.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(o);}async function tZ(){if(rR.GITHUB_ACTIONS){let e=(0,nN.join)(n8,"llvm_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rO.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await M("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=n2(e);(0,rO.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n4(l);u=!0,(0,rO.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rO.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rO.error)(e);}await tk(l,s,r,a,n,i,o),rR.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nN.join)(n9,"msvc_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rO.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rO.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nN.dirname)(n)};let i=await J("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t4(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t5()};}async function t5(){let e="C:/Program Files/OpenCppCoverage";return await M(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await M(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await sF(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eR:eO,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return l$&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nN.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,nD.pathExists)((0,nN.join)(t,(0,nN.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rO.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):S("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nN.dirname)(t),stdio:"inherit"}),S((0,nN.addShExt)((0,nN.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await O(t),await M(t),l$=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nK)(e)||(0,rO.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,ny.startGroup)(`Installing ${s} ${null!=l?l:""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,ie.join)(r,"llvm"),n);await F("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tD(e,(0,ie.join)(r,"gcc"),n):await tx(e,(0,ie.join)(r,"gcc"),n);o&&(await F("CPPFLAGS","")),await function(e){let t=p(nK)(e),r=null!==t?p(n0)(t):e;return F("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,ie.join)(r,"msvc"),n);o&&(await F("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,ny.notice)("Assuming apple-clang is already installed"),await Promise.all([F("CC","clang"),F("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rO.error)(t),a.push("Failed to install the "+e);}(0,ny.endGroup)();}async function rt(e){var t,r,n;let i,o,a=Promise.resolve();rR.GITHUB_ACTIONS||(a=$(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let s=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...lU,"timeout"],default:Object.fromEntries(lU.map(e=>[e,function(e){let t=(0,ny.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});s.help&&((0,rO.info)(` setup-cpp [options] setup-cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true @@ -25,15 +25,15 @@ Install all the tools required for building and testing C++/C projects. --$tool_name pass "true" or pass the you would like to install for this tool. e.g. --conan true or --conan "1.42.1" All the available tools: -`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let l=null!==(t=s.architecture)&&void 0!==t?t:process.arch,u=null!==(r=process.env.SETUP_CPP_DIR)&&void 0!==r?r:C("~"),c=[],d=[],f=r$.create({autoloadLocales:!0});r$.addLocale(p(rL)),rC.addLocale(p(r_));let h=await sL();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(s,["llvm","clangtidy","clangformat"]))return(0,rO.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof s.cppcheck&&"string"==typeof s.gcovr&&((0,rO.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let m=!1,g=!1;for(let e of l_){if(rR.isCI&&0!==d.length){g=!0;break;}let t=s[e];void 0!==t&&(i=Date.now(),m=await tU(e,t,h,l,u,c,d,6e4*parseFloat(null!==(n=s.timeout)&&void 0!==n?n:"20")),o=Date.now(),(0,rO.info)("took "+(f.format(i,o)||"0 seconds")));}if(!g){let e=s.compiler;if(void 0!==e){let t=Date.now();await re(e,h,u,l,c,m,d);let r=Date.now();(0,rO.info)("took "+(f.format(t,r)||"0 seconds"));}}if(await G(),0===c.length&&0===d.length)return(0,rO.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(c.forEach(e=>(0,rO.success)(e)),d.forEach(e=>(0,rO.error)(e)),(0,rO.info)("setup-cpp finished"),!rR.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rO.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rO.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await a,0===d.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,rw,ry,rb,rx,rD,rS,rT,rN,rI,rA,rR,rO,rC,r_,r$,rL,rP,rk,rU,rM,rF,rj,rq,rB,rG,rH,rV,rX,rz,rY,rW,rK,rQ,rJ,rZ,r0,r1,r3,r2,r4,r5,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,nw,ny,nb,nx,nD,nS,nT,nN,nI,nA,nR,nO,nC,n_,n$,nL,nP,nk,nU,nM,nF,nj,nq,nB,nG,nH,nV,nX,nz,nY,nW,nK,nQ,nJ,nZ,n0,n1,n3,n2,n4,n5=require("os"),n6=require("path"),n8=require("fs"),n9=require("crypto"),n7=require("http"),ie=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),rw=require("stream"),ry=require("util"),rb=require("process"),rx=require("url"),rD=require("console"),rT={},rN={},null==(rI=(rS=globalThis).parcelRequire810d)&&((rI=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rS.parcelRequire810d=rI),(rA=rI.register)("dAuy6",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rI("5vZJI");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rA("5vZJI",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rA("hHq4F",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rI("1o3Gj"),n=rI("dAuy6");}),rA("1o3Gj",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rI("1g3mY"),s=rI("8prV6"),l=rI("5nnws");let E=i(n5),w=i(n6);u=rI("dU1e3"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${w.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} -Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rI("dV9Cu"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rI("dV9Cu"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rI("9i0tI"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rA("1g3mY",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n5);o=rI("5nnws"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rA("5nnws",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rA("8prV6",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(n8),l=i(n5);o=rI("1Un9O"),a=rI("5nnws"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rA("1Un9O",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rI("jyKkd"),n=rI("4DdbA"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rA("jyKkd",function(e,t){function r(){return i>n.length-16&&(p(n9).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rA("4DdbA",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("4XBHo");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rA("4XBHo",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("dcWu5"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rA("dcWu5",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rA("dU1e3",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rI("eamjo"),i=rI("h6tQO"),o=rI("1o3Gj");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. +`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let l=null!==(t=s.architecture)&&void 0!==t?t:process.arch,u=null!==(r=process.env.SETUP_CPP_DIR)&&void 0!==r?r:C("~"),c=[],d=[],f=rL.create({autoloadLocales:!0});rL.addLocale(p(r$)),rC.addLocale(p(r_));let h=await sF();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(s,["llvm","clangtidy","clangformat"]))return(0,rO.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof s.cppcheck&&"string"==typeof s.gcovr&&((0,rO.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let m=!1,g=!1;for(let e of lk){if(rR.isCI&&0!==d.length){g=!0;break;}let t=s[e];void 0!==t&&(i=Date.now(),m=await tU(e,t,h,l,u,c,d,6e4*parseFloat(null!==(n=s.timeout)&&void 0!==n?n:"20")),o=Date.now(),(0,rO.info)("took "+(f.format(i,o)||"0 seconds")));}if(!g){let e=s.compiler;if(void 0!==e){let t=Date.now();await re(e,h,u,l,c,m,d);let r=Date.now();(0,rO.info)("took "+(f.format(t,r)||"0 seconds"));}}if(await G(),0===c.length&&0===d.length)return(0,rO.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(c.forEach(e=>(0,rO.success)(e)),d.forEach(e=>(0,rO.error)(e)),(0,rO.info)("setup-cpp finished"),!rR.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rO.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rO.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await a,0===d.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,rw,ry,rb,rx,rD,rS,rT,rN,rI,rA,rR,rO,rC,r_,rL,r$,rP,rk,rU,rF,rM,rj,rq,rB,rG,rH,rV,rX,rz,rY,rW,rK,rQ,rJ,rZ,r0,r1,r3,r2,r4,r5,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,nw,ny,nb,nx,nD,nS,nT,nN,nI,nA,nR,nO,nC,n_,nL,n$,nP,nk,nU,nF,nM,nj,nq,nB,nG,nH,nV,nX,nz,nY,nW,nK,nQ,nJ,nZ,n0,n1,n3,n2,n4,n5,n6,n8,n9,n7=require("os"),ie=require("path"),it=require("fs"),ir=require("crypto"),ii=require("http"),io=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),rw=require("stream"),ry=require("util"),rb=require("process"),rx=require("url"),rD=require("console"),rT={},rN={},null==(rI=(rS=globalThis).parcelRequire810d)&&((rI=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rS.parcelRequire810d=rI),(rA=rI.register)("dAuy6",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rI("5vZJI");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rA("5vZJI",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rA("hHq4F",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rI("1o3Gj"),n=rI("dAuy6");}),rA("1o3Gj",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rI("1g3mY"),s=rI("8prV6"),l=rI("5nnws");let E=i(n7),w=i(ie);u=rI("dU1e3"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${w.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rI("dV9Cu"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rI("dV9Cu"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rI("9i0tI"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rA("1g3mY",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n7);o=rI("5nnws"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rA("5nnws",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rA("8prV6",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(it),l=i(n7);o=rI("1Un9O"),a=rI("5nnws"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rA("1Un9O",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rI("jyKkd"),n=rI("4DdbA"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rA("jyKkd",function(e,t){function r(){return i>n.length-16&&(p(ir).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rA("4DdbA",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("4XBHo");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rA("4XBHo",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rI("dcWu5"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rA("dcWu5",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rA("dU1e3",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rI("eamjo"),i=rI("h6tQO"),o=rI("1o3Gj");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. Error Code : ${e.statusCode} - Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rA("eamjo",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(n7),d=i(ie),f=i(rI("jnrYh")),h=i(rI("3RDK7"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class w{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=w,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new w(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},y(this.requestOptions.headers),y(e||{})):y(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=y(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let y=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rA("jnrYh",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rA("3RDK7",function(e,t){e.exports=rI("jZQ4B");}),rA("jZQ4B",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||n7.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=n7.request,t;},n=function(e){var t=new l(e);return t.request=n7.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=ie.request,t;},o=function(e){var t=new l(e);return t.request=ie.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},a=s=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:function(){};}),rA("h6tQO",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rA("dV9Cu",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=n8.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,n8.constants.R_OK|n8.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n5.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rA("9i0tI",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(n6);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rA("kswPT",function(e,t){var r=n6.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rA("foOBZ",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rI("6OFKY"),i=rI("5GOZM");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){var t;let r=s[e.locale],n=e.unitTypeLookupOrder.slice();n.unshift(e.unitType),t=n;let i=null;if((n=Array.from(new Set(t))).some(function(e){if(void 0!==r[e])return i=r[e],!0;}),null===i)throw Error("Can not find any unit type data for locale: "+e.locale);return i;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rA("6OFKY",function(e,t){e.exports=rI("kswPT");}),rA("5GOZM",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rA("8nJMC",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),m("COERCERTL",u[c.COERCE],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rA("iXsaM",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rA("jl9Uf",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rA("8cXe9",function(e,t){var r=rI("jl9Uf"),n=rI("iXsaM"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rI("hhSwF"),s=a.safeRe,l=a.t,u=rI("5v8m5"),c=rI("dAM2Q").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rA("5v8m5",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rA("dAM2Q",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rA("cHnHr",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rA("2kZmC",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rA("3Ixw1",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rA("5r5vN",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rA("bDrwm",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rA("lORAA",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).major;}),rA("2Lh6z",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).minor;}),rA("73KaH",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).patch;}),rA("j5Xr5",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rA("jDqfd",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rA("2QKGl",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(t,e,n);}),rA("3puHo",function(e,t){var r=rI("jDqfd");e.exports=(e,t)=>r(e,t,!0);}),rA("7qrQi",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rA("hZ1Xd",function(e,t){var r=rI("7qrQi");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rA("3YOIj",function(e,t){var r=rI("7qrQi");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rA("cOpcP",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(e,t,n)>0;}),rA("58P10",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0>r(e,t,n);}),rA("lTmeS",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0===r(e,t,n);}),rA("jzqBf",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0!==r(e,t,n);}),rA("3XWvL",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rA("hlfY9",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0>=r(e,t,n);}),rA("84iFB",function(e,t){var r=rI("lTmeS"),n=rI("jzqBf"),i=rI("cOpcP"),o=rI("3XWvL"),a=rI("58P10"),s=rI("hlfY9");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rA("6v1Be",function(e,t){var r=rI("8cXe9"),n=rI("cHnHr"),i=rI("hhSwF"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let t;for(;(t=o[a.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&t.index+t[0].length===i.index+i[0].length||(i=t),o[a.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[a.COERCERTL].lastIndex=-1;}else i=e.match(o[a.COERCE]);return null===i?null:n(`${i[2]}.${i[3]||"0"}.${i[4]||"0"}`,t);};}),rA("1bxhC",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rI("5v8m5"),o=rI("hhSwF"),a=o.safeRe,s=o.t,l=rI("84iFB"),u=rI("jl9Uf"),c=rI("8cXe9"),p=rI("bswWF");}),rA("bswWF",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,O(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>y(e,this.options)).join(" ").split(/\s+/).map(e=>R(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>w(r,t)&&e.set.some(e=>w(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,w=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},y=(e,t)=>(a("comp",e,t),a("caret",e=S(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=A(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>D(e,t)).join(" "),D=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},S=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>I(e,t)).join(" ")),I=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},A=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),R=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),O=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),C=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rA("31A6g",function(e,t){var r=rI("i08Cw");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let w=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;w(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;w(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rA("i08Cw",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rA("4zfp3",function(e,t){var r=rI("bswWF");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rA("ga5uZ",function(e,t){var r=rI("8cXe9"),n=rI("bswWF");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rA("lPGVL",function(e,t){var r=rI("8cXe9"),n=rI("bswWF");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rA("1I8AA",function(e,t){var r=rI("8cXe9"),n=rI("bswWF"),i=rI("cOpcP");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rA("dBtft",function(e,t){var r=rI("bswWF");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rA("83Sp2",function(e,t){var r=rI("8cXe9"),n=rI("1bxhC");let{ANY:i}=n;var o=rI("bswWF"),a=rI("42oIR"),s=rI("cOpcP"),l=rI("58P10"),u=rI("hlfY9"),c=rI("3XWvL");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rA("eK4my",function(e,t){var r=rI("83Sp2");e.exports=(e,t,n)=>r(e,t,">",n);}),rA("eNXBI",function(e,t){var r=rI("83Sp2");e.exports=(e,t,n)=>r(e,t,"<",n);}),rA("kHzUo",function(e,t){var r=rI("bswWF");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rA("1x2XZ",function(e,t){var r=rI("42oIR"),n=rI("jDqfd");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,w=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!w&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rA("8CJZb",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rA("6t4SD",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rA("eAXk4",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function w(e,t=!0){return t?(0,n6.basename)(e):(0,n6.basename)(e,(0,n6.extname)(e));}function y(e){return(0,n6.normalize)(e).replace(RegExp((0,r.default)(n6.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,n6.extname)(e),n=`${t}${(0,n6.basename)(e,r)}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function D(e,t){let r=(0,n6.extname)(e),n=`${(0,n6.basename)(e,r)}${t}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function S(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,n6.extname)(e).length;return e.slice(0,-t);}function I(e,t){return p(n)(e,t);}function A(e,t){let r=(0,n6.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+n6.sep)||r===(0,n6.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>S),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>n6.dirname),c(e.exports,"join",()=>n6.join),r=rI("f44Uw"),n=rI("fBJE3"),i={},E(o={},"name",()=>w),E(a={},"normalizeTrim",()=>y),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>D),E(d={},"addShExt",()=>S),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>I),E(g={},"isPathInside",()=>A),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rA("f44Uw",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rA("fBJE3",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=n6.basename(e,n6.extname(e))+t,i=n6.join(n6.dirname(e),n);return(r=e.slice(0,2))==="."+n6.sep||"./"===r?"."+n6.sep+i:i;};}),rA("zdagz",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(n6),p=i(rI("fwMQK"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rA("fwMQK",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(n8),u=i(n6);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rA("gn8Si",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rI("0306Y"));a=rI("1o3Gj"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n5.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n5.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return n8.existsSync(e)?r=n8.readFileSync(e).toString():n8.existsSync(t)&&(r=n8.readFileSync(t).toString()),r;};}),rA("0306Y",function(e,t){function r(e){R[e]=O++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>D||!(t.loose?I[R.LOOSE]:I[R.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>D)throw TypeError("version is longer than "+D+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?I[R.LOOSE]:I[R.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>S||this.major<0)throw TypeError("Invalid major version");if(this.minor>S||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>S||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===L?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function w(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function y(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(y(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,w=w||e,i(e.semver,E.semver,n)?E=e:s(e.semver,w.semver,n)&&(w=e);}),E.operator===c||E.operator===p||(!w.operator||w.operator===c)&&a(e,w.semver)||w.operator===p&&s(e,w.semver))return!1;}return!0;}t=e.exports=o,x="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",D=256,S=Number.MAX_SAFE_INTEGER||9007199254740991,T=D-6,N=t.re=[],I=t.safeRe=[],A=t.src=[],R=t.tokens={},O=0,_=[["\\s",1],["\\d",D],[C="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),A[R.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),A[R.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),A[R.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+C+"*",r("MAINVERSION"),A[R.MAINVERSION]="("+A[R.NUMERICIDENTIFIER]+")\\.("+A[R.NUMERICIDENTIFIER]+")\\.("+A[R.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),A[R.MAINVERSIONLOOSE]="("+A[R.NUMERICIDENTIFIERLOOSE]+")\\.("+A[R.NUMERICIDENTIFIERLOOSE]+")\\.("+A[R.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),A[R.PRERELEASEIDENTIFIER]="(?:"+A[R.NUMERICIDENTIFIER]+"|"+A[R.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),A[R.PRERELEASEIDENTIFIERLOOSE]="(?:"+A[R.NUMERICIDENTIFIERLOOSE]+"|"+A[R.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),A[R.PRERELEASE]="(?:-("+A[R.PRERELEASEIDENTIFIER]+"(?:\\."+A[R.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),A[R.PRERELEASELOOSE]="(?:-?("+A[R.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+A[R.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),A[R.BUILDIDENTIFIER]=C+"+",r("BUILD"),A[R.BUILD]="(?:\\+("+A[R.BUILDIDENTIFIER]+"(?:\\."+A[R.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),A[R.FULLPLAIN]="v?"+A[R.MAINVERSION]+A[R.PRERELEASE]+"?"+A[R.BUILD]+"?",A[R.FULL]="^"+A[R.FULLPLAIN]+"$",r("LOOSEPLAIN"),A[R.LOOSEPLAIN]="[v=\\s]*"+A[R.MAINVERSIONLOOSE]+A[R.PRERELEASELOOSE]+"?"+A[R.BUILD]+"?",r("LOOSE"),A[R.LOOSE]="^"+A[R.LOOSEPLAIN]+"$",r("GTLT"),A[R.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),A[R.XRANGEIDENTIFIERLOOSE]=A[R.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),A[R.XRANGEIDENTIFIER]=A[R.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),A[R.XRANGEPLAIN]="[v=\\s]*("+A[R.XRANGEIDENTIFIER]+")(?:\\.("+A[R.XRANGEIDENTIFIER]+")(?:\\.("+A[R.XRANGEIDENTIFIER]+")(?:"+A[R.PRERELEASE]+")?"+A[R.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),A[R.XRANGEPLAINLOOSE]="[v=\\s]*("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:"+A[R.PRERELEASELOOSE]+")?"+A[R.BUILD]+"?)?)?",r("XRANGE"),A[R.XRANGE]="^"+A[R.GTLT]+"\\s*"+A[R.XRANGEPLAIN]+"$",r("XRANGELOOSE"),A[R.XRANGELOOSE]="^"+A[R.GTLT]+"\\s*"+A[R.XRANGEPLAINLOOSE]+"$",r("COERCE"),A[R.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[R.COERCERTL]=RegExp(A[R.COERCE],"g"),I[R.COERCERTL]=RegExp(n(A[R.COERCE]),"g"),r("LONETILDE"),A[R.LONETILDE]="(?:~>?)",r("TILDETRIM"),A[R.TILDETRIM]="(\\s*)"+A[R.LONETILDE]+"\\s+",N[R.TILDETRIM]=RegExp(A[R.TILDETRIM],"g"),I[R.TILDETRIM]=RegExp(n(A[R.TILDETRIM]),"g"),r("TILDE"),A[R.TILDE]="^"+A[R.LONETILDE]+A[R.XRANGEPLAIN]+"$",r("TILDELOOSE"),A[R.TILDELOOSE]="^"+A[R.LONETILDE]+A[R.XRANGEPLAINLOOSE]+"$",r("LONECARET"),A[R.LONECARET]="(?:\\^)",r("CARETTRIM"),A[R.CARETTRIM]="(\\s*)"+A[R.LONECARET]+"\\s+",N[R.CARETTRIM]=RegExp(A[R.CARETTRIM],"g"),I[R.CARETTRIM]=RegExp(n(A[R.CARETTRIM]),"g"),r("CARET"),A[R.CARET]="^"+A[R.LONECARET]+A[R.XRANGEPLAIN]+"$",r("CARETLOOSE"),A[R.CARETLOOSE]="^"+A[R.LONECARET]+A[R.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),A[R.COMPARATORLOOSE]="^"+A[R.GTLT]+"\\s*("+A[R.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),A[R.COMPARATOR]="^"+A[R.GTLT]+"\\s*("+A[R.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),A[R.COMPARATORTRIM]="(\\s*)"+A[R.GTLT]+"\\s*("+A[R.LOOSEPLAIN]+"|"+A[R.XRANGEPLAIN]+")",N[R.COMPARATORTRIM]=RegExp(A[R.COMPARATORTRIM],"g"),I[R.COMPARATORTRIM]=RegExp(n(A[R.COMPARATORTRIM]),"g"),r("HYPHENRANGE"),A[R.HYPHENRANGE]="^\\s*("+A[R.XRANGEPLAIN]+")\\s+-\\s+("+A[R.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),A[R.HYPHENRANGELOOSE]="^\\s*("+A[R.XRANGEPLAINLOOSE]+")\\s+-\\s+("+A[R.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),A[R.STAR]="(<|>)?=?\\s*\\*";for(var x,D,S,T,N,I,A,R,O,C,_,$,L,P=0;P=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,$=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,L={},m.prototype.parse=function(e){var t=this.options.loose?I[R.COMPARATORLOOSE]:I[R.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=L;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===L||e===L)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),y(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),y(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?I[R.HYPHENRANGELOOSE]:I[R.HYPHENRANGE];e=e.replace(r,w),x("hyphen replace",e),e=e.replace(I[R.COMPARATORTRIM],"$1$2$3"),x("comparator trim",e,I[R.COMPARATORTRIM]),e=(e=(e=e.replace(I[R.TILDETRIM],"$1~")).replace(I[R.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?I[R.COMPARATORLOOSE]:I[R.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?I[R.CARETLOOSE]:I[R.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?I[R.TILDELOOSE]:I[R.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?I[R.XRANGELOOSE]:I[R.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(I[R.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=y,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=I[R.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),I[R.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;I[R.COERCERTL].lastIndex=-1;}else n=e.match(I[R.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rA("GX8zo",function(e,t){var r=rI("7qQbq"),n=rI("c22IK");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rA("7qQbq",function(e,t){e.exports=function(){return n9.randomBytes(16);};}),rA("c22IK",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rA("bHzmH",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rI("iYbsa"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rA("iYbsa",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n5),s=i(ro),l=i(ru),u=i(n6),c=i(rI("zdagz")),p=i(rI("fwMQK")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rA("fEioR",function(e,t){e.exports=Promise.resolve(require("./actions_python.c7411d6b.js")).then(()=>rI("8L9T2"));}),rA("7fBnG",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rI("e95yL"),i=rI("7KjWO"),o=rI("aeYiS"),a=rI("aKT05"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rA("e95yL",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new C(S,Error(e.tagName+"@"+r));}function F(){}function j(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===j.DOCUMENT_TYPE_NODE;}function Y(e){return e&&e.nodeType===j.ELEMENT_NODE;}function W(e){return e&&e.nodeType===j.TEXT_NODE;}function K(e,t){var r=e.childNodes||[];if(o(r,Y)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function Q(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return Y(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function J(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===j.DOCUMENT_FRAGMENT_NODE){var a=i.filter(Y);if(a.length>1||o(i,W))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!Q(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(Y(t)&&!Q(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new C(D,"Only one doctype is allowed");var s=o(n,Y);if(r&&n.indexOf(s)1||o(i,W))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!K(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(Y(t)&&!K(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new C(D,"Only one doctype is allowed");var s=o(n,Y);if(r&&n.indexOf(s)=0;D--){var S=i[D];if(""===S.prefix&&S.namespace===e.namespaceURI){o=S.namespace;break;}}if(o!==e.namespaceURI)for(var D=i.length-1;D>=0;D--){var S=i[D];if(S.namespace===e.namespaceURI){S.prefix&&(b=S.prefix+":"+y);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var I=N.prefix||"",A=N.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",A),i.push({prefix:I,namespace:A});}eg(N,t,r,n,i);}if(y===b&&eh(e,r,i)){var I=e.prefix||"",A=e.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",A),i.push({prefix:I,namespace:A});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(y)){if(t.push(">"),r&&/^script$/i.test(y))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case w:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var R=e.publicId,O=e.systemId;if(t.push("");else if(O&&"."!=O)t.push(" SYSTEM ",O,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rI("e95yL")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,w=s.DOCUMENT_FRAGMENT_NODE=11,y=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),D=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),S=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),C.prototype=Error.prototype,R(b,C),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},R(s,j),R(s,j.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==w){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,J),e.ownerDocument=this,t&&this.removeChild(t),Y(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case w:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=A(e);return new $(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=A(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},O(G,j),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===w?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new $(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new $(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,O(ee,j),et.prototype.nodeType=u,O(et,j),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[D]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},O(er,j),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},O(en,er),ei.prototype={nodeName:"#comment",nodeType:g},O(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},O(eo,er),ea.prototype.nodeType=E,O(ea,j),es.prototype.nodeType=y,O(es,j),el.prototype.nodeType=h,O(el,j),eu.prototype.nodeType=f,O(eu,j),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=w,O(ec,j),ep.prototype.nodeType=m,O(ep,j),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},j.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty($.prototype,"length",{get:function(){return L(this),this.$$length;}}),Object.defineProperty(j.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case w:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=F,n=ed;}),rA("aeYiS",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rI("e95yL").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rA("aKT05",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rI("e95yL").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$7d48dd32ae42de33$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>w){var r=e.substring(w,t).replace(/&#?\w+;/g,a);g&&c(w),n.characters(r,0,t-w),w=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},w=0;;){try{var y=e.indexOf("<",w);if(y<0){if(!e.substr(w).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(w));b.appendChild(x),n.currentElement=x;}return;}switch(y>w&&l(y),e.charAt(y+1)){case"/":var D=e.indexOf(">",y+3),S=e.substring(y+2,D).replace(/[ \t\n\r]+$/g,""),T=v.pop();D<0?(S=e.substring(y+2).replace(/[\s<].*/,""),o.error("end tag name: "+S+" is not complete:"+T.tagName),D=y+1+S.length):S.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,y,n);break;case"!":g&&c(y),D=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,y,n,o);break;default:g&&c(y);var R=new f(),O=v[v.length-1].currentNSMap,D=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,y,R,O,a,o),C=R.length;if(!R.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))$;$++){var L=R[$];c(L.offset),L.locator=u(g,{});}n.locator=_,p(R,n,O)&&v.push(R),n.locator=g;}else p(R,n,O)&&v.push(R);i.isHTML(R.uri)&&!R.closed?D=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,D,R.tagName,a,n):D++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),D=-1;}D>w?w=D:l(Math.max(y,w)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rR=rI("dAuy6"),rO=rI("hHq4F"),rC=rI("6OFKY"),function(){rI("kswPT").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),r$={},r$=rI("foOBZ"),rL={},rL={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iI),c(rk,"sync",()=>iA),n8.promises;const{access:it,appendFile:ir,chmod:ii,chown:io,copyFile:ia,lchmod:is,lchown:il,link:iu,lstat:ic,mkdir:ip,mkdtemp:id,open:ih,readdir:im,readFile:ig,readlink:iv,realpath:iE,rename:iw,rmdir:iy,stat:ib,symlink:ix,truncate:iD,unlink:iS,utimes:iT,writeFile:iN}=n8.promises,iI=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iR(await ib(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iA=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iR((0,n8.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iR=(e,t)=>e.isFile()&&iO(e,t),iO=(e,t)=>{var r,n,i,o,a,s,l,u,c,p,d;let f=null!==(l=t.uid)&&void 0!==l?l:null===(r=(n=process).getuid)||void 0===r?void 0:r.call(n),h=null!==(c=null!==(u=t.groups)&&void 0!==u?u:null===(i=(o=process).getgroups)||void 0===i?void 0:i.call(o))&&void 0!==c?c:[],m=null!==(d=null!==(p=t.gid)&&void 0!==p?p:null===(a=(s=process).getgid)||void 0===a?void 0:a.call(s))&&void 0!==d?d:h[0];if(void 0===f||void 0===m)throw Error("cannot get uid or gid");let g=new Set([m,...h]),v=e.mode,E=e.uid,w=e.gid,y=parseInt("100",8),b=parseInt("010",8);return!!(v&parseInt("001",8)||v&b&&g.has(w)||v&y&&E===f||v&(y|b)&&0===f);};c(rU={},"isexe",()=>iC),c(rU,"sync",()=>i_);const iC=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL(await ib(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL((0,n8.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i$=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&i$(t,r),iP="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,ik=iP.isexe,iU=iP.sync;rM=n6.join,rF=n6.delimiter,rj=n6.sep,rq=n6.posix;const iM="win32"===process.platform,iF=new RegExp(`[${rq.sep}${rj===rq.sep?"":rj}]`.replace(/(\\)/g,"\\$1")),ij=RegExp("^\\."+iF.source),iq=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iB=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rF})=>{let i=e.match(iF)?[""]:[...(iM?[process.cwd()]:[]),...(t||"").split(n)];if(iM){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iG=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&ij.test(t)?t.slice(0,2):"")+rM(r,t);},iH=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(await ik(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);};rP=iH,iH.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(iU(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);},rB={},rG={},rH={},rV={};const iV="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iX=iV?";":":";rX={},rz="win32"===process.platform||rS.TESTING_WINDOWS?rI("8nJMC"):rI("lo7XV"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iz=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iY=(e,t)=>{let r=t.colon||iX,n=e.match(/\//)||iV&&e.match(/\\/)?[""]:[...(iV?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iV?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iV?i.split(r):[""];return iV&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iW=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iY(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iz(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=n6.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iW,iW.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iY(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rY=iK).default=iK,rH=function(e){return f(e)||f(e,!0);};rW={},rK={},rQ={},rQ=/^#!(.*)/,rK=(e="")=>{let t=e.match(rQ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rW=function(e){let t;let r=Buffer.alloc(150);try{t=n8.openSync(e,"r"),n8.readSync(t,r,0,150,0),n8.closeSync(t);}catch(e){}return rK(r.toString());};const iQ="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!iQ)return e;let t=function(e){e.file=rH(e);let t=e.file&&rW(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){var n;let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=n6.normalize(e.command),e.command=n=(n=e.command).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),e.args=e.args.map(e=>{var t,n;return t=e,n=r,t=(t=(t=""+t).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),t=(t=`"${t}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),n&&(t=t.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),t;});let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},rJ={};const iJ="win32"===process.platform;rJ={hookChildProcess:function(e,t){if(!iJ)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return iJ&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||rJ.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=rJ;const iZ=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i0(i,o)||!n)&&Object.defineProperty(e,r,o);},i0=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i1=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i3=(e,t)=>`/* Wrapped ${e}*/ -${t}`,i2=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i4=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i5=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i3.bind(null,n,t.toString());Object.defineProperty(i,"name",i4),Object.defineProperty(e,"toString",{...i2,value:i});},i6=new WeakMap(),i8=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(i6.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))iZ(e,t,n,r);i1(e,t),i5(e,t,n);}(o,e),i6.set(o,n),o;};i8.callCount=e=>{if(!i6.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i6.get(e);},rZ=i8;const i9=()=>Array.from({length:ot-oe+1},i7),i7=(e,t)=>({name:"SIGRT"+(t+1),number:oe+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oe=34,ot=64,or=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],on=()=>[...or,...i9()].map(oi),oi=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},oo=Object.fromEntries(on().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oa=(e,t)=>{let r=os(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},os=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=on();return Object.assign({},...Array.from({length:ot+1},(t,r)=>oa(r,e)));})();const ol=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",ou=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,m=ol({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} -${n.message}`:g,w=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=w):n=Error(w),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oc=["stdin","stdout","stderr"],op=e=>oc.some(t=>void 0!==e[t]),od=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oc.map(t=>e[t]);if(op(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oc.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oc.length)},(e,r)=>t[r]);};r0={};const of=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(of(r1=rS.process)){var oh,om=ra,og=rI("dVIKq"),ov=/^win/i.test(r1.platform),oE=ro;"function"!=typeof oE&&(oE=oE.EventEmitter),r1.__signal_exit_emitter__?oh=r1.__signal_exit_emitter__:((oh=r1.__signal_exit_emitter__=new oE()).count=0,oh.emitted={}),oh.infinite||(oh.setMaxListeners(1/0),oh.infinite=!0);var ow=function(){ox&&of(rS.process)&&(ox=!1,og.forEach(function(e){try{r1.removeListener(e,ob[e]);}catch(e){}}),r1.emit=oN,r1.reallyExit=oS,oh.count-=1);};(r0=function(e,t){if(!of(rS.process))return function(){};om.equal(typeof e,"function","a callback must be provided for exit handler"),!1===ox&&oD();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oh.on(r,e),function(){oh.removeListener(r,e),0===oh.listeners("exit").length&&0===oh.listeners("afterexit").length&&ow();};}).unload=ow;var oy=function(e,t,r){oh.emitted[e]||(oh.emitted[e]=!0,oh.emit(e,t,r));},ob={};og.forEach(function(e){ob[e]=function(){of(rS.process)&&r1.listeners(e).length===oh.count&&(ow(),oy("exit",null,e),oy("afterexit",null,e),ov&&"SIGHUP"===e&&(e="SIGINT"),r1.kill(r1.pid,e));};}),r0.signals=function(){return og;};var ox=!1,oD=function(){!ox&&of(rS.process)&&(ox=!0,oh.count+=1,og=og.filter(function(e){try{return r1.on(e,ob[e]),!0;}catch(e){return!1;}}),r1.emit=oI,r1.reallyExit=oT);};r0.load=oD;var oS=r1.reallyExit,oT=function(e){of(rS.process)&&(r1.exitCode=e||0,oy("exit",r1.exitCode,null),oy("afterexit",r1.exitCode,null),oS.call(r1,r1.exitCode));},oN=r1.emit,oI=function(e,t){if(!("exit"===e&&of(rS.process)))return oN.apply(this,arguments);void 0!==t&&(r1.exitCode=t);var r=oN.apply(this,arguments);return oy("exit",r1.exitCode,null),oy("afterexit",r1.exitCode,null),r;};}else r0=function(){return function(){};};const oA=(e,t="SIGTERM",r={})=>{let n=e(t);return oR(e,t,r,n),n;},oR=(e,t,r,n)=>{if(!oO(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},o_(r));i.unref&&i.unref();},oO=(e,{forceKillAfterTimeout:t},r)=>oC(e)&&!1!==t&&r,oC=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),o_=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},o$=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oL=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oP=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{oL(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},ok=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oU=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},oM=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oF=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oM(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oj=e=>{null!==e.stdout&&(e.pipeStdout=oF.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oF.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oF.bind(void 0,e,"all"));};r3={},r2=rE.constants,r4=rs.promisify,r5={},r6=rw.PassThrough,r5=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r6({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oq=r4(rw.pipeline);class oB extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r3=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r3.array=(e,t)=>x(e,{...t,array:!0}),r3.MaxBufferError=oB,r8={},r9=rw.PassThrough,r8=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new r9({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oG=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oH=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.readFileSync)(t)),oV=e=>{let t=oH(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oX=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.createReadStream)(t)),oz=(e,t)=>{let r=oX(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},oY=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oW=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},oK=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},oQ=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=oK(e,{encoding:n,buffer:i,maxBuffer:o}),l=oK(t,{encoding:n,buffer:i,maxBuffer:o}),u=oK(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oW(e,s),oW(t,l),oW(r,u)]);}},oJ=(async()=>{})().constructor.prototype,oZ=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(oJ,e)]),o0=(e,t)=>{for(let[r,n]of oZ){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o1=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o3=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o2=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o4=(e,t)=>o3(e,t).join(" "),o5=(e,t)=>o3(e,t).map(e=>o2(e)).join(" "),o6=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},o8=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},o9=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],o7=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=null!=i?i:e.raw[n],a=o9(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return o9(a,Array.isArray(s)?s.map(e=>o8(e)):[o8(s)],o.endsWith(" "));},ae=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=o7({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},at=(0,ry.debuglog)("execa").enabled,ar=(e,t)=>(e+"").padStart(t,"0"),an=()=>{let e=new Date();return`${ar(e.getHours(),2)}:${ar(e.getMinutes(),2)}:${ar(e.getSeconds(),2)}.${ar(e.getMilliseconds(),3)}`;},ai=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${an()}] ${e} -`);},ao=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},aa=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:at,...r}).env=ao(r),r.stdio=od(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},as=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",al=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},au=(e={})=>({preferLocal:!0,...al(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ae(n,i);return D(o,a,au(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ae(e,r);return S(n,i,au(t));},r;}();const ac={stdio:"inherit",shell:!0},ap=/^~(?=$|\/|\\)/;rO=rI("hHq4F"),r7={},ne=rI("coVwk"),nt=rb.env.npm_package_json,nn=!!((nr=rb.env.npm_config_user_agent)&&nr.startsWith("npm")),ni=!!(nt&&nt.endsWith("package.json")),no=!!(nr&&nr.startsWith("yarn")),na=nn||ni||no,ns=n5.homedir(),nl=process.env.XDG_CONFIG_HOME||n6.join(ns,".config","simple-update-notifier"),nu=function(e){return n6.join(nl,"".concat(e.replace("@","").replace("/","__"),".json"));},nc=function(){n8.existsSync(nl)||n8.mkdirSync(nl,{recursive:!0});},np=function(e){var t=nu(e);try{if(!n8.existsSync(t))return;return JSON.parse(n8.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nd=function(e){var t=nu(e);n8.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},nf=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return $(this,function(i){switch(i.label){case 0:var l;if(nc(),e=np(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",af=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,f=ad({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} -${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},ah=["stdin","stdout","stderr"],am=e=>ah.some(t=>void 0!==e[t]),ag=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ah.map(t=>e[t]);if(am(e))throw Error("It's not possible to provide `stdio` in combination with one of "+ah.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,ah.length)},(e,r)=>t[r]);},av=(e,t="SIGTERM",r={})=>{let n=e(t);return aE(e,t,r,n),n;},aE=(e,t,r,n)=>{if(!aw(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ab(r));i.unref&&i.unref();},aw=(e,{forceKillAfterTimeout:t},r)=>ay(e)&&!1!==t&&r,ay=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ab=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},ax=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aD=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aS=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aD(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aT=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aN=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},aI=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,aA=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aI(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aR=e=>{null!==e.stdout&&(e.pipeStdout=aA.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=aA.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=aA.bind(void 0,e,"all"));},aO=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aC=({input:e,inputFile:t})=>"string"!=typeof t?e:(aO(e),(0,rl.readFileSync)(t)),a_=e=>{let t=aC(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},a$=({input:e,inputFile:t})=>"string"!=typeof t?e:(aO(e),(0,rl.createReadStream)(t)),aL=(e,t)=>{let r=a$(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},aP=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},ak=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aU=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},aM=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aU(e,{encoding:n,buffer:i,maxBuffer:o}),l=aU(t,{encoding:n,buffer:i,maxBuffer:o}),u=aU(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},ak(e,s),ak(t,l),ak(r,u)]);}},aF=(async()=>{})().constructor.prototype,aj=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aF,e)]),aq=(e,t)=>{for(let[r,n]of aj){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aB=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),aG=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aH=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aV=(e,t)=>aG(e,t).join(" "),aX=(e,t)=>aG(e,t).map(e=>aH(e)).join(" "),az=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aY=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aW=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=null!=i?i:e.raw[n],a=aY(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aY(a,Array.isArray(s)?s.map(e=>az(e)):[az(s)],o.endsWith(" "));},aK=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aW({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},aQ=(0,ry.debuglog)("execa").enabled,aJ=(e,t)=>(e+"").padStart(t,"0"),aZ=()=>{let e=new Date();return`${aJ(e.getHours(),2)}:${aJ(e.getMinutes(),2)}:${aJ(e.getSeconds(),2)}.${aJ(e.getMilliseconds(),3)}`;},a0=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${aZ()}] ${e} -`);},a1=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},a3=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:aQ,...r}).env=a1(r),r.stdio=ag(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a2=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a4=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a5=(e={})=>({preferLocal:!0,...a4(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=aK(n,i);return k(o,a,a5(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=aK(e,r);return function(e,t,r){let n;let i=a3(e,t,r),o=aV(e,t),a=aX(e,t);a0(a,i.options);let s=a_(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw af({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a2(i.options,n.stdout,n.error),u=a2(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=af({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a5(t));},r;}(),nv={};const a6="win32"!==n5.platform(),a8=n5.release(),a9=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nv=function(e){return a6?e.replace(/(\s+)/g,"\\$1"):a9(.../(\d+\.\d+)\.(\d+)/.exec(a8).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rI("8CJZb"),t=function(e){return e.split("").reverse().join("");},nE=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nE={}),nw=rI("6t4SD");const a7={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},se=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],st=C("~/.cpprc");let sr=!1;nw=rI("6t4SD"),ny=rI("f44Uw"),rO=rI("hHq4F");const{appendFile:sn}=n8.promises;let si=!1,so=!1;const sa=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nb||(nb={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",ng=rI("1o3Gj"),nx=rI("eAXk4"),nx=rI("eAXk4"),nD=rI("zdagz");let ss=!1;nw=rI("6t4SD"),nx=rI("eAXk4"),rO=rI("hHq4F");let sl=!1;rO=rI("hHq4F"),rO=rI("hHq4F");let su=!1,sc=!1;const sp=/Version\s*:\s*(.*)/g;nS={},nT=n6.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nN=nS&&nS.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nI=nS&&nS.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nA=nS&&nS.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nN(t,e,r);return nI(t,e),t;},nR=nS&&nS.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},nO=nS&&nS.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nS,"__esModule",{value:!0}),nS.evaluateVersions=nS.isExplicitVersion=nS.findFromManifest=nS.getManifestFromRepo=nS.findAllVersions=nS.find=nS.cacheFile=nS.cacheDir=nS.extractZip=nS.extractXar=nS.extractTar=nS.extract7z=nS.downloadTool=nS.HTTPError=void 0;const sd=nA(rI("1o3Gj")),sf=nA(rI("zdagz")),sh=nA(n8),sm=nA(rI("gn8Si")),sg=nA(n5),sv=nA(n6),sE=nA(rI("eamjo")),sw=nA(rI("0306Y")),sy=nA(rw),sb=nA(rs),sx=nO(rI("GX8zo"));nC=rI("bHzmH"),n$=(n_={},n_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),nL=n_&&n_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nP=n_&&n_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n$(t,e,r);return nL(t,e),t;},nk=n_&&n_.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(n_,"__esModule",{value:!0}),n_.RetryHelper=void 0;const sD=nP(rI("1o3Gj"));n_.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nk(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sS extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nS.HTTPError=sS;const sT="win32"===process.platform,sN="darwin"===process.platform;nS.downloadTool=function(e,t,r,n){return nR(this,void 0,void 0,function*(){t=t||sv.join(eb(),sx.default()),yield sf.mkdirP(sv.dirname(t)),sd.debug("Downloading "+e),sd.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new n_.RetryHelper(3,i,o);return yield a.execute(()=>nR(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nR(this,void 0,void 0,function*(){if(sh.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sE.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sd.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sS(o.message.statusCode);throw sd.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sb.promisify(sy.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sh.createWriteStream(t)),sd.debug("download complete"),l=!0,t;}finally{if(!l){sd.debug("download failed");try{yield sf.rmRF(t);}catch(e){sd.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sS)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nS.extract7z=function(e,t,r){return nR(this,void 0,void 0,function*(){ra.ok(sT,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sd.isDebug()?"-bb1":"-bb0";yield nC.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sv.join(nT,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sf.which("powershell",!0);yield nC.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nS.extractTar=function(e,t,r="xz"){return nR(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sd.debug("Checking tar --version");let i="";yield nC.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sd.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sd.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sT&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nC.exec("tar",n),t;});},nS.extractXar=function(e,t,r=[]){return nR(this,void 0,void 0,function*(){var n;let i;ra.ok(sN,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sd.isDebug()&&i.push("-v");let o=yield sf.which("xar",!0);return yield nC.exec(`"${o}"`,(n=i,Array.from(new Set(n)))),t;});},nS.extractZip=function(e,t){return nR(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sT?yield function(e,t){return nR(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sf.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sd.debug("Using pwsh at path: "+i),yield nC.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sf.which("powershell",!0);sd.debug("Using powershell at path: "+t),yield nC.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nR(this,void 0,void 0,function*(){let r=yield sf.which("unzip",!0),n=[e];sd.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nC.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nS.cacheDir=function(e,t,r,n){return nR(this,void 0,void 0,function*(){if(r=sw.clean(r)||r,n=n||sg.arch(),sd.debug(`Caching tool ${t} ${r} ${n}`),sd.debug("source dir: "+e),!sh.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sh.readdirSync(e)){let r=sv.join(e,t);yield sf.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nS.cacheFile=function(e,t,r,n,i){return nR(this,void 0,void 0,function*(){if(n=sw.clean(n)||n,i=i||sg.arch(),sd.debug(`Caching tool ${r} ${n} ${i}`),sd.debug("source file: "+e),!sh.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sv.join(o,t);return sd.debug("destination file "+a),yield sf.cp(e,a),ev(r,n,i),o;});},nS.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sg.arch(),eE(t)||(t=ew(eh(e,r),t));let n="";if(t){t=sw.clean(t)||"";let i=sv.join(ey(),e,t,r);sd.debug("checking cache: "+i),sh.existsSync(i)&&sh.existsSync(`${i}.complete`)?(sd.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sd.debug("not found");}return n;},nS.findAllVersions=eh,nS.getManifestFromRepo=function(e,t,r,n="master"){return nR(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sE.HttpClient("tool-cache"),s={};r&&(sd.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sd.debug("Invalid json");}}return i;});},nS.findFromManifest=function(e,t,r,n=sg.arch()){return nR(this,void 0,void 0,function*(){return yield sm._findMatch(e,t,r,n);});},nS.isExplicitVersion=eE,nS.evaluateVersions=ew,nU=rI("hlfY9"),nM=rI("6v1Be"),nx=rI("eAXk4"),rO=rI("hHq4F"),rR=rI("dAuy6"),nw=rI("6t4SD"),Object.defineProperty(nF={},"__esModule",{value:!0}),nF.retryAsPromised=nF.TimeoutError=void 0;class sI extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nF.TimeoutError=sI,nF.retryAsPromised=eD,nF.default=eD;let sA=!1;nx=rI("eAXk4"),nD=rI("zdagz"),rO=rI("hHq4F"),ng=rI("1o3Gj"),nw=rI("6t4SD"),nx=rI("eAXk4"),nC=rI("bHzmH"),rR=rI("dAuy6"),rO=rI("hHq4F"),nj={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nq=Array.prototype.slice,nB=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:e$(this.keys),size:this.size,values:e$(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nx=rI("eAXk4"),nG=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nH=async e=>{if(!nG(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nV=rI("jDqfd"),nM=rI("6v1Be"),nX=rI("2kZmC"),nC=rI("bHzmH"),rO=rI("hHq4F");const sR=/v?(\d\S*)/,sO={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sC={pip:"22.2.0",python:"3.7.9"},s_={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};nw=rI("6t4SD");const s$=ek(e1,{isPromise:!0});rO=rI("hHq4F"),Object.defineProperty(nz={},"__esModule",{value:!0}),nz.getUbuntuVersion=void 0,nz.getUbuntuVersion=e4;const sL=ek(e5,{isPromise:!0}),sP=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||n8.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||n8.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||n8.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||n8.mkdirSync,t;},sk=(e,t,r)=>{let n=(0,n6.dirname)(e),i={...sP(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,i,sk(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sU=Object.assign(async(e,t,r)=>{let n=sP(t);n.recursive=!1;let i=(0,n6.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sU(i,n).then(t=>sU(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sk}),sM=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sM(e,(0,n6.dirname)(t),t):void 0);},sF=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sF(e,(0,n6.dirname)(t),t):void 0;}},sj=(e,t)=>{let r=sP(t);if(r.recursive=!0,(0,n6.dirname)(e)===e)return r.mkdirSync(e,r);let n=sF(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,r);throw t;}},sq=Object.assign(async(e,t)=>{let r={...sP(t),recursive:!0};return(0,n6.dirname)(e)===e?await r.mkdirAsync(e,r):sM(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sU(e,r);throw t;}));},{sync:sj}),sB=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sG=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,n6.resolve)(e),"win32"===sB){let{root:t}=(0,n6.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sH=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sV=+sH[0]>10||10==+sH[0]&&+sH[1]>=12,sX=sV?e=>sP(e).mkdirSync===n8.mkdirSync:()=>!1,sz=Object.assign(sV?e=>sP(e).mkdir===n8.mkdir:()=>!1,{sync:sX}),sY=(e,t)=>{e=sG(e);let r=sP(t);return sX(r)?sj(e,r):sk(e,r);},sW=Object.assign(async(e,t)=>{e=sG(e);let r=sP(t);return sz(r)?sq(e,r):sU(e,r);},{mkdirpSync:sY,mkdirpNative:sq,mkdirpNativeSync:sj,mkdirpManual:sU,mkdirpManualSync:sk,sync:sY,native:sq,nativeSync:sj,manual:sU,manualSync:sk,useNative:sz,useNativeSync:sX}),sK=ek(te,{isPromise:!0}),sQ=ek(tt,{isPromise:!0}),sJ=ek(tr,{isPromise:!0});nx=rI("eAXk4"),rO=rI("hHq4F"),nw=rI("6t4SD");const sZ=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s0=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=sZ.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nW=rI("7KjWO")).DOMImplementation,nW.XMLSerializer,nY=rI("7fBnG").DOMParser;const s1=63,s3="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s2=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s4{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s5 extends s4{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t);return this.value?`${n}`:`${n}`;}}class s6 extends s4{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"data");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s2[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s1)<<18|(i&s1)<<12|(o&s1)<<6|a&s1,o>s1?a>s1?2:0:a>s1?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(r);}toXml(e=null,t=0){var r,n,i;let o=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",a=null!==(n=null==e?void 0:e.dataColumns)&&void 0!==n?n:68,s=(null!==(i=null==e?void 0:e.indentString)&&void 0!==i?i:" ").repeat(t),l=`${s}`;if(a>0)for(let e=th(this.value);e;e=e.substring(a))l+=`${o}${s}${e.substring(0,a)}`;else l+=`${o}${s}${th(this.value)}`;return l+`${o}${s}`;}}class s8 extends s4{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){var t;tf(e,"integer");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";if(!/^[-+]?[0-9]+$/.test(r))throw Error("Invalid integer data: "+r);let n=+r;this.value=n>9007199254740991||n<-9007199254740991?BigInt(r):n;}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value;return tm(i),`${n}${i}`;}}class s9 extends s4{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"real");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(r))throw Error("Invalid real data: "+r);this.value=+r;}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value;return`${n}${i}`;}}class s7 extends s4{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"string"),this.value=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${n}${i}`;}}class le extends s4{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[le,s5,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){var r,n;let i=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",o=(null!==(n=null==e?void 0:e.indentString)&&void 0!==n?n:" ").repeat(t),a=this.value;if(!a.length)return`${o}`;let s=`${o}`;for(let r of a)s+=`${i}${r.toXml(e,t+1)}`;return s+`${i}${o}`;}}class lt extends s4{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[le,s5,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){var i;let r=t[e],o=t[e+1];tf(r,"key");let a=(null===(i=td(r))||void 0===i?void 0:i.nodeValue)||"",s=this.childFromXmlElement(o);n.set(a,s);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){var r,n;let i=null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ",o=null!==(n=null==e?void 0:e.newlineString)&&void 0!==n?n:"\n",a=i.repeat(t),s=this.value;if(!s.size)return`${a}`;let l=i.repeat(t+1),u=`${a}`;for(let[r,n]of s){let i=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");u+=`${o}${l}${i}${o}${n.toXml(e,t+1)}`;}return u+`${o}${a}`;}}const lr='',ln='';class li{static XML_DECLARATION=lr;static XML_DOCTYPE=ln;xmlDeclaration=lr;xmlDoctype=ln;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lt().childFromXmlElement(e);}toXml(e=null){var t,r;let n=null!==(t=null==e?void 0:e.indentRoot)&&void 0!==t&&t,i=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",o=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(o?[o.toXml(e,n?1:0)]:[]),"",""].join(i);}}class lo{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new li();t.fromXml(e);let r=t.valueCastAs(lt).getValue("system-entities").castAs(le),n=[];for(let e of r.value){let t=e.castAs(lt),r=t.getValue("dev-entry").castAs(s7).value,i=t.getValue("potentially-mountable").castAs(s5).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(s7).value),a&&(u.unmappedContentHint=a.castAs(s7).value),s&&(u.volumeKind=s.castAs(s7).value),l&&(u.mountPoint=l.castAs(s7).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){var r;let n=null===(r=this._findRootDevice(e))||void 0===r?void 0:r.devEntry,i=null,o={eject:async(e=null)=>{n&&(await this.eject(n,e),n="",i&&process.off("exit",i));},ejectSync:(e=null)=>{n&&(this.ejectSync(n,e),n="",i&&process.off("exit",i));}};return t&&(i=()=>{o.ejectSync(t);},process.once("exit",i)),o;}}nK=rI("lORAA"),nM=rI("6v1Be"),nC=rI("bHzmH"),rO=rI("hHq4F"),nx=rI("eAXk4"),rO=rI("hHq4F"),rR=rI("dAuy6"),nw=rI("6t4SD"),nQ=n6.resolve(__dirname,"../../src/gcc");const la={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nX=rI("2kZmC"),nK=rI("lORAA"),nx=rI("eAXk4"),rO=rI("hHq4F"),nx=rI("eAXk4"),nJ=n6.resolve(__dirname,"../../src/kcov"),rR=rI("dAuy6"),rO=rI("hHq4F"),nw=rI("6t4SD"),nx=rI("eAXk4"),ng=rI("1o3Gj"),rO=rI("hHq4F"),nx=rI("eAXk4"),ng=rI("1o3Gj");const ls=rb.env["ProgramFiles(x86)"],ll=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lu=["Enterprise","Professional","Community","BuildTools"],lc=["2022","2019","2017"],lp={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};nZ=tL;const ld=`${ls}\\Microsoft Visual Studio\\Installer`;n0=tP,n1=function(e,t,r,n,i,o){if("win32"!=rb.platform){ng.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=n6.delimiter+ld;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;ng.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(ng.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(ng.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),ng.exportVariable(t,r));}ng.endGroup(),ng.info("Configured Developer Command Prompt");},rO=rI("hHq4F"),nw=rI("6t4SD");class lf extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lh extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const lm=e=>void 0===globalThis.DOMException?new lh(e):new DOMException(e),lg=e=>{let t=void 0===e.reason?lm("This operation was aborted."):e.reason;return t instanceof Error?t:lm(t);},lv=12e5,{readFile:lE,writeFile:lw,chmod:ly}=n8.promises;(rn=n3||(n3={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nU=rI("hlfY9"),rO=rI("hHq4F"),nx=rI("eAXk4");const lb=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lx=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lD=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lS=new Map(),lT={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lN="17.0.6";n2=n6.resolve(__dirname,"../../src/llvm");const lI=ek(tY,{isPromise:!0}),lA=ek(tK,{isPromise:!0}),lR=ek(tQ,{isPromise:!0});rR=rI("dAuy6"),nx=rI("eAXk4"),rO=rI("hHq4F"),nw=rI("6t4SD"),n4=n6.resolve(__dirname,"../../src/msvc"),nx=rI("eAXk4"),nx=rI("eAXk4"),rO=rI("hHq4F"),nw=rI("6t4SD"),nx=rI("eAXk4");let lO=!1;const lC={nala:t2,cmake:e_,ninja:tA,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t4,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tW(e,t,r);},clangformat:function(e,t,r){return tW(e,t,r,n3.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:t$,make:t0,task:function(e,t,r){return eS("task",e,t8,t,r);},sevenzip:eT},l_=Object.keys(lC),l$=["compiler","architecture","timeout",...l_];ng=rI("1o3Gj"),rO=rI("hHq4F"),nX=rI("2kZmC"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rO.error)("main() panicked!"),(0,rO.error)(e),process.exitCode=1;}); + Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rA("eamjo",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(ii),d=i(io),f=i(rI("jnrYh")),h=i(rI("3RDK7"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class w{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=w,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new w(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},y(this.requestOptions.headers),y(e||{})):y(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=y(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let y=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rA("jnrYh",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rA("3RDK7",function(e,t){e.exports=rI("jZQ4B");}),rA("jZQ4B",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||ii.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=ii.request,t;},n=function(e){var t=new l(e);return t.request=ii.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=io.request,t;},o=function(e){var t=new l(e);return t.request=io.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?s=function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:s=function(){},a=s;}),rA("h6tQO",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rA("dV9Cu",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=it.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,it.constants.R_OK|it.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n7.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rA("9i0tI",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(ie);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rA("kswPT",function(e,t){var r=ie.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rA("foOBZ",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rI("6OFKY"),i=rI("5GOZM");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){let t=s[e.locale],r=e.unitTypeLookupOrder.slice();r.unshift(e.unitType);let n=null;if((r=Array.from(new Set(r))).some(function(e){if(void 0!==t[e])return n=t[e],!0;}),null===n)throw Error("Can not find any unit type data for locale: "+e.locale);return n;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rA("6OFKY",function(e,t){e.exports=rI("kswPT");}),rA("5GOZM",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rA("8nJMC",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${u[c.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",u[c.COERCEPLAIN]+`(?:${u[c.PRERELEASE]})?`+`(?:${u[c.BUILD]})?`+"(?:$|[^\\d])"),m("COERCERTL",u[c.COERCE],!0),m("COERCERTLFULL",u[c.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rA("iXsaM",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rA("jl9Uf",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rA("8cXe9",function(e,t){var r=rI("jl9Uf"),n=rI("iXsaM"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rI("hhSwF"),s=a.safeRe,l=a.t,u=rI("5v8m5"),c=rI("dAM2Q").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rA("5v8m5",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rA("dAM2Q",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rA("cHnHr",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rA("2kZmC",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rA("3Ixw1",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rA("5r5vN",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rA("bDrwm",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rA("lORAA",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).major;}),rA("2Lh6z",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).minor;}),rA("73KaH",function(e,t){var r=rI("8cXe9");e.exports=(e,t)=>new r(e,t).patch;}),rA("j5Xr5",function(e,t){var r=rI("cHnHr");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rA("jDqfd",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rA("2QKGl",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(t,e,n);}),rA("3puHo",function(e,t){var r=rI("jDqfd");e.exports=(e,t)=>r(e,t,!0);}),rA("7qrQi",function(e,t){var r=rI("8cXe9");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rA("hZ1Xd",function(e,t){var r=rI("7qrQi");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rA("3YOIj",function(e,t){var r=rI("7qrQi");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rA("cOpcP",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(e,t,n)>0;}),rA("58P10",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0>r(e,t,n);}),rA("lTmeS",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0===r(e,t,n);}),rA("jzqBf",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0!==r(e,t,n);}),rA("3XWvL",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rA("hlfY9",function(e,t){var r=rI("jDqfd");e.exports=(e,t,n)=>0>=r(e,t,n);}),rA("84iFB",function(e,t){var r=rI("lTmeS"),n=rI("jzqBf"),i=rI("cOpcP"),o=rI("3XWvL"),a=rI("58P10"),s=rI("hlfY9");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rA("6v1Be",function(e,t){var r=rI("8cXe9"),n=rI("cHnHr"),i=rI("hhSwF"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let r;let n=t.includePrerelease?o[a.COERCERTLFULL]:o[a.COERCERTL];for(;(r=n.exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1;}else i=e.match(t.includePrerelease?o[a.COERCEFULL]:o[a.COERCE]);if(null===i)return null;let s=i[2],l=i[3]||"0",u=i[4]||"0",c=t.includePrerelease&&i[5]?"-"+i[5]:"",p=t.includePrerelease&&i[6]?"+"+i[6]:"";return n(`${s}.${l}.${u}${c}${p}`,t);};}),rA("1bxhC",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rI("5v8m5"),o=rI("hhSwF"),a=o.safeRe,s=o.t,l=rI("84iFB"),u=rI("jl9Uf"),c=rI("8cXe9"),p=rI("bswWF");}),rA("bswWF",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,O(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>y(e,this.options)).join(" ").split(/\s+/).map(e=>R(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>w(r,t)&&e.set.some(e=>w(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,w=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},y=(e,t)=>(a("comp",e,t),a("caret",e=S(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=A(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>D(e,t)).join(" "),D=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},S=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>I(e,t)).join(" ")),I=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},A=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),R=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),O=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),C=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rA("31A6g",function(e,t){var r=rI("i08Cw");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let w=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;w(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;w(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rA("i08Cw",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rA("4zfp3",function(e,t){var r=rI("bswWF");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rA("ga5uZ",function(e,t){var r=rI("8cXe9"),n=rI("bswWF");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rA("lPGVL",function(e,t){var r=rI("8cXe9"),n=rI("bswWF");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rA("1I8AA",function(e,t){var r=rI("8cXe9"),n=rI("bswWF"),i=rI("cOpcP");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rA("dBtft",function(e,t){var r=rI("bswWF");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rA("83Sp2",function(e,t){var r=rI("8cXe9"),n=rI("1bxhC");let{ANY:i}=n;var o=rI("bswWF"),a=rI("42oIR"),s=rI("cOpcP"),l=rI("58P10"),u=rI("hlfY9"),c=rI("3XWvL");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rA("eK4my",function(e,t){var r=rI("83Sp2");e.exports=(e,t,n)=>r(e,t,">",n);}),rA("eNXBI",function(e,t){var r=rI("83Sp2");e.exports=(e,t,n)=>r(e,t,"<",n);}),rA("kHzUo",function(e,t){var r=rI("bswWF");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rA("1x2XZ",function(e,t){var r=rI("42oIR"),n=rI("jDqfd");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,w=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!w&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rA("8CJZb",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rA("6t4SD",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rA("eAXk4",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function w(e,t=!0){return t?(0,ie.basename)(e):(0,ie.basename)(e,(0,ie.extname)(e));}function y(e){return(0,ie.normalize)(e).replace(RegExp((0,r.default)(ie.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,ie.extname)(e),n=`${t}${(0,ie.basename)(e,r)}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function D(e,t){let r=(0,ie.extname)(e),n=`${(0,ie.basename)(e,r)}${t}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function S(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,ie.extname)(e).length;return e.slice(0,-t);}function I(e,t){return p(n)(e,t);}function A(e,t){let r=(0,ie.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+ie.sep)||r===(0,ie.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>S),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>ie.dirname),c(e.exports,"join",()=>ie.join),r=rI("f44Uw"),n=rI("fBJE3"),i={},E(o={},"name",()=>w),E(a={},"normalizeTrim",()=>y),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>D),E(d={},"addShExt",()=>S),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>I),E(g={},"isPathInside",()=>A),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rA("f44Uw",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rA("fBJE3",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=ie.basename(e,ie.extname(e))+t,i=ie.join(ie.dirname(e),n);return(r=e.slice(0,2))==="."+ie.sep||"./"===r?"."+ie.sep+i:i;};}),rA("zdagz",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(ie),p=i(rI("fwMQK"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rA("fwMQK",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(it),u=i(ie);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rA("gn8Si",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rI("0306Y"));a=rI("1o3Gj"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n7.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n7.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return it.existsSync(e)?r=it.readFileSync(e).toString():it.existsSync(t)&&(r=it.readFileSync(t).toString()),r;};}),rA("0306Y",function(e,t){function r(e){R[e]=O++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>D||!(t.loose?I[R.LOOSE]:I[R.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>D)throw TypeError("version is longer than "+D+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?I[R.LOOSE]:I[R.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>S||this.major<0)throw TypeError("Invalid major version");if(this.minor>S||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>S||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===P?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function w(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function y(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(y(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,w=w||e,i(e.semver,E.semver,n)?E=e:s(e.semver,w.semver,n)&&(w=e);}),E.operator===c||E.operator===p||(!w.operator||w.operator===c)&&a(e,w.semver)||w.operator===p&&s(e,w.semver))return!1;}return!0;}t=e.exports=o,"object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?x=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:x=function(){},t.SEMVER_SPEC_VERSION="2.0.0",D=256,S=Number.MAX_SAFE_INTEGER||9007199254740991,T=D-6,N=t.re=[],I=t.safeRe=[],A=t.src=[],R=t.tokens={},O=0,_=[["\\s",1],["\\d",D],[C="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),A[R.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),A[R.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),A[R.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+C+"*",r("MAINVERSION"),A[R.MAINVERSION]="("+A[R.NUMERICIDENTIFIER]+")\\.("+A[R.NUMERICIDENTIFIER]+")\\.("+A[R.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),A[R.MAINVERSIONLOOSE]="("+A[R.NUMERICIDENTIFIERLOOSE]+")\\.("+A[R.NUMERICIDENTIFIERLOOSE]+")\\.("+A[R.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),A[R.PRERELEASEIDENTIFIER]="(?:"+A[R.NUMERICIDENTIFIER]+"|"+A[R.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),A[R.PRERELEASEIDENTIFIERLOOSE]="(?:"+A[R.NUMERICIDENTIFIERLOOSE]+"|"+A[R.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),A[R.PRERELEASE]="(?:-("+A[R.PRERELEASEIDENTIFIER]+"(?:\\."+A[R.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),A[R.PRERELEASELOOSE]="(?:-?("+A[R.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+A[R.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),A[R.BUILDIDENTIFIER]=C+"+",r("BUILD"),A[R.BUILD]="(?:\\+("+A[R.BUILDIDENTIFIER]+"(?:\\."+A[R.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),A[R.FULLPLAIN]="v?"+A[R.MAINVERSION]+A[R.PRERELEASE]+"?"+A[R.BUILD]+"?",A[R.FULL]="^"+A[R.FULLPLAIN]+"$",r("LOOSEPLAIN"),A[R.LOOSEPLAIN]="[v=\\s]*"+A[R.MAINVERSIONLOOSE]+A[R.PRERELEASELOOSE]+"?"+A[R.BUILD]+"?",r("LOOSE"),A[R.LOOSE]="^"+A[R.LOOSEPLAIN]+"$",r("GTLT"),A[R.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),A[R.XRANGEIDENTIFIERLOOSE]=A[R.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),A[R.XRANGEIDENTIFIER]=A[R.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),A[R.XRANGEPLAIN]="[v=\\s]*("+A[R.XRANGEIDENTIFIER]+")(?:\\.("+A[R.XRANGEIDENTIFIER]+")(?:\\.("+A[R.XRANGEIDENTIFIER]+")(?:"+A[R.PRERELEASE]+")?"+A[R.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),A[R.XRANGEPLAINLOOSE]="[v=\\s]*("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[R.XRANGEIDENTIFIERLOOSE]+")(?:"+A[R.PRERELEASELOOSE]+")?"+A[R.BUILD]+"?)?)?",r("XRANGE"),A[R.XRANGE]="^"+A[R.GTLT]+"\\s*"+A[R.XRANGEPLAIN]+"$",r("XRANGELOOSE"),A[R.XRANGELOOSE]="^"+A[R.GTLT]+"\\s*"+A[R.XRANGEPLAINLOOSE]+"$",r("COERCE"),A[R.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[R.COERCERTL]=RegExp(A[R.COERCE],"g"),I[R.COERCERTL]=RegExp(n(A[R.COERCE]),"g"),r("LONETILDE"),A[R.LONETILDE]="(?:~>?)",r("TILDETRIM"),A[R.TILDETRIM]="(\\s*)"+A[R.LONETILDE]+"\\s+",N[R.TILDETRIM]=RegExp(A[R.TILDETRIM],"g"),I[R.TILDETRIM]=RegExp(n(A[R.TILDETRIM]),"g"),r("TILDE"),A[R.TILDE]="^"+A[R.LONETILDE]+A[R.XRANGEPLAIN]+"$",r("TILDELOOSE"),A[R.TILDELOOSE]="^"+A[R.LONETILDE]+A[R.XRANGEPLAINLOOSE]+"$",r("LONECARET"),A[R.LONECARET]="(?:\\^)",r("CARETTRIM"),A[R.CARETTRIM]="(\\s*)"+A[R.LONECARET]+"\\s+",N[R.CARETTRIM]=RegExp(A[R.CARETTRIM],"g"),I[R.CARETTRIM]=RegExp(n(A[R.CARETTRIM]),"g"),r("CARET"),A[R.CARET]="^"+A[R.LONECARET]+A[R.XRANGEPLAIN]+"$",r("CARETLOOSE"),A[R.CARETLOOSE]="^"+A[R.LONECARET]+A[R.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),A[R.COMPARATORLOOSE]="^"+A[R.GTLT]+"\\s*("+A[R.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),A[R.COMPARATOR]="^"+A[R.GTLT]+"\\s*("+A[R.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),A[R.COMPARATORTRIM]="(\\s*)"+A[R.GTLT]+"\\s*("+A[R.LOOSEPLAIN]+"|"+A[R.XRANGEPLAIN]+")",N[R.COMPARATORTRIM]=RegExp(A[R.COMPARATORTRIM],"g"),I[R.COMPARATORTRIM]=RegExp(n(A[R.COMPARATORTRIM]),"g"),L="$1$2$3",r("HYPHENRANGE"),A[R.HYPHENRANGE]="^\\s*("+A[R.XRANGEPLAIN]+")\\s+-\\s+("+A[R.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),A[R.HYPHENRANGELOOSE]="^\\s*("+A[R.XRANGEPLAINLOOSE]+")\\s+-\\s+("+A[R.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),A[R.STAR]="(<|>)?=?\\s*\\*";for(var x,D,S,T,N,I,A,R,O,C,_,L,$,P,k=0;k=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,$=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,P={},m.prototype.parse=function(e){var t=this.options.loose?I[R.COMPARATORLOOSE]:I[R.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=P;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===P||e===P)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),y(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),y(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?I[R.HYPHENRANGELOOSE]:I[R.HYPHENRANGE];e=e.replace(r,w),x("hyphen replace",e),e=e.replace(I[R.COMPARATORTRIM],L),x("comparator trim",e,I[R.COMPARATORTRIM]),e=(e=(e=e.replace(I[R.TILDETRIM],"$1~")).replace(I[R.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?I[R.COMPARATORLOOSE]:I[R.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?I[R.CARETLOOSE]:I[R.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?I[R.TILDELOOSE]:I[R.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?I[R.XRANGELOOSE]:I[R.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(I[R.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=y,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=I[R.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),I[R.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;I[R.COERCERTL].lastIndex=-1;}else n=e.match(I[R.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rA("GX8zo",function(e,t){var r=rI("7qQbq"),n=rI("c22IK");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rA("7qQbq",function(e,t){e.exports=function(){return ir.randomBytes(16);};}),rA("c22IK",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rA("bHzmH",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rI("iYbsa"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rA("iYbsa",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n7),s=i(ro),l=i(ru),u=i(ie),c=i(rI("zdagz")),p=i(rI("fwMQK")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rA("fEioR",function(e,t){e.exports=Promise.resolve(require("./actions_python.7877377d.js")).then(()=>rI("8L9T2"));}),rA("7fBnG",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rI("e95yL"),i=rI("7KjWO"),o=rI("aeYiS"),a=rI("aKT05"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rA("e95yL",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new C(S,Error(e.tagName+"@"+r));}function M(){}function j(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===j.DOCUMENT_TYPE_NODE;}function Y(e){return e&&e.nodeType===j.ELEMENT_NODE;}function W(e){return e&&e.nodeType===j.TEXT_NODE;}function K(e,t){var r=e.childNodes||[];if(o(r,Y)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function Q(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return Y(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function J(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===j.DOCUMENT_FRAGMENT_NODE){var a=i.filter(Y);if(a.length>1||o(i,W))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!Q(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(Y(t)&&!Q(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new C(D,"Only one doctype is allowed");var s=o(n,Y);if(r&&n.indexOf(s)1||o(i,W))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!K(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(Y(t)&&!K(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new C(D,"Only one doctype is allowed");var s=o(n,Y);if(r&&n.indexOf(s)=0;D--){var S=i[D];if(""===S.prefix&&S.namespace===e.namespaceURI){o=S.namespace;break;}}if(o!==e.namespaceURI)for(var D=i.length-1;D>=0;D--){var S=i[D];if(S.namespace===e.namespaceURI){S.prefix&&(b=S.prefix+":"+y);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var I=N.prefix||"",A=N.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",A),i.push({prefix:I,namespace:A});}eg(N,t,r,n,i);}if(y===b&&eh(e,r,i)){var I=e.prefix||"",A=e.namespaceURI;em(t,I?"xmlns:"+I:"xmlns",A),i.push({prefix:I,namespace:A});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(y)){if(t.push(">"),r&&/^script$/i.test(y))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case w:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var R=e.publicId,O=e.systemId;if(t.push("");else if(O&&"."!=O)t.push(" SYSTEM ",O,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rI("e95yL")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,w=s.DOCUMENT_FRAGMENT_NODE=11,y=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),D=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),S=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),C.prototype=Error.prototype,R(b,C),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},R(s,j),R(s,j.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==w){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,J),e.ownerDocument=this,t&&this.removeChild(t),Y(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case w:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=A(e);return new L(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=A(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},O(G,j),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===w?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new L(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new L(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,O(ee,j),et.prototype.nodeType=u,O(et,j),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[D]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},O(er,j),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},O(en,er),ei.prototype={nodeName:"#comment",nodeType:g},O(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},O(eo,er),ea.prototype.nodeType=E,O(ea,j),es.prototype.nodeType=y,O(es,j),el.prototype.nodeType=h,O(el,j),eu.prototype.nodeType=f,O(eu,j),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=w,O(ec,j),ep.prototype.nodeType=m,O(ep,j),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},j.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty(L.prototype,"length",{get:function(){return $(this),this.$$length;}}),Object.defineProperty(j.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case w:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=M,n=ed;}),rA("aeYiS",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rI("e95yL").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rA("aKT05",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rI("e95yL").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$7d48dd32ae42de33$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>w){var r=e.substring(w,t).replace(/&#?\w+;/g,a);g&&c(w),n.characters(r,0,t-w),w=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},w=0;;){try{var y=e.indexOf("<",w);if(y<0){if(!e.substr(w).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(w));b.appendChild(x),n.currentElement=x;}return;}switch(y>w&&l(y),e.charAt(y+1)){case"/":var D=e.indexOf(">",y+3),S=e.substring(y+2,D).replace(/[ \t\n\r]+$/g,""),T=v.pop();D<0?(S=e.substring(y+2).replace(/[\s<].*/,""),o.error("end tag name: "+S+" is not complete:"+T.tagName),D=y+1+S.length):S.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,y,n);break;case"!":g&&c(y),D=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,y,n,o);break;default:g&&c(y);var R=new f(),O=v[v.length-1].currentNSMap,D=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,y,R,O,a,o),C=R.length;if(!R.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))L;L++){var $=R[L];c($.offset),$.locator=u(g,{});}n.locator=_,p(R,n,O)&&v.push(R),n.locator=g;}else p(R,n,O)&&v.push(R);i.isHTML(R.uri)&&!R.closed?D=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,D,R.tagName,a,n):D++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),D=-1;}D>w?w=D:l(Math.max(y,w)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rR=rI("dAuy6"),rO=rI("hHq4F"),rC=rI("6OFKY"),function(){rI("kswPT").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),rL={},rL=rI("foOBZ"),r$={},r$={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iC),c(rk,"sync",()=>i_),it.promises;const{access:ia,appendFile:is,chmod:il,chown:iu,copyFile:ic,lchmod:ip,lchown:id,link:ih,lstat:im,mkdir:ig,mkdtemp:iv,open:iE,readdir:iw,readFile:iy,readlink:ib,realpath:ix,rename:iD,rmdir:iS,stat:iT,symlink:iN,truncate:iI,unlink:iA,utimes:iR,writeFile:iO}=it.promises,iC=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL(await iT(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL((0,it.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iL=(e,t)=>e.isFile()&&i$(e,t),i$=(e,t)=>{var r,n,i,o,a,s,l,u,c,p,d;let f=null!==(l=t.uid)&&void 0!==l?l:null===(r=(n=process).getuid)||void 0===r?void 0:r.call(n),h=null!==(c=null!==(u=t.groups)&&void 0!==u?u:null===(i=(o=process).getgroups)||void 0===i?void 0:i.call(o))&&void 0!==c?c:[],m=null!==(d=null!==(p=t.gid)&&void 0!==p?p:null===(a=(s=process).getgid)||void 0===a?void 0:a.call(s))&&void 0!==d?d:h[0];if(void 0===f||void 0===m)throw Error("cannot get uid or gid");let g=new Set([m,...h]),v=e.mode,E=e.uid,w=e.gid,y=parseInt("100",8),b=parseInt("010",8);return!!(v&parseInt("001",8)||v&b&&g.has(w)||v&y&&E===f||v&(y|b)&&0===f);};c(rU={},"isexe",()=>iP),c(rU,"sync",()=>ik);const iP=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iF(await iT(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},ik=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iF((0,it.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iU=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&iU(t,r),iM="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,ij=iM.isexe,iq=iM.sync;rF=ie.join,rM=ie.delimiter,rj=ie.sep,rq=ie.posix;const iB="win32"===process.platform,iG=new RegExp(`[${rq.sep}${rj===rq.sep?"":rj}]`.replace(/(\\)/g,"\\$1")),iH=RegExp("^\\."+iG.source),iV=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iX=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rM})=>{let i=e.match(iG)?[""]:[...(iB?[process.cwd()]:[]),...(t||"").split(n)];if(iB){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iz=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&iH.test(t)?t.slice(0,2):"")+rF(r,t);},iY=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(await ij(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);};rP=iY,iY.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(iq(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);},rB={},rG={},rH={},rV={};const iW="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iK=iW?";":":";rX={},"win32"===process.platform||rS.TESTING_WINDOWS?rz=rI("8nJMC"):rz=rI("lo7XV"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iQ=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iJ=(e,t)=>{let r=t.colon||iK,n=e.match(/\//)||iW&&e.match(/\\/)?[""]:[...(iW?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iW?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iW?i.split(r):[""];return iW&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iZ=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iJ(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iQ(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=ie.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iZ,iZ.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iJ(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rY=i0).default=i0,rH=function(e){return f(e)||f(e,!0);};rW=function(e){return e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1");},rK=function(e,t){return e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),e=(e=`"${e}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),t&&(e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),e;},rQ={},rJ={},rZ={},rZ=/^#!(.*)/,rJ=(e="")=>{let t=e.match(rZ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rQ=function(e){let t;let r=Buffer.alloc(150);try{t=it.openSync(e,"r"),it.readSync(t,r,0,150,0),it.closeSync(t);}catch(e){}return rJ(r.toString());};const i1="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!i1)return e;let t=function(e){e.file=rH(e);let t=e.file&&rQ(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=ie.normalize(e.command),e.command=rW(e.command),e.args=e.args.map(e=>rK(e,r));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},r0={};const i3="win32"===process.platform;r0={hookChildProcess:function(e,t){if(!i3)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return i3&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||r0.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=r0;const i2=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i4(i,o)||!n)&&Object.defineProperty(e,r,o);},i4=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i5=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i6=(e,t)=>`/* Wrapped ${e}*/ +${t}`,i8=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i9=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i7=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i6.bind(null,n,t.toString());Object.defineProperty(i,"name",i9),Object.defineProperty(e,"toString",{...i8,value:i});},oe=new WeakMap(),ot=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(oe.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))i2(e,t,n,r);i5(e,t),i7(e,t,n);}(o,e),oe.set(o,n),o;};ot.callCount=e=>{if(!oe.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return oe.get(e);},r1=ot;const or=()=>Array.from({length:oo-oi+1},on),on=(e,t)=>({name:"SIGRT"+(t+1),number:oi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oi=34,oo=64,oa=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],os=()=>[...oa,...or()].map(ol),ol=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},ou=Object.fromEntries(os().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oc=(e,t)=>{let r=op(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},op=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=os();return Object.assign({},...Array.from({length:oo+1},(t,r)=>oc(r,e)));})();const od=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",of=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,m=od({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} +${n.message}`:g,w=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=w):n=Error(w),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oh=["stdin","stdout","stderr"],om=e=>oh.some(t=>void 0!==e[t]),og=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oh.map(t=>e[t]);if(om(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oh.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oh.length)},(e,r)=>t[r]);};r3={};const ov=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(ov(r2=rS.process)){var oE,ow=ra,oy=rI("dVIKq"),ob=/^win/i.test(r2.platform),ox=ro;"function"!=typeof ox&&(ox=ox.EventEmitter),r2.__signal_exit_emitter__?oE=r2.__signal_exit_emitter__:((oE=r2.__signal_exit_emitter__=new ox()).count=0,oE.emitted={}),oE.infinite||(oE.setMaxListeners(1/0),oE.infinite=!0);var oD=function(){oN&&ov(rS.process)&&(oN=!1,oy.forEach(function(e){try{r2.removeListener(e,oT[e]);}catch(e){}}),r2.emit=oO,r2.reallyExit=oA,oE.count-=1);};(r3=function(e,t){if(!ov(rS.process))return function(){};ow.equal(typeof e,"function","a callback must be provided for exit handler"),!1===oN&&oI();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oE.on(r,e),function(){oE.removeListener(r,e),0===oE.listeners("exit").length&&0===oE.listeners("afterexit").length&&oD();};}).unload=oD;var oS=function(e,t,r){oE.emitted[e]||(oE.emitted[e]=!0,oE.emit(e,t,r));},oT={};oy.forEach(function(e){oT[e]=function(){ov(rS.process)&&r2.listeners(e).length===oE.count&&(oD(),oS("exit",null,e),oS("afterexit",null,e),ob&&"SIGHUP"===e&&(e="SIGINT"),r2.kill(r2.pid,e));};}),r3.signals=function(){return oy;};var oN=!1,oI=function(){!oN&&ov(rS.process)&&(oN=!0,oE.count+=1,oy=oy.filter(function(e){try{return r2.on(e,oT[e]),!0;}catch(e){return!1;}}),r2.emit=oC,r2.reallyExit=oR);};r3.load=oI;var oA=r2.reallyExit,oR=function(e){ov(rS.process)&&(r2.exitCode=e||0,oS("exit",r2.exitCode,null),oS("afterexit",r2.exitCode,null),oA.call(r2,r2.exitCode));},oO=r2.emit,oC=function(e,t){if(!("exit"===e&&ov(rS.process)))return oO.apply(this,arguments);void 0!==t&&(r2.exitCode=t);var r=oO.apply(this,arguments);return oS("exit",r2.exitCode,null),oS("afterexit",r2.exitCode,null),r;};}else r3=function(){return function(){};};const o_=(e,t="SIGTERM",r={})=>{let n=e(t);return oL(e,t,r,n),n;},oL=(e,t,r,n)=>{if(!o$(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ok(r));i.unref&&i.unref();},o$=(e,{forceKillAfterTimeout:t},r)=>oP(e)&&!1!==t&&r,oP=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ok=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oU=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oF=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oM=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{oF(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},oj=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oq=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},oB=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oG=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oB(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oH=e=>{null!==e.stdout&&(e.pipeStdout=oG.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oG.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oG.bind(void 0,e,"all"));};r4={},r5=rE.constants,r6=rs.promisify,r8={},r9=rw.PassThrough,r8=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r9({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oV=r6(rw.pipeline);class oX extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r4=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r4.array=(e,t)=>x(e,{...t,array:!0}),r4.MaxBufferError=oX,r7={},ne=rw.PassThrough,r7=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new ne({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oz=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oY=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.readFileSync)(t)),oW=e=>{let t=oY(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oK=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.createReadStream)(t)),oQ=(e,t)=>{let r=oK(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},oJ=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oZ=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},o0=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r4)(e,{encoding:t,maxBuffer:n}):p(r4).buffer(e,{maxBuffer:n});},o1=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=o0(e,{encoding:n,buffer:i,maxBuffer:o}),l=o0(t,{encoding:n,buffer:i,maxBuffer:o}),u=o0(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oZ(e,s),oZ(t,l),oZ(r,u)]);}},o3=(async()=>{})().constructor.prototype,o2=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(o3,e)]),o4=(e,t)=>{for(let[r,n]of o2){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o5=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o6=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o8=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o9=(e,t)=>o6(e,t).join(" "),o7=(e,t)=>o6(e,t).map(e=>o8(e)).join(" "),ae=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},at=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},ar=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],an=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=null!=i?i:e.raw[n],a=ar(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return ar(a,Array.isArray(s)?s.map(e=>at(e)):[at(s)],o.endsWith(" "));},ai=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=an({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},ao=(0,ry.debuglog)("execa").enabled,aa=(e,t)=>(e+"").padStart(t,"0"),as=()=>{let e=new Date();return`${aa(e.getHours(),2)}:${aa(e.getMinutes(),2)}:${aa(e.getSeconds(),2)}.${aa(e.getMilliseconds(),3)}`;},al=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${as()}] ${e} +`);},au=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},ac=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:ao,...r}).env=au(r),r.stdio=og(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},ap=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",ad=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},af=(e={})=>({preferLocal:!0,...ad(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ai(n,i);return D(o,a,af(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ai(e,r);return S(n,i,af(t));},r;}();const ah={stdio:"inherit",shell:!0},am=/^~(?=$|\/|\\)/;rO=rI("hHq4F"),nt={},nr=rI("coVwk"),nn=rb.env.npm_package_json,no=!!((ni=rb.env.npm_config_user_agent)&&ni.startsWith("npm")),na=!!(nn&&nn.endsWith("package.json")),ns=no||na,nl=!!(ni&&ni.startsWith("yarn")),nu=ns||nl,nc=n7.homedir(),np=process.env.XDG_CONFIG_HOME||ie.join(nc,".config","simple-update-notifier"),nd=function(e){return ie.join(np,"".concat(e.replace("@","").replace("/","__"),".json"));},nf=function(){it.existsSync(np)||it.mkdirSync(np,{recursive:!0});},nh=function(e){var t=nd(e);try{if(!it.existsSync(t))return;return JSON.parse(it.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nm=function(e){var t=nd(e);it.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},ng=function(e,t){return _(void 0,void 0,void 0,function(){var r;return L(this,function(n){return r="https://registry.npmjs.org/-/package/".concat(e,"/dist-tags"),[2,new Promise(function(e,n){io.get(r,function(r){var i="";r.on("data",function(e){return i+=e;}),r.on("end",function(){try{var r=JSON.parse(i)[t];r||n(Error("Error getting version")),e(r);}catch(e){n(Error("Could not parse version response"));}});}).on("error",function(e){return n(e);});})];});});},nv=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return L(this,function(i){switch(i.label){case 0:if(nf(),e=nh(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",av=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,f=ag({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} +${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},aE=["stdin","stdout","stderr"],aw=e=>aE.some(t=>void 0!==e[t]),ay=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return aE.map(t=>e[t]);if(aw(e))throw Error("It's not possible to provide `stdio` in combination with one of "+aE.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,aE.length)},(e,r)=>t[r]);},ab=(e,t="SIGTERM",r={})=>{let n=e(t);return ax(e,t,r,n),n;},ax=(e,t,r,n)=>{if(!aD(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},aT(r));i.unref&&i.unref();},aD=(e,{forceKillAfterTimeout:t},r)=>aS(e)&&!1!==t&&r,aS=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),aT=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},aN=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aI=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aA=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aI(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aR=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aO=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},aC=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,a_=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aC(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aL=e=>{null!==e.stdout&&(e.pipeStdout=a_.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=a_.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=a_.bind(void 0,e,"all"));},a$=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aP=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.readFileSync)(t)),ak=e=>{let t=aP(e);if(y(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},aU=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.createReadStream)(t)),aF=(e,t)=>{let r=aU(t);void 0!==r&&(y(r)?r.pipe(e.stdin):e.stdin.end(r));},aM=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},aj=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aq=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r4)(e,{encoding:t,maxBuffer:n}):p(r4).buffer(e,{maxBuffer:n});},aB=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aq(e,{encoding:n,buffer:i,maxBuffer:o}),l=aq(t,{encoding:n,buffer:i,maxBuffer:o}),u=aq(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},aj(e,s),aj(t,l),aj(r,u)]);}},aG=(async()=>{})().constructor.prototype,aH=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aG,e)]),aV=(e,t)=>{for(let[r,n]of aH){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aX=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),az=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aY=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aW=(e,t)=>az(e,t).join(" "),aK=(e,t)=>az(e,t).map(e=>aY(e)).join(" "),aQ=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aJ=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aZ=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=null!=i?i:e.raw[n],a=aJ(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aJ(a,Array.isArray(s)?s.map(e=>aQ(e)):[aQ(s)],o.endsWith(" "));},a0=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aZ({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},a1=(0,ry.debuglog)("execa").enabled,a3=(e,t)=>(e+"").padStart(t,"0"),a2=()=>{let e=new Date();return`${a3(e.getHours(),2)}:${a3(e.getMinutes(),2)}:${a3(e.getSeconds(),2)}.${a3(e.getMilliseconds(),3)}`;},a4=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${a2()}] ${e} +`);},a5=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?w({env:o,cwd:n,execPath:i}):o;},a6=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:a1,...r}).env=a5(r),r.stdio=ay(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a8=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a9=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a7=(e={})=>({preferLocal:!0,...a9(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=a0(n,i);return k(o,a,a7(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=a0(e,r);return function(e,t,r){let n;let i=a6(e,t,r),o=aW(e,t),a=aK(e,t);a4(a,i.options);let s=ak(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw av({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a8(i.options,n.stdout,n.error),u=a8(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=av({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a7(t));},r;}(),nb={};const se="win32"!==n7.platform(),st=n7.release(),sr=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nb=function(e){return se?e.replace(/(\s+)/g,"\\$1"):sr(.../(\d+\.\d+)\.(\d+)/.exec(st).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rI("8CJZb"),t=function(e){return e.split("").reverse().join("");},nx=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nx={}),nD=rI("6t4SD");const sn={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},si=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],so=C("~/.cpprc");let sa=!1;nD=rI("6t4SD"),nS=rI("f44Uw"),rO=rI("hHq4F");const{appendFile:ss}=it.promises;let sl=!1,su=!1;const sc=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nT||(nT={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",ny=rI("1o3Gj"),nN=rI("eAXk4"),nN=rI("eAXk4"),nI=rI("zdagz");let sp=!1;nD=rI("6t4SD"),nN=rI("eAXk4"),rO=rI("hHq4F");let sd=!1;rO=rI("hHq4F"),rO=rI("hHq4F");let sf=!1,sh=!1;const sm=/Version\s*:\s*(.*)/g;nA={},nR=ie.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nO=nA&&nA.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nC=nA&&nA.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n_=nA&&nA.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nO(t,e,r);return nC(t,e),t;},nL=nA&&nA.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},n$=nA&&nA.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nA,"__esModule",{value:!0}),nA.evaluateVersions=nA.isExplicitVersion=nA.findFromManifest=nA.getManifestFromRepo=nA.findAllVersions=nA.find=nA.cacheFile=nA.cacheDir=nA.extractZip=nA.extractXar=nA.extractTar=nA.extract7z=nA.downloadTool=nA.HTTPError=void 0;const sg=n_(rI("1o3Gj")),sv=n_(rI("zdagz")),sE=n_(it),sw=n_(rI("gn8Si")),sy=n_(n7),sb=n_(ie),sx=n_(rI("eamjo")),sD=n_(rI("0306Y")),sS=n_(rw),sT=n_(rs),sN=n$(rI("GX8zo"));nP=rI("bHzmH"),nU=(nk={},nk.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),nF=nk&&nk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nM=nk&&nk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nU(t,e,r);return nF(t,e),t;},nj=nk&&nk.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(nk,"__esModule",{value:!0}),nk.RetryHelper=void 0;const sI=nM(rI("1o3Gj"));nk.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nj(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sA extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nA.HTTPError=sA;const sR="win32"===process.platform,sO="darwin"===process.platform;nA.downloadTool=function(e,t,r,n){return nL(this,void 0,void 0,function*(){t=t||sb.join(eb(),sN.default()),yield sv.mkdirP(sb.dirname(t)),sg.debug("Downloading "+e),sg.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new nk.RetryHelper(3,i,o);return yield a.execute(()=>nL(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(sE.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sx.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sg.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sA(o.message.statusCode);throw sg.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sT.promisify(sS.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sE.createWriteStream(t)),sg.debug("download complete"),l=!0,t;}finally{if(!l){sg.debug("download failed");try{yield sv.rmRF(t);}catch(e){sg.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sA)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nA.extract7z=function(e,t,r){return nL(this,void 0,void 0,function*(){ra.ok(sR,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sg.isDebug()?"-bb1":"-bb0";yield nP.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sb.join(nR,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sv.which("powershell",!0);yield nP.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nA.extractTar=function(e,t,r="xz"){return nL(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sg.debug("Checking tar --version");let i="";yield nP.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sg.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sg.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sR&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nP.exec("tar",n),t;});},nA.extractXar=function(e,t,r=[]){return nL(this,void 0,void 0,function*(){let n;ra.ok(sO,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(n=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sg.isDebug()&&n.push("-v");let i=yield sv.which("xar",!0);return yield nP.exec(`"${i}"`,Array.from(new Set(n))),t;});},nA.extractZip=function(e,t){return nL(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sR?yield function(e,t){return nL(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sv.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sg.debug("Using pwsh at path: "+i),yield nP.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sv.which("powershell",!0);sg.debug("Using powershell at path: "+t),yield nP.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nL(this,void 0,void 0,function*(){let r=yield sv.which("unzip",!0),n=[e];sg.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nP.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nA.cacheDir=function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(r=sD.clean(r)||r,n=n||sy.arch(),sg.debug(`Caching tool ${t} ${r} ${n}`),sg.debug("source dir: "+e),!sE.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sE.readdirSync(e)){let r=sb.join(e,t);yield sv.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nA.cacheFile=function(e,t,r,n,i){return nL(this,void 0,void 0,function*(){if(n=sD.clean(n)||n,i=i||sy.arch(),sg.debug(`Caching tool ${r} ${n} ${i}`),sg.debug("source file: "+e),!sE.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sb.join(o,t);return sg.debug("destination file "+a),yield sv.cp(e,a),ev(r,n,i),o;});},nA.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sy.arch(),eE(t)||(t=ew(eh(e,r),t));let n="";if(t){t=sD.clean(t)||"";let i=sb.join(ey(),e,t,r);sg.debug("checking cache: "+i),sE.existsSync(i)&&sE.existsSync(`${i}.complete`)?(sg.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sg.debug("not found");}return n;},nA.findAllVersions=eh,nA.getManifestFromRepo=function(e,t,r,n="master"){return nL(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sx.HttpClient("tool-cache"),s={};r&&(sg.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sg.debug("Invalid json");}}return i;});},nA.findFromManifest=function(e,t,r,n=sy.arch()){return nL(this,void 0,void 0,function*(){return yield sw._findMatch(e,t,r,n);});},nA.isExplicitVersion=eE,nA.evaluateVersions=ew,nq=rI("hlfY9"),nB=rI("6v1Be"),nN=rI("eAXk4"),rO=rI("hHq4F"),rR=rI("dAuy6"),nD=rI("6t4SD"),Object.defineProperty(nG={},"__esModule",{value:!0}),nG.retryAsPromised=nG.TimeoutError=void 0;class sC extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nG.TimeoutError=sC,nG.retryAsPromised=eD,nG.default=eD;let s_=!1;nN=rI("eAXk4"),nI=rI("zdagz"),rO=rI("hHq4F"),ny=rI("1o3Gj"),nD=rI("6t4SD"),nN=rI("eAXk4"),nP=rI("bHzmH"),rR=rI("dAuy6"),rO=rI("hHq4F"),nH={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nV=Array.prototype.slice,nX=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:eL(this.keys),size:this.size,values:eL(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nN=rI("eAXk4"),nz=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nY=async e=>{if(!nz(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nW=rI("jDqfd"),nB=rI("6v1Be"),nK=rI("2kZmC"),nP=rI("bHzmH"),rO=rI("hHq4F");const sL=/v?(\d\S*)/,s$={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sP={pip:"22.2.0",python:"3.7.9"},sk={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};nD=rI("6t4SD");const sU=ek(e1,{isPromise:!0});rO=rI("hHq4F"),Object.defineProperty(nQ={},"__esModule",{value:!0}),nQ.getUbuntuVersion=void 0,nQ.getUbuntuVersion=e4;const sF=ek(e5,{isPromise:!0}),sM=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||it.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||it.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||it.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||it.mkdirSync,t;},sj=(e,t,r)=>{let n=(0,ie.dirname)(e),i={...sM(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sj(e,i,sj(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sq=Object.assign(async(e,t,r)=>{let n=sM(t);n.recursive=!1;let i=(0,ie.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sq(i,n).then(t=>sq(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sj}),sB=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sB(e,(0,ie.dirname)(t),t):void 0);},sG=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sG(e,(0,ie.dirname)(t),t):void 0;}},sH=(e,t)=>{let r=sM(t);if(r.recursive=!0,(0,ie.dirname)(e)===e)return r.mkdirSync(e,r);let n=sG(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sj(e,r);throw t;}},sV=Object.assign(async(e,t)=>{let r={...sM(t),recursive:!0};return(0,ie.dirname)(e)===e?await r.mkdirAsync(e,r):sB(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sq(e,r);throw t;}));},{sync:sH}),sX=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sz=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,ie.resolve)(e),"win32"===sX){let{root:t}=(0,ie.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sY=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sW=+sY[0]>10||10==+sY[0]&&+sY[1]>=12,sK=sW?e=>sM(e).mkdirSync===it.mkdirSync:()=>!1,sQ=Object.assign(sW?e=>sM(e).mkdir===it.mkdir:()=>!1,{sync:sK}),sJ=(e,t)=>{e=sz(e);let r=sM(t);return sK(r)?sH(e,r):sj(e,r);},sZ=Object.assign(async(e,t)=>{e=sz(e);let r=sM(t);return sQ(r)?sV(e,r):sq(e,r);},{mkdirpSync:sJ,mkdirpNative:sV,mkdirpNativeSync:sH,mkdirpManual:sq,mkdirpManualSync:sj,sync:sJ,native:sV,nativeSync:sH,manual:sq,manualSync:sj,useNative:sQ,useNativeSync:sK}),s0=ek(te,{isPromise:!0}),s1=ek(tt,{isPromise:!0}),s3=ek(tr,{isPromise:!0});nN=rI("eAXk4"),rO=rI("hHq4F"),nD=rI("6t4SD");const s2=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s4=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=s2.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nZ=rI("7KjWO")).DOMImplementation,nZ.XMLSerializer,nJ=rI("7fBnG").DOMParser;const s5=63,s6="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s8=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s9{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s7 extends s9{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t);return this.value?`${n}`:`${n}`;}}class le extends s9{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"data");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s8[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s5)<<18|(i&s5)<<12|(o&s5)<<6|a&s5,o>s5?a>s5?2:0:a>s5?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(r);}toXml(e=null,t=0){var r,n,i;let o=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",a=null!==(n=null==e?void 0:e.dataColumns)&&void 0!==n?n:68,s=(null!==(i=null==e?void 0:e.indentString)&&void 0!==i?i:" ").repeat(t),l=`${s}`;if(a>0)for(let e=th(this.value);e;e=e.substring(a))l+=`${o}${s}${e.substring(0,a)}`;else l+=`${o}${s}${th(this.value)}`;return l+`${o}${s}`;}}class lt extends s9{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){var t;tf(e,"integer");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";if(!/^[-+]?[0-9]+$/.test(r))throw Error("Invalid integer data: "+r);let n=+r;this.value=n>9007199254740991||n<-9007199254740991?BigInt(r):n;}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value;return tm(i),`${n}${i}`;}}class lr extends s9{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"real");let r=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(r))throw Error("Invalid real data: "+r);this.value=+r;}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value;return`${n}${i}`;}}class ln extends s9{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){var t;tf(e,"string"),this.value=(null===(t=td(e))||void 0===t?void 0:t.nodeValue)||"";}toXml(e=null,t=0){var r;let n=(null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ").repeat(t),i=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${n}${i}`;}}class li extends s9{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){var r,n;let i=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",o=(null!==(n=null==e?void 0:e.indentString)&&void 0!==n?n:" ").repeat(t),a=this.value;if(!a.length)return`${o}`;let s=`${o}`;for(let r of a)s+=`${i}${r.toXml(e,t+1)}`;return s+`${i}${o}`;}}class lo extends s9{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){var i;let r=t[e],o=t[e+1];tf(r,"key");let a=(null===(i=td(r))||void 0===i?void 0:i.nodeValue)||"",s=this.childFromXmlElement(o);n.set(a,s);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){var r,n;let i=null!==(r=null==e?void 0:e.indentString)&&void 0!==r?r:" ",o=null!==(n=null==e?void 0:e.newlineString)&&void 0!==n?n:"\n",a=i.repeat(t),s=this.value;if(!s.size)return`${a}`;let l=i.repeat(t+1),u=`${a}`;for(let[r,n]of s){let i=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");u+=`${o}${l}${i}${o}${n.toXml(e,t+1)}`;}return u+`${o}${a}`;}}const la='',ls='';class ll{static XML_DECLARATION=la;static XML_DOCTYPE=ls;xmlDeclaration=la;xmlDoctype=ls;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lo().childFromXmlElement(e);}toXml(e=null){var t,r;let n=null!==(t=null==e?void 0:e.indentRoot)&&void 0!==t&&t,i=null!==(r=null==e?void 0:e.newlineString)&&void 0!==r?r:"\n",o=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(o?[o.toXml(e,n?1:0)]:[]),"",""].join(i);}}class lu{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new ll();t.fromXml(e);let r=t.valueCastAs(lo).getValue("system-entities").castAs(li),n=[];for(let e of r.value){let t=e.castAs(lo),r=t.getValue("dev-entry").castAs(ln).value,i=t.getValue("potentially-mountable").castAs(s7).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(ln).value),a&&(u.unmappedContentHint=a.castAs(ln).value),s&&(u.volumeKind=s.castAs(ln).value),l&&(u.mountPoint=l.castAs(ln).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){var r;let n=null===(r=this._findRootDevice(e))||void 0===r?void 0:r.devEntry,i=null,o={eject:async(e=null)=>{n&&(await this.eject(n,e),n="",i&&process.off("exit",i));},ejectSync:(e=null)=>{n&&(this.ejectSync(n,e),n="",i&&process.off("exit",i));}};return t&&(i=()=>{o.ejectSync(t);},process.once("exit",i)),o;}}n0=rI("lORAA"),nB=rI("6v1Be"),nP=rI("bHzmH"),rO=rI("hHq4F"),nN=rI("eAXk4"),rO=rI("hHq4F"),rR=rI("dAuy6"),nD=rI("6t4SD"),n1=ie.resolve(__dirname,"../../src/gcc");const lc={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nK=rI("2kZmC"),n0=rI("lORAA"),nN=rI("eAXk4"),rO=rI("hHq4F"),nN=rI("eAXk4"),n3=ie.resolve(__dirname,"../../src/kcov"),rR=rI("dAuy6"),rO=rI("hHq4F"),nD=rI("6t4SD"),nN=rI("eAXk4"),ny=rI("1o3Gj"),rO=rI("hHq4F"),nN=rI("eAXk4"),ny=rI("1o3Gj");const lp=rb.env["ProgramFiles(x86)"],ld=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lf=["Enterprise","Professional","Community","BuildTools"],lh=["2022","2019","2017"],lm={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};n2=t$;const lg=`${lp}\\Microsoft Visual Studio\\Installer`;n4=tP,n5=function(e,t,r,n,i,o){if("win32"!=rb.platform){ny.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=ie.delimiter+lg;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;ny.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(ny.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(ny.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),ny.exportVariable(t,r));}ny.endGroup(),ny.info("Configured Developer Command Prompt");},rO=rI("hHq4F"),nD=rI("6t4SD");class lv extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lE extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const lw=e=>void 0===globalThis.DOMException?new lE(e):new DOMException(e),ly=e=>{let t=void 0===e.reason?lw("This operation was aborted."):e.reason;return t instanceof Error?t:lw(t);},lb=12e5,{readFile:lx,writeFile:lD,chmod:lS}=it.promises;(rn=n6||(n6={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nq=rI("hlfY9"),rO=rI("hHq4F"),nN=rI("eAXk4");const lT=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lN=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lI=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lA=new Map(),lR={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lO="17.0.6";n8=ie.resolve(__dirname,"../../src/llvm");const lC=ek(tY,{isPromise:!0}),l_=ek(tK,{isPromise:!0}),lL=ek(tQ,{isPromise:!0});rR=rI("dAuy6"),nN=rI("eAXk4"),rO=rI("hHq4F"),nD=rI("6t4SD"),n9=ie.resolve(__dirname,"../../src/msvc"),nN=rI("eAXk4"),nN=rI("eAXk4"),rO=rI("hHq4F"),nD=rI("6t4SD"),nN=rI("eAXk4");let l$=!1;const lP={nala:t2,cmake:e_,ninja:tA,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t4,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tW(e,t,r);},clangformat:function(e,t,r){return tW(e,t,r,n6.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:tL,make:t0,task:function(e,t,r){return eS("task",e,t8,t,r);},sevenzip:eT},lk=Object.keys(lP),lU=["compiler","architecture","timeout",...lk];ny=rI("1o3Gj"),rO=rI("hHq4F"),nK=rI("2kZmC"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rO.error)("main() panicked!"),(0,rO.error)(e),process.exitCode=1;}); //# sourceMappingURL=setup-cpp.js.map \ No newline at end of file diff --git a/dist/legacy/setup-cpp.js.map b/dist/legacy/setup-cpp.js.map index a185c837..a4f74762 100644 --- a/dist/legacy/setup-cpp.js.map +++ b/dist/legacy/setup-cpp.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-cpp.js","names":["e","t","r","n","i","o","a","s","l","u","d","Promise","TypeError","rz","code","ignoreErrors","f","options","env","process","cwd","chdir","disabled","rV","sync","command","path","rY","pathExt","n6","delimiter","resolve","h","Object","assign","Error","errno","syscall","spawnargs","args","m","iJ","file","original","g","rG","ru","spawn","rJ","hookChildProcess","v","charCodeAt","length","slice","E","platform","keys","reverse","find","toUpperCase","w","p","rm","execPath","URL","rg","fileURLToPath","rf","push","join","y","pipe","b","writable","_write","_writableState","x","maxBuffer","r5","getBufferedLength","r2","MAX_LENGTH","bufferedData","getBufferedValue","oq","on","oB","D","aa","o4","o5","ai","ok","rh","ChildProcess","o0","reject","ou","error","stdout","stderr","all","escapedCommand","parsed","timedOut","isCanceled","killed","o1","oP","oU","c","kill","oA","bind","cancel","o$","rZ","exitCode","signal","oQ","as","aborted","failed","oz","oY","oj","S","oV","spawnSync","input","status","T","getuid","call","CI","rP","nothrow","N","ac","o6","A","R","I","map","O","SUDO_USER","n8","statSync","isDirectory","C","n5","homedir","replace","ap","_","next","throw","done","value","then","apply","$","return","label","ops","pop","trys","sent","Symbol","iterator","L","r7","pkg","nm","rO","warning","message","stack","P","Array","isArray","k","a3","aV","aX","a0","aT","aq","af","aB","aS","aN","av","ax","aM","a2","aL","aP","aR","U","stdio","M","a7","nv","nE","shouldEscapeSpace","rR","GITHUB_ACTIONS","shouldAddOnlyIfNotDefined","ng","info","exportVariable","j","setFailed","F","se","some","test","PATH","split","includes","addPath","q","B","appendFileSync","st","sr","nw","pathExists","readFileSync","G","Set","writeFileSync","H","z","name","version","DEBIAN_FRONTEND","si","Y","so","W","flatMap","repositories","X","sa","binDir","V","ny","default","trim","Q","K","J","Z","toString","sn","ee","startsWith","et","nx","dirname","tmpdir","nD","mkdirP","NONINTERACTIVE","er","en","ss","arch","ei","SystemRoot","ALLUSERSPROFILE","ChocolateyInstall","eo","sl","TMP","TEMP","Path","extendEnv","ea","es","el","eu","ec","ep","ed","su","sc","ef","matchAll","sp","eh","sg","sv","ey","sh","existsSync","readdirSync","eE","em","eb","sx","sf","eg","sw","clean","sd","debug","rmRF","ev","valid","ew","sort","gt","satisfies","RUNNER_TOOL_CACHE","ra","RUNNER_TEMP","ex","rS","eD","$current","max","timeout","match","backoffBase","backoffExponent","report","Date","toLocaleTimeString","setTimeout","clearTimeout","sI","current","catch","RegExp","Math","pow","eS","url","binRelativeDir","binFileName","extractedFolderName","extractFunction","nS","installDir","nF","downloadTool","sA","cacheDir","eT","eN","eI","eA","eR","eO","eC","nM","nU","addExeExt","extractTar","e_","e$","nq","eL","eP","ek","isMemoized","fn","isEqual","isMatchingKey","isPromise","maxSize","onCacheAdd","onCacheChange","onCacheHit","transformKey","nj","nB","values","canTransformKey","shouldCloneArguments","shouldUpdateOnAdd","shouldUpdateOnChange","shouldUpdateOnHit","arguments","getKeyIndex","orderByLru","updateAsyncCache","cache","eU","ie","request","method","statusCode","end","eM","from","filter","nV","localeCompare","eF","nH","has","JSON","stringify","ej","sR","nC","getExecOutput","console","eq","eB","eG","eX","bin","eK","eH","eV","e7","e9","upgrade","usePipx","to","isLibrary","eY","setupActionsPython","rI","ez","eW","sC","python","eQ","eZ","eJ","pip","e0","e1","e3","e2","s_","parseInt","sO","e4","execFile","encoding","shell","e5","e6","nz","getUbuntuVersion","e8","sJ","user","tn","PIPX_HOME","sK","PIPX_BIN_DIR","sQ","s$","ti","te","sW","tt","tr","sL","findIndex","ta","ts","tl","tu","tc","nY","locator","errorHandler","fatalError","parseFromString","childNodes","documentElement","declaration","doctype","tp","nodeValue","tagName","td","tf","th","s3","s1","tm","Number","isInteger","tg","lo","devices","eject","attach","mountPoint","tv","tE","tw","s0","notice","ty","tb","la","releaseName","fileSuffix","tx","tS","tT","tD","nK","tN","nQ","tI","tA","tR","tO","tC","t_","nJ","t$","tL","lp","tP","execSync","entries","lc","ll","lu","ls","tk","n1","tU","lv","startGroup","milliseconds","fallback","customTimers","sign","lg","addEventListener","POSITIVE_INFINITY","lf","finally","clear","tM","endGroup","lC","t7","tF","tj","ly","lE","NODE_DEBUG","tq","lw","rD","tB","tG","tH","lx","tV","lD","lS","get","lb","lT","lN","tX","tz","lI","tJ","tY","tW","lR","tZ","n3","All","nX","lA","tK","tQ","LD_LIBRARY_PATH","DYLD_LIBRARY_PATH","n2","t0","t1","nZ","n0","t3","n4","t2","t4","t5","t6","t8","t9","lO","addShExt","addShRelativePrefix","re","compiler","rt","ACTIONS_ALLOW_UNSECURE_COMMANDS","alias","unknown","string","boolean","concat","splice","substring","indexOf","repeat","shift","l$","fromEntries","getInput","toLowerCase","help","table","tools","documentation","coverage","other","architecture","SETUP_CPP_DIR","r$","create","autoloadLocales","addLocale","rL","rC","r_","forEach","cppcheck","gcovr","l_","isCI","now","parseFloat","format","success","rr","rn","rM","rF","rj","rq","r1","r4","r6","r9","nt","nr","nn","ni","no","na","ns","nl","nu","nc","np","nd","nf","nh","nG","any","every","defineProperty","exports","constant","isPR","pr","ne","BUILD_ID","BUILD_NUMBER","CI_APP_ID","CI_BUILD_ID","CI_BUILD_NUMBER","CI_NAME","CONTINUOUS_INTEGRATION","RUN_ID","parse","log","required","trimWhitespace","issueCommand","toCommandProperties","issue","ExitCode","Success","Failure","toCommandValue","GITHUB_ENV","issueFileCommand","prepareKeyValueMessage","setSecret","GITHUB_PATH","getMultilineInput","getBooleanInput","setOutput","GITHUB_OUTPUT","write","EOL","setCommandEcho","isDebug","RUNNER_DEBUG","group","saveState","GITHUB_STATE","getState","getIDToken","OidcClient","enumerable","summary","markdownSummary","toPosixPath","toWin32Path","toPlatformPath","constructor","properties","hasOwnProperty","String","title","line","startLine","endLine","col","startColumn","endColumn","random","rng","n9","randomFillSync","Uint8Array","substr","createHttpClient","HttpClient","BearerCredentialHandler","getRequestToken","allowRetries","maxRetries","ACTIONS_ID_TOKEN_REQUEST_TOKEN","getIDTokenUrl","ACTIONS_ID_TOKEN_REQUEST_URL","getCall","getJson","result","encodeURIComponent","n7","HttpCodes","OK","MultipleChoices","MovedPermanently","ResourceMoved","SeeOther","NotModified","UseProxy","SwitchProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","TooManyRequests","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","Headers","Accept","ContentType","MediaTypes","ApplicationJson","getProxyUrl","href","setPrototypeOf","prototype","HttpClientError","readBody","Buffer","alloc","HttpClientResponse","isHttps","protocol","_ignoreSslError","_allowRedirects","_allowRedirectDowngrade","_maxRedirects","_allowRetries","_maxRetries","_keepAlive","_disposed","userAgent","handlers","requestOptions","ignoreSslError","_socketTimeout","socketTimeout","allowRedirects","allowRedirectDowngrade","maxRedirects","keepAlive","del","post","patch","put","head","sendStream","_getExistingOrDefaultHeader","_processResponse","postJson","putJson","patchJson","_prepareRequest","requestRaw","canHandleAuthentication","handleAuthentication","headers","location","hostname","_performExponentialBackoff","dispose","_agent","destroy","requestRawWithCallback","byteLength","httpModule","getAgent","_getAgent","parsedUrl","host","port","pathname","search","_mergeHeaders","agent","prepareRequest","_proxyAgent","maxSockets","globalAgent","proxy","username","password","proxyAuth","httpsOverHttps","httpsOverHttp","httpOverHttps","httpOverHttp","Agent","rejectUnauthorized","min","deserializeDates","isNaN","valueOf","reduce","no_proxy","NO_PROXY","endsWith","https_proxy","HTTPS_PROXY","http_proxy","HTTP_PROXY","checkBypass","proxyOptions","defaultMaxSockets","requests","sockets","onSocket","removeSocket","createSocket","getHeader","socket","servername","ri","connect","localAddress","defaultPort","rs","inherits","ro","EventEmitter","addRequest","emit","removeListener","removeAllListeners","useChunkedEncodingByDefault","once","nextTick","unshift","BasicCredentialHandler","Authorization","token","PersonalAccessTokenCredentialHandler","access","appendFile","writeFile","promises","SUMMARY_ENV_VAR","SUMMARY_DOCS_URL","_buffer","filePath","_filePath","constants","R_OK","W_OK","wrap","overwrite","emptyBuffer","isEmptyBuffer","addRaw","addEOL","addCodeBlock","lang","addList","addTable","header","data","colspan","rowspan","addDetails","addImage","width","height","src","alt","addHeading","addSeparator","addBreak","addQuote","cite","addLink","sep","require","pluralize","numerous","id","locale","span","unitType","unitTypeLookupOrder","autoload","floor","defaultConfig","versions","node","isSymbolicLink","isFile","PATHEXT","stat","mode","uid","gid","getgid","inc","diff","major","minor","prerelease","compare","rcompare","compareLoose","compareBuild","rsort","lt","neq","gte","lte","cmp","coerce","Comparator","Range","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","intersects","simplifyRange","subset","SemVer","tokens","SEMVER_SPEC_VERSION","RELEASE_TYPES","compareIdentifiers","rcompareIdentifiers","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","safeRe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","MAX_SAFE_INTEGER","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","loose","includePrerelease","LOOSE","FULL","raw","build","compareMain","comparePre","freeze","rtl","COERCERTL","exec","index","lastIndex","ANY","semver","operator","COMPARATORLOOSE","COMPARATOR","set","parseRange","range","HYPHENRANGELOOSE","HYPHENRANGE","COMPARATORTRIM","TILDETRIM","CARETTRIM","Map","size","delete","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","GTE0PRE","GTE0","unshiftNode","maxAge","tail","prev","key","removeNode","stale","noDisposeOnSet","updateAgeOnGet","reset","allowStale","lengthCalculator","itemCount","rforEach","toArray","dump","dumpLru","peek","load","prune","list","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","add","rl","configurable","basename","extname","normalize","relative","IS_WINDOWS","force","recursive","retryDelay","mkdir","isRooted","tryGetExecutablePath","lstat","unlink","chmod","readlink","symlink","exists","copyFile","cp","copySourceDirectory","readdir","mv","rename","which","findInPath","open","rmdir","UV_FS_O_EXLOCK","READONLY","O_RDONLY","getCmdPath","COMSPEC","_findMatch","stable","files","platform_version","_getOsVersion","_readLinuxVersionFile","randomBytes","argStringToArray","ToolRunner","rc","StringDecoder","listeners","toolPath","_debug","_getCommandString","_getSpawnFileName","_getSpawnArgs","_isCmdFile","windowsVerbatimArguments","_windowsQuoteCmdArg","_processLineBuffer","_endsWith","_uvQuoteCmdArg","_cloneExecOptions","silent","failOnStdErr","ignoreReturnCode","delay","outStream","errStream","_getSpawnOptions","argv0","stdline","processStderr","errline","processError","processExited","processClosed","CheckComplete","processExitCode","stdin","charAt","_setResult","rp","HandleTimeout","rA","cdata","lineNumber","columnNumber","systemId","java","currentElement","appendChild","doc","NAMESPACE","ParseError","XMLReader","domBuilder","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","Function","HTML","xml","XML","normalizeLineEndings","startDocument","createDocument","documentURI","startElement","createElementNS","getURI","getValue","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","parentNode","startPrefixMapping","endPrefixMapping","processingInstruction","createProcessingInstruction","ignorableWhitespace","characters","createCDATASection","createTextNode","skippedEntity","endDocument","comment","createComment","startCDATA","endCDATA","startDTD","implementation","createDocumentType","warn","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","XMLNS","captureStackTrace","_node","_refresh","_inc","ownerDocument","$$length","ownerElement","namespaceURI","_nsMap","prefix","localName","firstChild","nextSibling","previousSibling","lastChild","nodeType","DOCUMENT_TYPE_NODE","ELEMENT_NODE","TEXT_NODE","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","lookupPrefix","namespace","attributes","item","nodeName","publicId","internalSubset","target","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","insertBefore","replaceChild","hasChildNodes","cloneNode","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","serializeToString","apos","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","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","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","efDot","Efr","efr","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","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","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","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","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","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","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","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","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","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","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","qName","uri","closed","currentNSMap","localNSMap","attributeNames","source","fromCharCode","endDTD","addValue","setTagName","lastIndexOf","offset","getLocalName","abs","long","years","one","months","weeks","days","hours","minutes","seconds","narrow","short","rk","ir","chown","io","ia","lchmod","is","lchown","il","link","iu","ip","mkdtemp","ih","im","readFile","ig","iv","realpath","iE","iw","iy","ib","ix","truncate","iD","iS","utimes","iT","iN","iI","iR","iA","iO","groups","getgroups","rU","iL","i_","i$","iP","_ISEXE_TEST_PLATFORM_","ik","isexe","iU","posix","iM","iF","ij","iq","iB","pathEnv","pathExtExe","iG","iH","rB","rH","OSTYPE","iX","iV","rX","TESTING_WINDOWS","iz","iY","iW","iK","rW","rK","rQ","openSync","readSync","closeSync","iQ","forceShell","comspec","verifyENOENT","verifyENOENTSync","notFoundError","_parse","_enoent","iZ","getOwnPropertyDescriptor","i0","i1","getPrototypeOf","i3","i2","i4","i5","i6","WeakMap","i8","displayName","ignoreNonConfigurable","Reflect","ownKeys","callCount","i9","ot","oe","i7","number","action","description","standard","forced","oi","signals","rv","supported","oo","oa","os","ol","errorCode","signalDescription","Boolean","originalMessage","shortMessage","oc","op","od","of","reallyExit","pid","oh","om","og","ov","oE","__signal_exit_emitter__","count","emitted","infinite","setMaxListeners","ow","ox","ob","oN","r0","equal","oD","alwaysLast","unload","oy","oI","oT","oR","oO","o_","unref","forceKillAfterTimeout","oC","SIGTERM","isFinite","oL","killSignal","cleanup","detached","oM","oF","createWriteStream","pipeStdout","pipeStderr","pipeAll","rE","promisify","rw","PassThrough","array","objectMode","setEncoding","pipeline","r3","buffer","MaxBufferError","r8","readable","isEmpty","oG","oH","inputFile","oX","createReadStream","oW","oK","oJ","oZ","o3","o2","o8","rd","isBuffer","o9","o7","templates","expressions","template","ae","at","ry","debuglog","enabled","ar","padStart","an","getHours","getMinutes","getSeconds","getMilliseconds","verbose","ao","preferLocal","localDir","stripFinalNewline","windowsHide","al","au","rb","npm_package_json","npm_config_user_agent","XDG_CONFIG_HOME","mkdirSync","lastUpdateCheck","getTime","updateCheckInterval","distTag","alwaysRun","padEnd","isTTY","shouldNotifyInNpmScript","ad","ah","am","ag","aE","aw","ab","ay","aD","aI","aA","aO","aC","a_","a$","ak","aU","aF","aj","aG","aH","az","aY","aW","aK","aQ","aJ","aZ","a1","a4","a5","a6","a8","release","a9","nb","nA","sm","sE","sy","sb","nO","sD","nP","n_","RetryHelper","maxAttempts","minSeconds","maxSeconds","execute","getSleepAmount","sleep","sS","httpStatusCode","new","HTTPError","sT","sN","nR","authorization","statusMessage","extract7z","nT","extractXar","extractZip","cacheFile","findAllVersions","getManifestFromRepo","tree","accept","findFromManifest","isExplicitVersion","evaluateVersions","retryAsPromised","TimeoutError","previous","_getKeyIndexFromMatchingKey","_getKeyIndexForMany","_getKeyIndexForSingle","llvm","clangtidy","clangformat","ninja","cmake","conan","meson","kcov","task","doxygen","gcc","mingw","nala","sP","fs","mkdirAsync","statAsync","sk","sU","sM","sF","sj","sq","sB","__TESTING_MKDIRP_PLATFORM__","sG","root","sH","__TESTING_MKDIRP_NODE_VERSION__","sV","sX","sz","sY","mkdirpSync","mkdirpNative","mkdirpNativeSync","mkdirpManual","mkdirpManualSync","native","nativeSync","manual","manualSync","useNative","useNativeSync","sZ","DOMImplementation","nW","XMLSerializer","DOMParser","s2","s4","type","TYPE","castTo","castAs","fromXml","fromXmlElement","s5","TAG_NAMES","toXml","indentString","s6","newlineString","dataColumns","s8","asBigInt","BigInt","asNumber","s9","s7","replaceAll","CHILD_TAG_NAMES","popValue","shiftValue","childFromXmlElement","lr","ln","li","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","valueCastAs","indentRoot","hdiutil","_runAttach","_argsAttach","ejectSync","_createEjects","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","readonly","nobrowse","_fileArg","_parseDevices","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","_findRootDevice","off","ProgramFiles","ld","win32","win64","x86_64","lh","lm","globalThis","DOMException","reason","vcpkg","bazel","opencppcoverage","choco","brew","powershell","ccache","sccache","graphviz","ClangFormat","msvc","vcvarsall","make","sevenzip","argv"],"sources":["../../","../../node_modules/ci-info/index.js","../../node_modules/ci-info/vendors.json","../../packages/ci-log/src/index.ts","../../node_modules/@actions/core/lib/core.js","../../node_modules/@actions/core/src/core.ts","../../node_modules/@actions/core/lib/command.js","../../node_modules/@actions/core/src/command.ts","../../node_modules/@actions/core/lib/utils.js","../../node_modules/@actions/core/src/utils.ts","../../node_modules/@actions/core/lib/file-command.js","../../node_modules/@actions/core/src/file-command.ts","../../node_modules/uuid/dist/esm-node/v4.js","../../node_modules/uuid/dist/esm-node/rng.js","../../node_modules/uuid/dist/esm-node/stringify.js","../../node_modules/uuid/dist/esm-node/validate.js","../../node_modules/uuid/dist/esm-node/regex.js","../../node_modules/@actions/core/lib/oidc-utils.js","../../node_modules/@actions/core/src/oidc-utils.ts","../../node_modules/@actions/http-client/lib/index.js","../../node_modules/@actions/http-client/src/index.ts","../../node_modules/@actions/http-client/lib/proxy.js","../../node_modules/@actions/http-client/src/proxy.ts","../../node_modules/tunnel/index.js","../../node_modules/tunnel/lib/tunnel.js","../../node_modules/@actions/http-client/lib/auth.js","../../node_modules/@actions/http-client/src/auth.ts","../../node_modules/@actions/core/lib/summary.js","../../node_modules/@actions/core/src/summary.ts","../../node_modules/@actions/core/lib/path-utils.js","../../node_modules/@actions/core/src/path-utils.ts","../../node_modules/numerous/lib/numerous.js","../../node_modules/time-delta/lib/time-delta.js","../../node_modules/numerous/index.js","../../node_modules/is-node/index.js","../../node_modules/isexe/windows.js","../../node_modules/isexe/mode.js","../../node_modules/signal-exit/signals.js","../../node_modules/semver/index.js","../../node_modules/semver/internal/re.js","../../node_modules/semver/internal/constants.js","../../node_modules/semver/internal/debug.js","../../node_modules/semver/classes/semver.js","../../node_modules/semver/internal/parse-options.js","../../node_modules/semver/internal/identifiers.js","../../node_modules/semver/functions/parse.js","../../node_modules/semver/functions/valid.js","../../node_modules/semver/functions/clean.js","../../node_modules/semver/functions/inc.js","../../node_modules/semver/functions/diff.js","../../node_modules/semver/functions/major.js","../../node_modules/semver/functions/minor.js","../../node_modules/semver/functions/patch.js","../../node_modules/semver/functions/prerelease.js","../../node_modules/semver/functions/compare.js","../../node_modules/semver/functions/rcompare.js","../../node_modules/semver/functions/compare-loose.js","../../node_modules/semver/functions/compare-build.js","../../node_modules/semver/functions/sort.js","../../node_modules/semver/functions/rsort.js","../../node_modules/semver/functions/gt.js","../../node_modules/semver/functions/lt.js","../../node_modules/semver/functions/eq.js","../../node_modules/semver/functions/neq.js","../../node_modules/semver/functions/gte.js","../../node_modules/semver/functions/lte.js","../../node_modules/semver/functions/cmp.js","../../node_modules/semver/functions/coerce.js","../../node_modules/semver/classes/comparator.js","../../node_modules/semver/classes/range.js","../../node_modules/semver/node_modules/lru-cache/index.js","../../node_modules/yallist/yallist.js","../../node_modules/yallist/iterator.js","../../node_modules/semver/functions/satisfies.js","../../node_modules/semver/ranges/to-comparators.js","../../node_modules/semver/ranges/max-satisfying.js","../../node_modules/semver/ranges/min-satisfying.js","../../node_modules/semver/ranges/min-version.js","../../node_modules/semver/ranges/valid.js","../../node_modules/semver/ranges/outside.js","../../node_modules/semver/ranges/gtr.js","../../node_modules/semver/ranges/ltr.js","../../node_modules/semver/ranges/intersects.js","../../node_modules/semver/ranges/simplify.js","../../node_modules/semver/ranges/subset.js","../../node_modules/escape-quotes/node_modules/escape-string-regexp/index.js","../../node_modules/path-exists/index.js","../../node_modules/patha/dist/index.node.mjs","../../node_modules/patha/src/name.ts","../../node_modules/patha/src/normalize-trim.ts","../../node_modules/patha/src/add-exe-ext.ts","../../node_modules/patha/src/add-name-prefix.ts","../../node_modules/patha/src/add-name-suffix.ts","../../node_modules/patha/src/add-sh-ext.ts","../../node_modules/patha/src/add-sh-relative-prefix.ts","../../node_modules/patha/src/remove-ext.ts","../../node_modules/patha/src/replace-ext.ts","../../node_modules/patha/src/is-path-inside.ts","../../node_modules/escape-string-regexp/index.js","../../node_modules/replace-ext/index.js","../../node_modules/@actions/io/lib/io.js","../../node_modules/@actions/io/src/io.ts","../../node_modules/@actions/io/lib/io-util.js","../../node_modules/@actions/io/src/io-util.ts","../../node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/@actions/tool-cache/node_modules/uuid/v4.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/rng.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/@actions/exec/lib/exec.js","../../node_modules/@actions/exec/src/exec.ts","../../node_modules/@actions/exec/lib/toolrunner.js","../../node_modules/@actions/exec/src/toolrunner.ts","../../node_modules/@parcel/runtime-js/lib/runtime-3dfbc2a3f5a258f9.js","../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/@xmldom/xmldom/lib/sax.js","../../src/main.ts","../../node_modules/numerous/locales/en.js","../../node_modules/time-delta/index.js","../../node_modules/time-delta/locales/en.js","../../packages/untildify-user/src/index.ts","../../node_modules/admina/src/index.mts","../../node_modules/admina/dist/root.mjs","../../node_modules/admina/src/root.mts","../../node_modules/which/lib/index.js","../../node_modules/which/node_modules/isexe/dist/mjs/index.js","../../node_modules/which/node_modules/isexe/src/index.ts","../../node_modules/which/node_modules/isexe/dist/mjs/posix.js","../../node_modules/which/node_modules/isexe/src/posix.ts","../../src/utils/compat/fs/promises.ts","../../node_modules/which/node_modules/isexe/dist/mjs/win32.js","../../node_modules/which/node_modules/isexe/src/win32.ts","../../node_modules/which/node_modules/isexe/src/options.ts","../../node_modules/execa/index.js","../../node_modules/cross-spawn/index.js","../../node_modules/cross-spawn/lib/parse.js","../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../node_modules/cross-spawn/node_modules/which/which.js","../../node_modules/isexe/index.js","../../node_modules/path-key/index.js","../../node_modules/cross-spawn/lib/util/escape.js","../../node_modules/cross-spawn/lib/util/readShebang.js","../../node_modules/shebang-command/index.js","../../node_modules/shebang-regex/index.js","../../node_modules/cross-spawn/lib/enoent.js","../../node_modules/strip-final-newline/index.js","../../node_modules/npm-run-path/index.js","../../node_modules/npm-run-path/node_modules/path-key/index.js","../../node_modules/onetime/index.js","../../node_modules/mimic-fn/index.js","../../node_modules/execa/lib/error.js","../../node_modules/human-signals/build/src/main.js","../../node_modules/human-signals/build/src/realtime.js","../../node_modules/human-signals/build/src/signals.js","../../node_modules/human-signals/build/src/core.js","../../node_modules/execa/lib/stdio.js","../../node_modules/execa/lib/kill.js","../../node_modules/signal-exit/index.js","../../node_modules/execa/lib/pipe.js","../../node_modules/is-stream/index.js","../../node_modules/execa/lib/stream.js","../../node_modules/get-stream/index.js","../../node_modules/get-stream/buffer-stream.js","../../node_modules/merge-stream/index.js","../../node_modules/execa/lib/promise.js","../../node_modules/execa/lib/command.js","../../node_modules/execa/lib/verbose.js","../../node_modules/admina/dist/admin.mjs","../../node_modules/admina/src/admin.mts","../../node_modules/admina/dist/is-admin.mjs","../../node_modules/admina/src/is-admin.mts","../../node_modules/admina/dist/user-access.mjs","../../node_modules/admina/src/user-access.mts","../../src/check-updates.ts","../../node_modules/simple-update-notifier/build/index.js","../../package-version.json","../../src/cli-options.ts","../../node_modules/mri/lib/index.mjs","../../src/tool.ts","../../src/bazel/bazel.ts","../../src/utils/setup/setupAptPack.ts","../../src/utils/env/addEnv.ts","../../packages/exec-powershell/src/index.ts","../../packages/exec-powershell/node_modules/execa/index.js","../../packages/exec-powershell/node_modules/execa/lib/error.js","../../packages/exec-powershell/node_modules/execa/lib/stdio.js","../../packages/exec-powershell/node_modules/execa/lib/kill.js","../../packages/exec-powershell/node_modules/execa/lib/pipe.js","../../packages/exec-powershell/node_modules/execa/lib/stream.js","../../packages/exec-powershell/node_modules/execa/lib/promise.js","../../packages/exec-powershell/node_modules/execa/lib/command.js","../../packages/exec-powershell/node_modules/execa/lib/verbose.js","../../node_modules/escape-path-with-spaces/index.js","../../node_modules/escape-quotes/lib/escape-quotes.js","../../src/utils/setup/setupBrewPack.ts","../../src/brew/brew.ts","../../src/utils/setup/setupChocoPack.ts","../../src/chocolatey/chocolatey.ts","../../src/utils/env/isArch.ts","../../src/utils/env/hasDnf.ts","../../src/utils/setup/setupDnfPack.ts","../../src/utils/env/isUbuntu.ts","../../src/ccache/ccache.ts","../../src/utils/setup/setupPacmanPack.ts","../../src/cmake/cmake.ts","../../node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/@actions/tool-cache/src/retry-helper.ts","../../src/utils/setup/setupBin.ts","../../node_modules/retry-as-promised/dist/index.js","../../src/utils/setup/extract.ts","../../src/sevenzip/sevenzip.ts","../../src/conan/conan.ts","../../src/utils/setup/setupPipPack.ts","../../src/python/python.ts","../../node_modules/micro-memoize/dist/micro-memoize.esm.js","../../node_modules/micro-memoize/src/utils.ts","../../node_modules/micro-memoize/src/Cache.ts","../../node_modules/micro-memoize/src/index.ts","../../src/utils/setup/version.ts","../../node_modules/is-url-online/dist/index.mjs","../../src/utils/std/index.ts","../../src/versions/default_versions.ts","../../src/versions/versions.ts","../../src/utils/env/ubuntu_version.ts","../../node_modules/ubuntu-version/index.js","../../node_modules/mkdirp/dist/mjs/index.js","../../node_modules/mkdirp/src/index.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-manual.js","../../node_modules/mkdirp/src/mkdirp-manual.ts","../../node_modules/mkdirp/dist/mjs/opts-arg.js","../../node_modules/mkdirp/src/opts-arg.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-native.js","../../node_modules/mkdirp/src/mkdirp-native.ts","../../node_modules/mkdirp/dist/mjs/find-made.js","../../node_modules/mkdirp/src/find-made.ts","../../node_modules/mkdirp/dist/mjs/path-arg.js","../../node_modules/mkdirp/src/path-arg.ts","../../node_modules/mkdirp/dist/mjs/use-native.js","../../node_modules/mkdirp/src/use-native.ts","../../src/cppcheck/cppcheck.ts","../../src/doxygen/doxygen.ts","../../src/graphviz/graphviz.ts","../../src/utils/env/macos_version.ts","../../node_modules/macos-release/index.js","../../src/utils/setup/setupDmg.ts","../../node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../node_modules/@shockpkg/hdi-mac/src/mounter.ts","../../node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../node_modules/@shockpkg/plist-dom/src/plist.ts","../../node_modules/@shockpkg/plist-dom/esm/options.mjs","../../node_modules/@shockpkg/plist-dom/src/options.ts","../../node_modules/@shockpkg/plist-dom/esm/util.mjs","../../node_modules/@shockpkg/plist-dom/src/util.ts","../../node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/@shockpkg/plist-dom/esm/value/dict.mjs","../../node_modules/@shockpkg/plist-dom/src/value/dict.ts","../../node_modules/@shockpkg/plist-dom/esm/value.mjs","../../node_modules/@shockpkg/plist-dom/src/value.ts","../../node_modules/@shockpkg/plist-dom/esm/value/array.mjs","../../node_modules/@shockpkg/plist-dom/src/value/array.ts","../../node_modules/@shockpkg/plist-dom/esm/value/boolean.mjs","../../node_modules/@shockpkg/plist-dom/src/value/boolean.ts","../../node_modules/@shockpkg/plist-dom/esm/value/data.mjs","../../node_modules/@shockpkg/plist-dom/src/value/data.ts","../../node_modules/@shockpkg/plist-dom/esm/value/integer.mjs","../../node_modules/@shockpkg/plist-dom/src/value/integer.ts","../../node_modules/@shockpkg/plist-dom/esm/value/real.mjs","../../node_modules/@shockpkg/plist-dom/src/value/real.ts","../../node_modules/@shockpkg/plist-dom/esm/value/string.mjs","../../node_modules/@shockpkg/plist-dom/src/value/string.ts","../../src/gcc/gcc.ts","../../src/macos-sdk/macos-sdk.ts","../../src/gcovr/gcovr.ts","../../src/kcov/kcov.ts","../../src/ninja/ninja.ts","../../src/llvm/llvm.ts","../../src/llvm/llvm_installer.ts","../../src/installTool.ts","../../src/vcvarsall/vcvarsall.ts","../../node_modules/msvc-dev-cmd/lib.js","../../node_modules/p-timeout/index.js","../../src/llvm/llvm_url.ts","../../src/make/make.ts","../../src/meson/meson.ts","../../src/msvc/msvc.ts","../../src/nala/nala.ts","../../src/opencppcoverage/opencppcoverage.ts","../../src/powershell/powershell.ts","../../src/sccache/sccache.ts","../../src/task/task.ts","../../src/vcpkg/vcpkg.ts","../../src/compilers.ts"],"sourcesContent":["#!/usr/bin/env node\nvar $4umf8$os = require(\"os\");\nvar $4umf8$path = require(\"path\");\nvar $4umf8$fs = require(\"fs\");\nvar $4umf8$crypto = require(\"crypto\");\nvar $4umf8$http = require(\"http\");\nvar $4umf8$https = require(\"https\");\nrequire(\"net\");\nvar $4umf8$tls = require(\"tls\");\nvar $4umf8$events = require(\"events\");\nvar $4umf8$assert = require(\"assert\");\nvar $4umf8$util = require(\"util\");\nvar $4umf8$nodefs = require(\"node:fs\");\nvar $4umf8$child_process = require(\"child_process\");\nvar $4umf8$string_decoder = require(\"string_decoder\");\nvar $4umf8$timers = require(\"timers\");\nvar $4umf8$nodebuffer = require(\"node:buffer\");\nvar $4umf8$nodepath = require(\"node:path\");\nvar $4umf8$nodechild_process = require(\"node:child_process\");\nvar $4umf8$nodeprocess = require(\"node:process\");\nvar $4umf8$nodeurl = require(\"node:url\");\nvar $4umf8$nodeos = require(\"node:os\");\nvar $4umf8$buffer = require(\"buffer\");\nvar $4umf8$stream = require(\"stream\");\nvar $4umf8$nodeutil = require(\"node:util\");\nvar $4umf8$process = require(\"process\");\nvar $4umf8$url = require(\"url\");\nvar $4umf8$console = require(\"console\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire810d\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire810d\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"dAuy6\", function(module, exports) {\n\"use strict\";\n\nvar $5vZJI = parcelRequire(\"5vZJI\");\nconst $9e46558a3f40ee97$var$env = process.env;\n// Used for testing only\nObject.defineProperty(module.exports, \"_vendors\", {\n value: $5vZJI.map(function(v) {\n return v.constant;\n })\n});\nmodule.exports.name = null;\nmodule.exports.isPR = null;\n$5vZJI.forEach(function(vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [\n vendor.env\n ];\n const isCI = envs.every(function(obj) {\n return $9e46558a3f40ee97$var$checkEnv(obj);\n });\n module.exports[vendor.constant] = isCI;\n if (!isCI) return;\n module.exports.name = vendor.name;\n switch(typeof vendor.pr){\n case \"string\":\n // \"pr\": \"CIRRUS_PR\"\n module.exports.isPR = !!$9e46558a3f40ee97$var$env[vendor.pr];\n break;\n case \"object\":\n if (\"env\" in vendor.pr) // \"pr\": { \"env\": \"BUILDKITE_PULL_REQUEST\", \"ne\": \"false\" }\n module.exports.isPR = vendor.pr.env in $9e46558a3f40ee97$var$env && $9e46558a3f40ee97$var$env[vendor.pr.env] !== vendor.pr.ne;\n else if (\"any\" in vendor.pr) // \"pr\": { \"any\": [\"ghprbPullId\", \"CHANGE_ID\"] }\n module.exports.isPR = vendor.pr.any.some(function(key) {\n return !!$9e46558a3f40ee97$var$env[key];\n });\n else // \"pr\": { \"DRONE_BUILD_EVENT\": \"pull_request\" }\n module.exports.isPR = $9e46558a3f40ee97$var$checkEnv(vendor.pr);\n break;\n default:\n // PR detection not supported for this vendor\n module.exports.isPR = null;\n }\n});\nmodule.exports.isCI = !!($9e46558a3f40ee97$var$env.CI !== \"false\" && // Bypass all checks if CI env is explicitly set to 'false'\n($9e46558a3f40ee97$var$env.BUILD_ID || // Jenkins, Cloudbees\n$9e46558a3f40ee97$var$env.BUILD_NUMBER || // Jenkins, TeamCity\n$9e46558a3f40ee97$var$env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari\n$9e46558a3f40ee97$var$env.CI_APP_ID || // Appflow\n$9e46558a3f40ee97$var$env.CI_BUILD_ID || // Appflow\n$9e46558a3f40ee97$var$env.CI_BUILD_NUMBER || // Appflow\n$9e46558a3f40ee97$var$env.CI_NAME || // Codeship and others\n$9e46558a3f40ee97$var$env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n$9e46558a3f40ee97$var$env.RUN_ID || // TaskCluster, dsari\nmodule.exports.name || false));\nfunction $9e46558a3f40ee97$var$checkEnv(obj) {\n // \"env\": \"CIRRUS\"\n if (typeof obj === \"string\") return !!$9e46558a3f40ee97$var$env[obj];\n // \"env\": { \"env\": \"NODE\", \"includes\": \"/app/.heroku/node/bin/node\" }\n if (\"env\" in obj) // Currently there are no other types, uncomment when there are\n // if ('includes' in obj) {\n return $9e46558a3f40ee97$var$env[obj.env] && $9e46558a3f40ee97$var$env[obj.env].includes(obj.includes);\n if (\"any\" in obj) return obj.any.some(function(k) {\n return !!$9e46558a3f40ee97$var$env[k];\n });\n return Object.keys(obj).every(function(k) {\n return $9e46558a3f40ee97$var$env[k] === obj[k];\n });\n}\n\n});\nparcelRegister(\"5vZJI\", function(module, exports) {\nmodule.exports = JSON.parse('[{\"name\":\"Agola CI\",\"constant\":\"AGOLA\",\"env\":\"AGOLA_GIT_REF\",\"pr\":\"AGOLA_PULL_REQUEST_ID\"},{\"name\":\"Appcircle\",\"constant\":\"APPCIRCLE\",\"env\":\"AC_APPCIRCLE\"},{\"name\":\"AppVeyor\",\"constant\":\"APPVEYOR\",\"env\":\"APPVEYOR\",\"pr\":\"APPVEYOR_PULL_REQUEST_NUMBER\"},{\"name\":\"AWS CodeBuild\",\"constant\":\"CODEBUILD\",\"env\":\"CODEBUILD_BUILD_ARN\"},{\"name\":\"Azure Pipelines\",\"constant\":\"AZURE_PIPELINES\",\"env\":\"TF_BUILD\",\"pr\":{\"BUILD_REASON\":\"PullRequest\"}},{\"name\":\"Bamboo\",\"constant\":\"BAMBOO\",\"env\":\"bamboo_planKey\"},{\"name\":\"Bitbucket Pipelines\",\"constant\":\"BITBUCKET\",\"env\":\"BITBUCKET_COMMIT\",\"pr\":\"BITBUCKET_PR_ID\"},{\"name\":\"Bitrise\",\"constant\":\"BITRISE\",\"env\":\"BITRISE_IO\",\"pr\":\"BITRISE_PULL_REQUEST\"},{\"name\":\"Buddy\",\"constant\":\"BUDDY\",\"env\":\"BUDDY_WORKSPACE_ID\",\"pr\":\"BUDDY_EXECUTION_PULL_REQUEST_ID\"},{\"name\":\"Buildkite\",\"constant\":\"BUILDKITE\",\"env\":\"BUILDKITE\",\"pr\":{\"env\":\"BUILDKITE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"CircleCI\",\"constant\":\"CIRCLE\",\"env\":\"CIRCLECI\",\"pr\":\"CIRCLE_PULL_REQUEST\"},{\"name\":\"Cirrus CI\",\"constant\":\"CIRRUS\",\"env\":\"CIRRUS_CI\",\"pr\":\"CIRRUS_PR\"},{\"name\":\"Codefresh\",\"constant\":\"CODEFRESH\",\"env\":\"CF_BUILD_ID\",\"pr\":{\"any\":[\"CF_PULL_REQUEST_NUMBER\",\"CF_PULL_REQUEST_ID\"]}},{\"name\":\"Codemagic\",\"constant\":\"CODEMAGIC\",\"env\":\"CM_BUILD_ID\",\"pr\":\"CM_PULL_REQUEST\"},{\"name\":\"Codeship\",\"constant\":\"CODESHIP\",\"env\":{\"CI_NAME\":\"codeship\"}},{\"name\":\"Drone\",\"constant\":\"DRONE\",\"env\":\"DRONE\",\"pr\":{\"DRONE_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"dsari\",\"constant\":\"DSARI\",\"env\":\"DSARI\"},{\"name\":\"Earthly\",\"constant\":\"EARTHLY\",\"env\":\"EARTHLY_CI\"},{\"name\":\"Expo Application Services\",\"constant\":\"EAS\",\"env\":\"EAS_BUILD\"},{\"name\":\"Gerrit\",\"constant\":\"GERRIT\",\"env\":\"GERRIT_PROJECT\"},{\"name\":\"Gitea Actions\",\"constant\":\"GITEA_ACTIONS\",\"env\":\"GITEA_ACTIONS\"},{\"name\":\"GitHub Actions\",\"constant\":\"GITHUB_ACTIONS\",\"env\":\"GITHUB_ACTIONS\",\"pr\":{\"GITHUB_EVENT_NAME\":\"pull_request\"}},{\"name\":\"GitLab CI\",\"constant\":\"GITLAB\",\"env\":\"GITLAB_CI\",\"pr\":\"CI_MERGE_REQUEST_ID\"},{\"name\":\"GoCD\",\"constant\":\"GOCD\",\"env\":\"GO_PIPELINE_LABEL\"},{\"name\":\"Google Cloud Build\",\"constant\":\"GOOGLE_CLOUD_BUILD\",\"env\":\"BUILDER_OUTPUT\"},{\"name\":\"Harness CI\",\"constant\":\"HARNESS\",\"env\":\"HARNESS_BUILD_ID\"},{\"name\":\"Heroku\",\"constant\":\"HEROKU\",\"env\":{\"env\":\"NODE\",\"includes\":\"/app/.heroku/node/bin/node\"}},{\"name\":\"Hudson\",\"constant\":\"HUDSON\",\"env\":\"HUDSON_URL\"},{\"name\":\"Jenkins\",\"constant\":\"JENKINS\",\"env\":[\"JENKINS_URL\",\"BUILD_ID\"],\"pr\":{\"any\":[\"ghprbPullId\",\"CHANGE_ID\"]}},{\"name\":\"LayerCI\",\"constant\":\"LAYERCI\",\"env\":\"LAYERCI\",\"pr\":\"LAYERCI_PULL_REQUEST\"},{\"name\":\"Magnum CI\",\"constant\":\"MAGNUM\",\"env\":\"MAGNUM\"},{\"name\":\"Netlify CI\",\"constant\":\"NETLIFY\",\"env\":\"NETLIFY\",\"pr\":{\"env\":\"PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Nevercode\",\"constant\":\"NEVERCODE\",\"env\":\"NEVERCODE\",\"pr\":{\"env\":\"NEVERCODE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Prow\",\"constant\":\"PROW\",\"env\":\"PROW_JOB_ID\"},{\"name\":\"ReleaseHub\",\"constant\":\"RELEASEHUB\",\"env\":\"RELEASE_BUILD_ID\"},{\"name\":\"Render\",\"constant\":\"RENDER\",\"env\":\"RENDER\",\"pr\":{\"IS_PULL_REQUEST\":\"true\"}},{\"name\":\"Sail CI\",\"constant\":\"SAIL\",\"env\":\"SAILCI\",\"pr\":\"SAIL_PULL_REQUEST_NUMBER\"},{\"name\":\"Screwdriver\",\"constant\":\"SCREWDRIVER\",\"env\":\"SCREWDRIVER\",\"pr\":{\"env\":\"SD_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Semaphore\",\"constant\":\"SEMAPHORE\",\"env\":\"SEMAPHORE\",\"pr\":\"PULL_REQUEST_NUMBER\"},{\"name\":\"Sourcehut\",\"constant\":\"SOURCEHUT\",\"env\":{\"CI_NAME\":\"sourcehut\"}},{\"name\":\"Strider CD\",\"constant\":\"STRIDER\",\"env\":\"STRIDER\"},{\"name\":\"TaskCluster\",\"constant\":\"TASKCLUSTER\",\"env\":[\"TASK_ID\",\"RUN_ID\"]},{\"name\":\"TeamCity\",\"constant\":\"TEAMCITY\",\"env\":\"TEAMCITY_VERSION\"},{\"name\":\"Travis CI\",\"constant\":\"TRAVIS\",\"env\":\"TRAVIS\",\"pr\":{\"env\":\"TRAVIS_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Vela\",\"constant\":\"VELA\",\"env\":\"VELA\",\"pr\":{\"VELA_PULL_REQUEST\":\"1\"}},{\"name\":\"Vercel\",\"constant\":\"VERCEL\",\"env\":{\"any\":[\"NOW_BUILDER\",\"VERCEL\"]},\"pr\":\"VERCEL_GIT_PULL_REQUEST_ID\"},{\"name\":\"Visual Studio App Center\",\"constant\":\"APPCENTER\",\"env\":\"APPCENTER_BUILD_ID\"},{\"name\":\"Woodpecker\",\"constant\":\"WOODPECKER\",\"env\":{\"CI\":\"woodpecker\"},\"pr\":{\"CI_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"Xcode Cloud\",\"constant\":\"XCODE_CLOUD\",\"env\":\"CI_XCODE_PROJECT\",\"pr\":\"CI_PULL_REQUEST_NUMBER\"},{\"name\":\"Xcode Server\",\"constant\":\"XCODE_SERVER\",\"env\":\"XCS\"}]');\n\n});\n\n\nparcelRegister(\"hHq4F\", function(module, exports) {\n\n$parcel$export(module.exports, \"error\", () => $0c53d1c71c9db41f$export$a3bc9b8ed74fc);\n$parcel$export(module.exports, \"success\", () => $0c53d1c71c9db41f$export$fe7c49d056ea1d88);\n$parcel$export(module.exports, \"warning\", () => $0c53d1c71c9db41f$export$491112666e282270);\n$parcel$export(module.exports, \"notice\", () => $0c53d1c71c9db41f$export$b31f6ae88848cf15);\n$parcel$export(module.exports, \"info\", () => $0c53d1c71c9db41f$export$a80b3bd66acc52ff);\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\nvar $dAuy6 = parcelRequire(\"dAuy6\");\nfunction $0c53d1c71c9db41f$export$a3bc9b8ed74fc(err) {\n return (0, $dAuy6.GITHUB_ACTIONS) ? $1o3Gj.error(err) : console.log(`\\x1b[31m${err}\\x1b[0m`);\n}\nfunction $0c53d1c71c9db41f$export$fe7c49d056ea1d88(msg) {\n return console.log(`\\x1b[32m${msg}\\x1b[0m`);\n}\nfunction $0c53d1c71c9db41f$export$491112666e282270(msg) {\n return (0, $dAuy6.GITHUB_ACTIONS) ? $1o3Gj.warning(msg) : console.log(`\\x1b[33m${msg}\\x1b[0m`);\n}\nfunction $0c53d1c71c9db41f$export$b31f6ae88848cf15(msg) {\n return (0, $dAuy6.GITHUB_ACTIONS) ? $1o3Gj.notice(msg) : console.log(`\\x1b[94m${msg}\\x1b[0m`);\n}\nfunction $0c53d1c71c9db41f$export$a80b3bd66acc52ff(msg) {\n return (0, $dAuy6.GITHUB_ACTIONS) ? $1o3Gj.info(msg) : console.log(msg);\n}\n\n});\nparcelRegister(\"1o3Gj\", function(module, exports) {\n\"use strict\";\nvar $102ae369f312a547$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $102ae369f312a547$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $102ae369f312a547$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $102ae369f312a547$var$__createBinding(result, mod, k);\n }\n $102ae369f312a547$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $102ae369f312a547$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getIDToken = module.exports.getState = module.exports.saveState = module.exports.group = module.exports.endGroup = module.exports.startGroup = module.exports.info = module.exports.notice = module.exports.warning = module.exports.error = module.exports.debug = module.exports.isDebug = module.exports.setFailed = module.exports.setCommandEcho = module.exports.setOutput = module.exports.getBooleanInput = module.exports.getMultilineInput = module.exports.getInput = module.exports.addPath = module.exports.setSecret = module.exports.exportVariable = module.exports.ExitCode = void 0;\n\nvar $1g3mY = parcelRequire(\"1g3mY\");\n\nvar $8prV6 = parcelRequire(\"8prV6\");\n\nvar $5nnws = parcelRequire(\"5nnws\");\n\nconst $102ae369f312a547$var$os = $102ae369f312a547$var$__importStar($4umf8$os);\n\nconst $102ae369f312a547$var$path = $102ae369f312a547$var$__importStar($4umf8$path);\n\nvar $dU1e3 = parcelRequire(\"dU1e3\");\n/**\n * The code to exit an action\n */ var $102ae369f312a547$var$ExitCode;\n(function(ExitCode) {\n /**\n * A code indicating that the action was successful\n */ ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */ ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})($102ae369f312a547$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $102ae369f312a547$var$exportVariable(name, val) {\n const convertedVal = $5nnws.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env[\"GITHUB_ENV\"] || \"\";\n if (filePath) return $8prV6.issueFileCommand(\"ENV\", $8prV6.prepareKeyValueMessage(name, val));\n $1g3mY.issueCommand(\"set-env\", {\n name: name\n }, convertedVal);\n}\nmodule.exports.exportVariable = $102ae369f312a547$var$exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */ function $102ae369f312a547$var$setSecret(secret) {\n $1g3mY.issueCommand(\"add-mask\", {}, secret);\n}\nmodule.exports.setSecret = $102ae369f312a547$var$setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */ function $102ae369f312a547$var$addPath(inputPath) {\n const filePath = process.env[\"GITHUB_PATH\"] || \"\";\n if (filePath) $8prV6.issueFileCommand(\"PATH\", inputPath);\n else $1g3mY.issueCommand(\"add-path\", {}, inputPath);\n process.env[\"PATH\"] = `${inputPath}${$102ae369f312a547$var$path.delimiter}${process.env[\"PATH\"]}`;\n}\nmodule.exports.addPath = $102ae369f312a547$var$addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */ function $102ae369f312a547$var$getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, \"_\").toUpperCase()}`] || \"\";\n if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`);\n if (options && options.trimWhitespace === false) return val;\n return val.trim();\n}\nmodule.exports.getInput = $102ae369f312a547$var$getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */ function $102ae369f312a547$var$getMultilineInput(name, options) {\n const inputs = $102ae369f312a547$var$getInput(name, options).split(\"\\n\").filter((x)=>x !== \"\");\n if (options && options.trimWhitespace === false) return inputs;\n return inputs.map((input)=>input.trim());\n}\nmodule.exports.getMultilineInput = $102ae369f312a547$var$getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */ function $102ae369f312a547$var$getBooleanInput(name, options) {\n const trueValue = [\n \"true\",\n \"True\",\n \"TRUE\"\n ];\n const falseValue = [\n \"false\",\n \"False\",\n \"FALSE\"\n ];\n const val = $102ae369f312a547$var$getInput(name, options);\n if (trueValue.includes(val)) return true;\n if (falseValue.includes(val)) return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` + `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nmodule.exports.getBooleanInput = $102ae369f312a547$var$getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $102ae369f312a547$var$setOutput(name, value) {\n const filePath = process.env[\"GITHUB_OUTPUT\"] || \"\";\n if (filePath) return $8prV6.issueFileCommand(\"OUTPUT\", $8prV6.prepareKeyValueMessage(name, value));\n process.stdout.write($102ae369f312a547$var$os.EOL);\n $1g3mY.issueCommand(\"set-output\", {\n name: name\n }, $5nnws.toCommandValue(value));\n}\nmodule.exports.setOutput = $102ae369f312a547$var$setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */ function $102ae369f312a547$var$setCommandEcho(enabled) {\n $1g3mY.issue(\"echo\", enabled ? \"on\" : \"off\");\n}\nmodule.exports.setCommandEcho = $102ae369f312a547$var$setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */ function $102ae369f312a547$var$setFailed(message) {\n process.exitCode = $102ae369f312a547$var$ExitCode.Failure;\n $102ae369f312a547$var$error(message);\n}\nmodule.exports.setFailed = $102ae369f312a547$var$setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */ function $102ae369f312a547$var$isDebug() {\n return process.env[\"RUNNER_DEBUG\"] === \"1\";\n}\nmodule.exports.isDebug = $102ae369f312a547$var$isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */ function $102ae369f312a547$var$debug(message) {\n $1g3mY.issueCommand(\"debug\", {}, message);\n}\nmodule.exports.debug = $102ae369f312a547$var$debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $102ae369f312a547$var$error(message, properties = {}) {\n $1g3mY.issueCommand(\"error\", $5nnws.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.error = $102ae369f312a547$var$error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $102ae369f312a547$var$warning(message, properties = {}) {\n $1g3mY.issueCommand(\"warning\", $5nnws.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.warning = $102ae369f312a547$var$warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $102ae369f312a547$var$notice(message, properties = {}) {\n $1g3mY.issueCommand(\"notice\", $5nnws.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.notice = $102ae369f312a547$var$notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */ function $102ae369f312a547$var$info(message) {\n process.stdout.write(message + $102ae369f312a547$var$os.EOL);\n}\nmodule.exports.info = $102ae369f312a547$var$info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */ function $102ae369f312a547$var$startGroup(name) {\n $1g3mY.issue(\"group\", name);\n}\nmodule.exports.startGroup = $102ae369f312a547$var$startGroup;\n/**\n * End an output group.\n */ function $102ae369f312a547$var$endGroup() {\n $1g3mY.issue(\"endgroup\");\n}\nmodule.exports.endGroup = $102ae369f312a547$var$endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */ function $102ae369f312a547$var$group(name, fn) {\n return $102ae369f312a547$var$__awaiter(this, void 0, void 0, function*() {\n $102ae369f312a547$var$startGroup(name);\n let result;\n try {\n result = yield fn();\n } finally{\n $102ae369f312a547$var$endGroup();\n }\n return result;\n });\n}\nmodule.exports.group = $102ae369f312a547$var$group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $102ae369f312a547$var$saveState(name, value) {\n const filePath = process.env[\"GITHUB_STATE\"] || \"\";\n if (filePath) return $8prV6.issueFileCommand(\"STATE\", $8prV6.prepareKeyValueMessage(name, value));\n $1g3mY.issueCommand(\"save-state\", {\n name: name\n }, $5nnws.toCommandValue(value));\n}\nmodule.exports.saveState = $102ae369f312a547$var$saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */ function $102ae369f312a547$var$getState(name) {\n return process.env[`STATE_${name}`] || \"\";\n}\nmodule.exports.getState = $102ae369f312a547$var$getState;\nfunction $102ae369f312a547$var$getIDToken(aud) {\n return $102ae369f312a547$var$__awaiter(this, void 0, void 0, function*() {\n return yield $dU1e3.OidcClient.getIDToken(aud);\n });\n}\nmodule.exports.getIDToken = $102ae369f312a547$var$getIDToken;\n\nvar $dV9Cu = parcelRequire(\"dV9Cu\");\nObject.defineProperty(module.exports, \"summary\", {\n enumerable: true,\n get: function() {\n return $dV9Cu.summary;\n }\n});\n\nvar $dV9Cu = parcelRequire(\"dV9Cu\");\nObject.defineProperty(module.exports, \"markdownSummary\", {\n enumerable: true,\n get: function() {\n return $dV9Cu.markdownSummary;\n }\n});\n\nvar $9i0tI = parcelRequire(\"9i0tI\");\nObject.defineProperty(module.exports, \"toPosixPath\", {\n enumerable: true,\n get: function() {\n return $9i0tI.toPosixPath;\n }\n});\nObject.defineProperty(module.exports, \"toWin32Path\", {\n enumerable: true,\n get: function() {\n return $9i0tI.toWin32Path;\n }\n});\nObject.defineProperty(module.exports, \"toPlatformPath\", {\n enumerable: true,\n get: function() {\n return $9i0tI.toPlatformPath;\n }\n});\n\n});\nparcelRegister(\"1g3mY\", function(module, exports) {\n\"use strict\";\nvar $0ea9e630a7cef9e6$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $0ea9e630a7cef9e6$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $0ea9e630a7cef9e6$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $0ea9e630a7cef9e6$var$__createBinding(result, mod, k);\n }\n $0ea9e630a7cef9e6$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.issue = module.exports.issueCommand = void 0;\n\nconst $0ea9e630a7cef9e6$var$os = $0ea9e630a7cef9e6$var$__importStar($4umf8$os);\n\nvar $5nnws = parcelRequire(\"5nnws\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */ function $0ea9e630a7cef9e6$var$issueCommand(command, properties, message) {\n const cmd = new $0ea9e630a7cef9e6$var$Command(command, properties, message);\n process.stdout.write(cmd.toString() + $0ea9e630a7cef9e6$var$os.EOL);\n}\nmodule.exports.issueCommand = $0ea9e630a7cef9e6$var$issueCommand;\nfunction $0ea9e630a7cef9e6$var$issue(name, message = \"\") {\n $0ea9e630a7cef9e6$var$issueCommand(name, {}, message);\n}\nmodule.exports.issue = $0ea9e630a7cef9e6$var$issue;\nconst $0ea9e630a7cef9e6$var$CMD_STRING = \"::\";\nclass $0ea9e630a7cef9e6$var$Command {\n constructor(command, properties, message){\n if (!command) command = \"missing.command\";\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = $0ea9e630a7cef9e6$var$CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += \" \";\n let first = true;\n for(const key in this.properties)if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) first = false;\n else cmdStr += \",\";\n cmdStr += `${key}=${$0ea9e630a7cef9e6$var$escapeProperty(val)}`;\n }\n }\n }\n cmdStr += `${$0ea9e630a7cef9e6$var$CMD_STRING}${$0ea9e630a7cef9e6$var$escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction $0ea9e630a7cef9e6$var$escapeData(s) {\n return $5nnws.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\");\n}\nfunction $0ea9e630a7cef9e6$var$escapeProperty(s) {\n return $5nnws.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\").replace(/:/g, \"%3A\").replace(/,/g, \"%2C\");\n}\n\n});\nparcelRegister(\"5nnws\", function(module, exports) {\n\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toCommandProperties = module.exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */ function $3ea158d1b71ecb6c$var$toCommandValue(input) {\n if (input === null || input === undefined) return \"\";\n else if (typeof input === \"string\" || input instanceof String) return input;\n return JSON.stringify(input);\n}\nmodule.exports.toCommandValue = $3ea158d1b71ecb6c$var$toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */ function $3ea158d1b71ecb6c$var$toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) return {};\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nmodule.exports.toCommandProperties = $3ea158d1b71ecb6c$var$toCommandProperties;\n\n});\n\n\nparcelRegister(\"8prV6\", function(module, exports) {\n\"use strict\";\n// For internal use, subject to change.\nvar $61f650dde32acca8$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $61f650dde32acca8$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $61f650dde32acca8$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $61f650dde32acca8$var$__createBinding(result, mod, k);\n }\n $61f650dde32acca8$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.prepareKeyValueMessage = module.exports.issueFileCommand = void 0;\n\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ const $61f650dde32acca8$var$fs = $61f650dde32acca8$var$__importStar($4umf8$fs);\n\nconst $61f650dde32acca8$var$os = $61f650dde32acca8$var$__importStar($4umf8$os);\n\nvar $1Un9O = parcelRequire(\"1Un9O\");\n\nvar $5nnws = parcelRequire(\"5nnws\");\nfunction $61f650dde32acca8$var$issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`);\n if (!$61f650dde32acca8$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`);\n $61f650dde32acca8$var$fs.appendFileSync(filePath, `${$5nnws.toCommandValue(message)}${$61f650dde32acca8$var$os.EOL}`, {\n encoding: \"utf8\"\n });\n}\nmodule.exports.issueFileCommand = $61f650dde32acca8$var$issueFileCommand;\nfunction $61f650dde32acca8$var$prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${$1Un9O.default()}`;\n const convertedValue = $5nnws.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n return `${key}<<${delimiter}${$61f650dde32acca8$var$os.EOL}${convertedValue}${$61f650dde32acca8$var$os.EOL}${delimiter}`;\n}\nmodule.exports.prepareKeyValueMessage = $61f650dde32acca8$var$prepareKeyValueMessage;\n\n});\nparcelRegister(\"1Un9O\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $163cfbef58865d16$export$2e2bcd8739ae039);\n\nvar $jyKkd = parcelRequire(\"jyKkd\");\n\nvar $4DdbA = parcelRequire(\"4DdbA\");\nfunction $163cfbef58865d16$var$v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || (0, $jyKkd.default))(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for(let i = 0; i < 16; ++i)buf[offset + i] = rnds[i];\n return buf;\n }\n return (0, $4DdbA.default)(rnds);\n}\nvar $163cfbef58865d16$export$2e2bcd8739ae039 = $163cfbef58865d16$var$v4;\n\n});\nparcelRegister(\"jyKkd\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $e3d520772be72ad6$export$2e2bcd8739ae039);\n\nconst $e3d520772be72ad6$var$rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\nlet $e3d520772be72ad6$var$poolPtr = $e3d520772be72ad6$var$rnds8Pool.length;\nfunction $e3d520772be72ad6$export$2e2bcd8739ae039() {\n if ($e3d520772be72ad6$var$poolPtr > $e3d520772be72ad6$var$rnds8Pool.length - 16) {\n (0, ($parcel$interopDefault($4umf8$crypto))).randomFillSync($e3d520772be72ad6$var$rnds8Pool);\n $e3d520772be72ad6$var$poolPtr = 0;\n }\n return $e3d520772be72ad6$var$rnds8Pool.slice($e3d520772be72ad6$var$poolPtr, $e3d520772be72ad6$var$poolPtr += 16);\n}\n\n});\n\nparcelRegister(\"4DdbA\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $35f5085d44821234$export$2e2bcd8739ae039);\n\nvar $4XBHo = parcelRequire(\"4XBHo\");\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ const $35f5085d44821234$var$byteToHex = [];\nfor(let i = 0; i < 256; ++i)$35f5085d44821234$var$byteToHex.push((i + 0x100).toString(16).substr(1));\nfunction $35f5085d44821234$var$stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = ($35f5085d44821234$var$byteToHex[arr[offset + 0]] + $35f5085d44821234$var$byteToHex[arr[offset + 1]] + $35f5085d44821234$var$byteToHex[arr[offset + 2]] + $35f5085d44821234$var$byteToHex[arr[offset + 3]] + \"-\" + $35f5085d44821234$var$byteToHex[arr[offset + 4]] + $35f5085d44821234$var$byteToHex[arr[offset + 5]] + \"-\" + $35f5085d44821234$var$byteToHex[arr[offset + 6]] + $35f5085d44821234$var$byteToHex[arr[offset + 7]] + \"-\" + $35f5085d44821234$var$byteToHex[arr[offset + 8]] + $35f5085d44821234$var$byteToHex[arr[offset + 9]] + \"-\" + $35f5085d44821234$var$byteToHex[arr[offset + 10]] + $35f5085d44821234$var$byteToHex[arr[offset + 11]] + $35f5085d44821234$var$byteToHex[arr[offset + 12]] + $35f5085d44821234$var$byteToHex[arr[offset + 13]] + $35f5085d44821234$var$byteToHex[arr[offset + 14]] + $35f5085d44821234$var$byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!(0, $4XBHo.default)(uuid)) throw TypeError(\"Stringified UUID is invalid\");\n return uuid;\n}\nvar $35f5085d44821234$export$2e2bcd8739ae039 = $35f5085d44821234$var$stringify;\n\n});\nparcelRegister(\"4XBHo\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $39c9ea59ce04fda7$export$2e2bcd8739ae039);\n\nvar $dcWu5 = parcelRequire(\"dcWu5\");\nfunction $39c9ea59ce04fda7$var$validate(uuid) {\n return typeof uuid === \"string\" && (0, $dcWu5.default).test(uuid);\n}\nvar $39c9ea59ce04fda7$export$2e2bcd8739ae039 = $39c9ea59ce04fda7$var$validate;\n\n});\nparcelRegister(\"dcWu5\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $99d9c315b99dd3a1$export$2e2bcd8739ae039);\nvar $99d9c315b99dd3a1$export$2e2bcd8739ae039 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\n});\n\n\n\n\n\nparcelRegister(\"dU1e3\", function(module, exports) {\n\"use strict\";\nvar $a1f174b1cdd8a4a7$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.OidcClient = void 0;\n\nvar $eamjo = parcelRequire(\"eamjo\");\n\nvar $h6tQO = parcelRequire(\"h6tQO\");\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\nclass $a1f174b1cdd8a4a7$var$OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new $eamjo.HttpClient(\"actions/oidc-client\", [\n new $h6tQO.BearerCredentialHandler($a1f174b1cdd8a4a7$var$OidcClient.getRequestToken())\n ], requestOptions);\n }\n static getRequestToken() {\n const token = process.env[\"ACTIONS_ID_TOKEN_REQUEST_TOKEN\"];\n if (!token) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable\");\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env[\"ACTIONS_ID_TOKEN_REQUEST_URL\"];\n if (!runtimeUrl) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable\");\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return $a1f174b1cdd8a4a7$var$__awaiter(this, void 0, void 0, function*() {\n const httpclient = $a1f174b1cdd8a4a7$var$OidcClient.createHttpClient();\n const res = yield httpclient.getJson(id_token_url).catch((error)=>{\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) throw new Error(\"Response json body do not have ID Token field\");\n return id_token;\n });\n }\n static getIDToken(audience) {\n return $a1f174b1cdd8a4a7$var$__awaiter(this, void 0, void 0, function*() {\n try {\n // New ID Token is requested from action service\n let id_token_url = $a1f174b1cdd8a4a7$var$OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n $1o3Gj.debug(`ID token url is ${id_token_url}`);\n const id_token = yield $a1f174b1cdd8a4a7$var$OidcClient.getCall(id_token_url);\n $1o3Gj.setSecret(id_token);\n return id_token;\n } catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nmodule.exports.OidcClient = $a1f174b1cdd8a4a7$var$OidcClient;\n\n});\nparcelRegister(\"eamjo\", function(module, exports) {\n\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */ var $02a957f9cba5526c$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $02a957f9cba5526c$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $02a957f9cba5526c$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $02a957f9cba5526c$var$__createBinding(result, mod, k);\n }\n $02a957f9cba5526c$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $02a957f9cba5526c$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.HttpClient = module.exports.isHttps = module.exports.HttpClientResponse = module.exports.HttpClientError = module.exports.getProxyUrl = module.exports.MediaTypes = module.exports.Headers = module.exports.HttpCodes = void 0;\n\nconst $02a957f9cba5526c$var$http = $02a957f9cba5526c$var$__importStar($4umf8$http);\n\nconst $02a957f9cba5526c$var$https = $02a957f9cba5526c$var$__importStar($4umf8$https);\n\nconst $02a957f9cba5526c$var$pm = $02a957f9cba5526c$var$__importStar((parcelRequire(\"jnrYh\")));\n\nconst $02a957f9cba5526c$var$tunnel = $02a957f9cba5526c$var$__importStar((parcelRequire(\"3RDK7\")));\nvar $02a957f9cba5526c$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($02a957f9cba5526c$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $02a957f9cba5526c$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($02a957f9cba5526c$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $02a957f9cba5526c$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($02a957f9cba5526c$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $02a957f9cba5526c$var$getProxyUrl(serverUrl) {\n const proxyUrl = $02a957f9cba5526c$var$pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $02a957f9cba5526c$var$getProxyUrl;\nconst $02a957f9cba5526c$var$HttpRedirectCodes = [\n $02a957f9cba5526c$var$HttpCodes.MovedPermanently,\n $02a957f9cba5526c$var$HttpCodes.ResourceMoved,\n $02a957f9cba5526c$var$HttpCodes.SeeOther,\n $02a957f9cba5526c$var$HttpCodes.TemporaryRedirect,\n $02a957f9cba5526c$var$HttpCodes.PermanentRedirect\n];\nconst $02a957f9cba5526c$var$HttpResponseRetryCodes = [\n $02a957f9cba5526c$var$HttpCodes.BadGateway,\n $02a957f9cba5526c$var$HttpCodes.ServiceUnavailable,\n $02a957f9cba5526c$var$HttpCodes.GatewayTimeout\n];\nconst $02a957f9cba5526c$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $02a957f9cba5526c$var$ExponentialBackoffCeiling = 10;\nconst $02a957f9cba5526c$var$ExponentialBackoffTimeSlice = 5;\nclass $02a957f9cba5526c$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $02a957f9cba5526c$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $02a957f9cba5526c$var$HttpClientError;\nclass $02a957f9cba5526c$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>$02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n }));\n });\n }\n}\nmodule.exports.HttpClientResponse = $02a957f9cba5526c$var$HttpClientResponse;\nfunction $02a957f9cba5526c$var$isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $02a957f9cba5526c$var$isHttps;\nclass $02a957f9cba5526c$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ getJson(requestUrl, additionalHeaders = {}) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n additionalHeaders[$02a957f9cba5526c$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.Accept, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$02a957f9cba5526c$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.Accept, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n additionalHeaders[$02a957f9cba5526c$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.ContentType, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$02a957f9cba5526c$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.Accept, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n additionalHeaders[$02a957f9cba5526c$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.ContentType, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$02a957f9cba5526c$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.Accept, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n additionalHeaders[$02a957f9cba5526c$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $02a957f9cba5526c$var$Headers.ContentType, $02a957f9cba5526c$var$MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ request(verb, requestUrl, data, headers) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && $02a957f9cba5526c$var$RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $02a957f9cba5526c$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers)if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while(response.message.statusCode && $02a957f9cba5526c$var$HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === \"https:\" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(const header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode || !$02a957f9cba5526c$var$HttpResponseRetryCodes.includes(response.message.statusCode)) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>{\n function callbackForResult(err, res) {\n if (err) reject(err);\n else if (!res) // If `err` is not passed, then `res` must be passed.\n reject(new Error(\"Unknown error\"));\n else resolve(res);\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n if (typeof data === \"string\") {\n if (!info.options.headers) info.options.headers = {};\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg)=>{\n const res = new $02a957f9cba5526c$var$HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $02a957f9cba5526c$var$https : $02a957f9cba5526c$var$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) for (const handler of this.handlers)handler.prepareRequest(info.options);\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, $02a957f9cba5526c$var$lowercaseKeys(this.requestOptions.headers), $02a957f9cba5526c$var$lowercaseKeys(headers || {}));\n return $02a957f9cba5526c$var$lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = $02a957f9cba5526c$var$lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = $02a957f9cba5526c$var$pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (this.requestOptions) maxSockets = this.requestOptions.maxSockets || $02a957f9cba5526c$var$http.globalAgent.maxSockets;\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }), {\n host: proxyUrl.hostname,\n port: proxyUrl.port\n })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $02a957f9cba5526c$var$tunnel.httpsOverHttps : $02a957f9cba5526c$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $02a957f9cba5526c$var$tunnel.httpOverHttps : $02a957f9cba5526c$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $02a957f9cba5526c$var$https.Agent(options) : new $02a957f9cba5526c$var$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $02a957f9cba5526c$var$https.globalAgent : $02a957f9cba5526c$var$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n retryNumber = Math.min($02a957f9cba5526c$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $02a957f9cba5526c$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return $02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>$02a957f9cba5526c$var$__awaiter(this, void 0, void 0, function*() {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === $02a957f9cba5526c$var$HttpCodes.NotFound) resolve(response);\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = `Failed request: (${statusCode})`;\n const err = new $02a957f9cba5526c$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n }));\n });\n }\n}\nmodule.exports.HttpClient = $02a957f9cba5526c$var$HttpClient;\nconst $02a957f9cba5526c$var$lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n\n});\nparcelRegister(\"jnrYh\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.checkBypass = module.exports.getProxyUrl = void 0;\nfunction $e1b5dcd4d3bc6d63$var$getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === \"https:\";\n if ($e1b5dcd4d3bc6d63$var$checkBypass(reqUrl)) return undefined;\n const proxyVar = (()=>{\n if (usingSsl) return process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else return process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n })();\n if (proxyVar) return new URL(proxyVar);\n else return undefined;\n}\nmodule.exports.getProxyUrl = $e1b5dcd4d3bc6d63$var$getProxyUrl;\nfunction $e1b5dcd4d3bc6d63$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n const reqHost = reqUrl.hostname;\n if ($e1b5dcd4d3bc6d63$var$isLoopbackAddress(reqHost)) return true;\n const noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n const upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperNoProxyItem === \"*\" || upperReqHosts.some((x)=>x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(\".\") && x.endsWith(`${upperNoProxyItem}`))) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $e1b5dcd4d3bc6d63$var$checkBypass;\nfunction $e1b5dcd4d3bc6d63$var$isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return hostLower === \"localhost\" || hostLower.startsWith(\"127.\") || hostLower.startsWith(\"[::1]\") || hostLower.startsWith(\"[0:0:0:0:0:0:0:1]\");\n}\n\n});\n\nparcelRegister(\"3RDK7\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"jZQ4B\"));\n\n});\nparcelRegister(\"jZQ4B\", function(module, exports) {\n\n$parcel$export(module.exports, \"httpOverHttp\", () => $e8ec1b78916bb724$export$25cbd437c61a3835, (v) => $e8ec1b78916bb724$export$25cbd437c61a3835 = v);\n$parcel$export(module.exports, \"httpsOverHttp\", () => $e8ec1b78916bb724$export$c06e3df7111bae43, (v) => $e8ec1b78916bb724$export$c06e3df7111bae43 = v);\n$parcel$export(module.exports, \"httpOverHttps\", () => $e8ec1b78916bb724$export$5d50e36ef656139f, (v) => $e8ec1b78916bb724$export$5d50e36ef656139f = v);\n$parcel$export(module.exports, \"httpsOverHttps\", () => $e8ec1b78916bb724$export$212d6605025321cc, (v) => $e8ec1b78916bb724$export$212d6605025321cc = v);\n$parcel$export(module.exports, \"debug\", () => $e8ec1b78916bb724$export$1c9f709888824e05, (v) => $e8ec1b78916bb724$export$1c9f709888824e05 = v);\nvar $e8ec1b78916bb724$export$25cbd437c61a3835;\nvar $e8ec1b78916bb724$export$c06e3df7111bae43;\nvar $e8ec1b78916bb724$export$5d50e36ef656139f;\nvar $e8ec1b78916bb724$export$212d6605025321cc;\nvar $e8ec1b78916bb724$export$1c9f709888824e05;\n\"use strict\";\n\n\n\n\n\n\n\n$e8ec1b78916bb724$export$25cbd437c61a3835 = $e8ec1b78916bb724$var$httpOverHttp;\n$e8ec1b78916bb724$export$c06e3df7111bae43 = $e8ec1b78916bb724$var$httpsOverHttp;\n$e8ec1b78916bb724$export$5d50e36ef656139f = $e8ec1b78916bb724$var$httpOverHttps;\n$e8ec1b78916bb724$export$212d6605025321cc = $e8ec1b78916bb724$var$httpsOverHttps;\nfunction $e8ec1b78916bb724$var$httpOverHttp(options) {\n var agent = new $e8ec1b78916bb724$var$TunnelingAgent(options);\n agent.request = $4umf8$http.request;\n return agent;\n}\nfunction $e8ec1b78916bb724$var$httpsOverHttp(options) {\n var agent = new $e8ec1b78916bb724$var$TunnelingAgent(options);\n agent.request = $4umf8$http.request;\n agent.createSocket = $e8ec1b78916bb724$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $e8ec1b78916bb724$var$httpOverHttps(options) {\n var agent = new $e8ec1b78916bb724$var$TunnelingAgent(options);\n agent.request = $4umf8$https.request;\n return agent;\n}\nfunction $e8ec1b78916bb724$var$httpsOverHttps(options) {\n var agent = new $e8ec1b78916bb724$var$TunnelingAgent(options);\n agent.request = $4umf8$https.request;\n agent.createSocket = $e8ec1b78916bb724$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $e8ec1b78916bb724$var$TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || $4umf8$http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n self.on(\"free\", function onFree(socket, host, port, localAddress) {\n var options = $e8ec1b78916bb724$var$toOptions(host, port, localAddress);\n for(var i = 0, len = self.requests.length; i < len; ++i){\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\n$4umf8$util.inherits($e8ec1b78916bb724$var$TunnelingAgent, $4umf8$events.EventEmitter);\n$e8ec1b78916bb724$var$TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = $e8ec1b78916bb724$var$mergeOptions({\n request: req\n }, self.options, $e8ec1b78916bb724$var$toOptions(host, port, localAddress));\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on(\"free\", onFree);\n socket.on(\"close\", onCloseOrRemove);\n socket.on(\"agentRemove\", onCloseOrRemove);\n req.onSocket(socket);\n function onFree() {\n self.emit(\"free\", socket, options);\n }\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener(\"free\", onFree);\n socket.removeListener(\"close\", onCloseOrRemove);\n socket.removeListener(\"agentRemove\", onCloseOrRemove);\n }\n });\n};\n$e8ec1b78916bb724$var$TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n var connectOptions = $e8ec1b78916bb724$var$mergeOptions({}, self.proxyOptions, {\n method: \"CONNECT\",\n path: options.host + \":\" + options.port,\n agent: false,\n headers: {\n host: options.host + \":\" + options.port\n }\n });\n if (options.localAddress) connectOptions.localAddress = options.localAddress;\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers[\"Proxy-Authorization\"] = \"Basic \" + new Buffer(connectOptions.proxyAuth).toString(\"base64\");\n }\n $e8ec1b78916bb724$var$debug(\"making CONNECT request\");\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once(\"response\", onResponse); // for v0.6\n connectReq.once(\"upgrade\", onUpgrade); // for v0.6\n connectReq.once(\"connect\", onConnect); // for v0.7 or later\n connectReq.once(\"error\", onError);\n connectReq.end();\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n if (res.statusCode !== 200) {\n $e8ec1b78916bb724$var$debug(\"tunneling socket could not be established, statusCode=%d\", res.statusCode);\n socket.destroy();\n var error = new Error(\"tunneling socket could not be established, statusCode=\" + res.statusCode);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n $e8ec1b78916bb724$var$debug(\"got illegal response body from proxy\");\n socket.destroy();\n var error = new Error(\"got illegal response body from proxy\");\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n $e8ec1b78916bb724$var$debug(\"tunneling connection has established\");\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n function onError(cause) {\n connectReq.removeAllListeners();\n $e8ec1b78916bb724$var$debug(\"tunneling socket could not be established, cause=%s\\n\", cause.message, cause.stack);\n var error = new Error(\"tunneling socket could not be established, cause=\" + cause.message);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n }\n};\n$e8ec1b78916bb724$var$TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket);\n if (pos === -1) return;\n this.sockets.splice(pos, 1);\n var pending = this.requests.shift();\n if (pending) // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n};\nfunction $e8ec1b78916bb724$var$createSecureSocket(options, cb) {\n var self = this;\n $e8ec1b78916bb724$var$TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader(\"host\");\n var tlsOptions = $e8ec1b78916bb724$var$mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, \"\") : options.host\n });\n // 0 is dummy port for v0.6\n var secureSocket = $4umf8$tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\nfunction $e8ec1b78916bb724$var$toOptions(host, port, localAddress) {\n if (typeof host === \"string\") return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n return host; // for v0.11 or later\n}\nfunction $e8ec1b78916bb724$var$mergeOptions(target) {\n for(var i = 1, len = arguments.length; i < len; ++i){\n var overrides = arguments[i];\n if (typeof overrides === \"object\") {\n var keys = Object.keys(overrides);\n for(var j = 0, keyLen = keys.length; j < keyLen; ++j){\n var k = keys[j];\n if (overrides[k] !== undefined) target[k] = overrides[k];\n }\n }\n }\n return target;\n}\nvar $e8ec1b78916bb724$var$debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) $e8ec1b78916bb724$var$debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === \"string\") args[0] = \"TUNNEL: \" + args[0];\n else args.unshift(\"TUNNEL:\");\n console.error.apply(console, args);\n};\nelse $e8ec1b78916bb724$var$debug = function() {};\n$e8ec1b78916bb724$export$1c9f709888824e05 = $e8ec1b78916bb724$var$debug; // for test\n\n});\n\n\n\nparcelRegister(\"h6tQO\", function(module, exports) {\n\"use strict\";\nvar $c73a26f8594778ef$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.PersonalAccessTokenCredentialHandler = module.exports.BearerCredentialHandler = module.exports.BasicCredentialHandler = void 0;\nclass $c73a26f8594778ef$var$BasicCredentialHandler {\n constructor(username, password){\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $c73a26f8594778ef$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BasicCredentialHandler = $c73a26f8594778ef$var$BasicCredentialHandler;\nclass $c73a26f8594778ef$var$BearerCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $c73a26f8594778ef$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BearerCredentialHandler = $c73a26f8594778ef$var$BearerCredentialHandler;\nclass $c73a26f8594778ef$var$PersonalAccessTokenCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $c73a26f8594778ef$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.PersonalAccessTokenCredentialHandler = $c73a26f8594778ef$var$PersonalAccessTokenCredentialHandler;\n\n});\n\n\nparcelRegister(\"dV9Cu\", function(module, exports) {\n\"use strict\";\nvar $a2280f869d17820a$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.summary = module.exports.markdownSummary = module.exports.SUMMARY_DOCS_URL = module.exports.SUMMARY_ENV_VAR = void 0;\n\n\nconst { access: $a2280f869d17820a$var$access, appendFile: $a2280f869d17820a$var$appendFile, writeFile: $a2280f869d17820a$var$writeFile } = $4umf8$fs.promises;\nmodule.exports.SUMMARY_ENV_VAR = \"GITHUB_STEP_SUMMARY\";\nmodule.exports.SUMMARY_DOCS_URL = \"https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary\";\nclass $a2280f869d17820a$var$Summary {\n constructor(){\n this._buffer = \"\";\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */ filePath() {\n return $a2280f869d17820a$var$__awaiter(this, void 0, void 0, function*() {\n if (this._filePath) return this._filePath;\n const pathFromEnv = process.env[module.exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${module.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n try {\n yield $a2280f869d17820a$var$access(pathFromEnv, $4umf8$fs.constants.R_OK | $4umf8$fs.constants.W_OK);\n } catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */ wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}=\"${value}\"`).join(\"\");\n if (!content) return `<${tag}${htmlAttrs}>`;\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */ write(options) {\n return $a2280f869d17820a$var$__awaiter(this, void 0, void 0, function*() {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? $a2280f869d17820a$var$writeFile : $a2280f869d17820a$var$appendFile;\n yield writeFunc(filePath, this._buffer, {\n encoding: \"utf8\"\n });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */ clear() {\n return $a2280f869d17820a$var$__awaiter(this, void 0, void 0, function*() {\n return this.emptyBuffer().write({\n overwrite: true\n });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */ stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */ isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */ emptyBuffer() {\n this._buffer = \"\";\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */ addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */ addEOL() {\n return this.addRaw($4umf8$os.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */ addCodeBlock(code, lang) {\n const attrs = Object.assign({}, lang && {\n lang: lang\n });\n const element = this.wrap(\"pre\", this.wrap(\"code\", code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */ addList(items, ordered = false) {\n const tag = ordered ? \"ol\" : \"ul\";\n const listItems = items.map((item)=>this.wrap(\"li\", item)).join(\"\");\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */ addTable(rows) {\n const tableBody = rows.map((row)=>{\n const cells = row.map((cell)=>{\n if (typeof cell === \"string\") return this.wrap(\"td\", cell);\n const { header: header, data: data, colspan: colspan, rowspan: rowspan } = cell;\n const tag = header ? \"th\" : \"td\";\n const attrs = Object.assign(Object.assign({}, colspan && {\n colspan: colspan\n }), rowspan && {\n rowspan: rowspan\n });\n return this.wrap(tag, data, attrs);\n }).join(\"\");\n return this.wrap(\"tr\", cells);\n }).join(\"\");\n const element = this.wrap(\"table\", tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */ addDetails(label, content) {\n const element = this.wrap(\"details\", this.wrap(\"summary\", label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */ addImage(src, alt, options) {\n const { width: width, height: height } = options || {};\n const attrs = Object.assign(Object.assign({}, width && {\n width: width\n }), height && {\n height: height\n });\n const element = this.wrap(\"img\", null, Object.assign({\n src: src,\n alt: alt\n }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */ addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\"\n ].includes(tag) ? tag : \"h1\";\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addSeparator() {\n const element = this.wrap(\"hr\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addBreak() {\n const element = this.wrap(\"br\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */ addQuote(text, cite) {\n const attrs = Object.assign({}, cite && {\n cite: cite\n });\n const element = this.wrap(\"blockquote\", text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */ addLink(text, href) {\n const element = this.wrap(\"a\", text, {\n href: href\n });\n return this.addRaw(element).addEOL();\n }\n}\nconst $a2280f869d17820a$var$_summary = new $a2280f869d17820a$var$Summary();\n/**\n * @deprecated use `core.summary`\n */ module.exports.markdownSummary = $a2280f869d17820a$var$_summary;\nmodule.exports.summary = $a2280f869d17820a$var$_summary;\n\n});\n\nparcelRegister(\"9i0tI\", function(module, exports) {\n\"use strict\";\nvar $6c362a75924285b0$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $6c362a75924285b0$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $6c362a75924285b0$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $6c362a75924285b0$var$__createBinding(result, mod, k);\n }\n $6c362a75924285b0$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toPlatformPath = module.exports.toWin32Path = module.exports.toPosixPath = void 0;\n\nconst $6c362a75924285b0$var$path = $6c362a75924285b0$var$__importStar($4umf8$path);\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */ function $6c362a75924285b0$var$toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, \"/\");\n}\nmodule.exports.toPosixPath = $6c362a75924285b0$var$toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */ function $6c362a75924285b0$var$toWin32Path(pth) {\n return pth.replace(/[/]/g, \"\\\\\");\n}\nmodule.exports.toWin32Path = $6c362a75924285b0$var$toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */ function $6c362a75924285b0$var$toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, $6c362a75924285b0$var$path.sep);\n}\nmodule.exports.toPlatformPath = $6c362a75924285b0$var$toPlatformPath;\n\n});\n\n\n\nparcelRegister(\"kswPT\", function(module, exports) {\n\nvar $ee4fe4bbd8d821d9$var$$parcel$__dirname = $4umf8$path.resolve(__dirname, \"../../node_modules/numerous/lib\");\n(function() {\n \"use strict\";\n var root = this;\n //=========//\n // GLOBALS //\n //=========//\n var locales = {};\n //==========//\n // EXPOSING //\n //==========//\n var moduleDefinition = {\n create: factory,\n addLocale: addLocale,\n pluralize: pluralize\n };\n if (\"undefined\" !== typeof module.exports) module.exports = moduleDefinition;\n else root.numerous = moduleDefinition;\n //==================//\n // PUBLIC FUNCTIONS //\n //==================//\n /**\n * Creates new instance of numerous.\n *\n * @param {string} locale\n * @returns {object}\n */ function factory(locale) {\n checkLocale(locale);\n return {\n pluralize: function(value, variants) {\n return pluralize(locale, value, variants);\n }\n };\n }\n /**\n * Adds pluralization function for specified locale.\n * Usually externally called by locale itself.\n *\n * @param {string} locale\n * @param {function} callable\n */ function addLocale(locale, callable) {\n locales[locale] = callable;\n }\n /**\n * Returns variant from the specified list of variants\n * according to the specified value and locale.\n *\n * @param {string} locale\n * @param {int} value\n * @param {object} variants\n */ function pluralize(locale, value, variants) {\n checkLocale(locale);\n if (\"object\" !== typeof variants) throw new Error(\"List of variants should be specified as an object\");\n var key = locales[locale](value);\n return \"undefined\" !== typeof variants[key] ? variants[key] : null;\n }\n //===================//\n // PRIVATE FUNCTIONS //\n //===================//\n /**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} locale\n *\n * @returns {boolean}\n */ function hasLocale(locale) {\n return \"undefined\" !== typeof locales[locale];\n }\n /**\n * Checks if locale is loaded. If not, tries to load it.\n *\n * @param {string} locale\n */ function checkLocale(locale) {\n if (!hasLocale(locale)) requireLocale(locale);\n }\n /**\n * Tries to load the specified locale.\n *\n * @param {string} locale\n */ function requireLocale(locale) {\n try {\n require($ee4fe4bbd8d821d9$var$$parcel$__dirname + \"/../locales/\" + locale + \".js\");\n } catch (error) {\n throw Error(\"Failed to load the following locale: \" + locale);\n }\n }\n}).call(module.exports);\n\n});\n\nparcelRegister(\"foOBZ\", function(module, exports) {\n//==============//\n// DEPENDENCIES //\n//==============//\n\nvar $6OFKY = parcelRequire(\"6OFKY\");\n\nvar $5GOZM = parcelRequire(\"5GOZM\");\n//================//\n// MODULE GLOBALS //\n//================//\n/**\n * Pre-calculating millisecond values for each time unit.\n */ const $b3605b587cf7d4a3$var$timeUnits = [\n [\n \"years\",\n 29030400000\n ],\n [\n \"months\",\n 2419200000\n ],\n [\n \"weeks\",\n 604800000\n ],\n [\n \"days\",\n 86400000\n ],\n [\n \"hours\",\n 3600000\n ],\n [\n \"minutes\",\n 60000\n ],\n [\n \"seconds\",\n 1000\n ]\n];\nconst $b3605b587cf7d4a3$var$defaultConfig = {\n locale: \"en\",\n span: 2,\n delimiter: \", \",\n unitType: \"long\",\n unitTypeLookupOrder: [\n \"long\",\n \"short\",\n \"narrow\"\n ],\n autoloadLocales: true\n};\n/**\n * Contains data of loaded locales.\n * @type {Object}\n */ const $b3605b587cf7d4a3$var$locales = {};\n//=========//\n// EXPORTS //\n//=========//\nmodule.exports = {\n create: $b3605b587cf7d4a3$var$timeDeltaFactory,\n addLocale: $b3605b587cf7d4a3$var$addLocale,\n defaultConfig: $b3605b587cf7d4a3$var$defaultConfig\n};\n//===========//\n// FUNCTIONS //\n//===========//\n/**\n * Adds pluralization data for the specified locale.\n * Should be called in browser.\n *\n * @param {Object|Object[]} localeData\n */ function $b3605b587cf7d4a3$var$addLocale(localeData) {\n // Normalizing input\n if (!Array.isArray(localeData)) localeData = [\n localeData\n ];\n for (const item of localeData){\n const { id: id, data: data } = item;\n $b3605b587cf7d4a3$var$locales[id] = data;\n }\n}\n/**\n * Creates new instance.\n *\n * @param {object?} config\n *\n * @returns {object}\n */ function $b3605b587cf7d4a3$var$timeDeltaFactory(config) {\n // Initializing config by extending the default one\n config = Object.assign({}, $b3605b587cf7d4a3$var$defaultConfig, config || {});\n return {\n /**\n * Public proxy for internal format function.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object?} options\n *\n * @returns {string}\n */ format: function(firstDate, secondDate, options) {\n // Allowing to override config with each individual call\n options = Object.assign({}, config, options || {});\n return $b3605b587cf7d4a3$var$format(firstDate, secondDate, options);\n }\n };\n}\n/**\n * Returns difference between two dates as a text string.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object} config\n *\n * @returns {string}\n */ function $b3605b587cf7d4a3$var$format(firstDate, secondDate, config) {\n $b3605b587cf7d4a3$var$ensureLocaleLoadedOrThrow(config.locale, {\n autoload: config.autoloadLocales\n });\n // Handling input arguments\n // -----\n if (!firstDate) throw new Error(\"Missing first date argument\");\n if (!secondDate) throw new Error(\"Missing second date argument\");\n // Calculating\n // -----\n const difference = $b3605b587cf7d4a3$var$getDifference(firstDate, secondDate);\n const parts = [];\n for (const unit of difference){\n const [name, value] = unit;\n if (value > 0) parts.push($b3605b587cf7d4a3$var$pluralize(name, value, config));\n if (parts.length >= config.span) break;\n }\n // Returning the string value\n return parts.join(config.delimiter);\n}\n/**\n * Checks if locale is loaded. If not, tries to load it in Node.js,\n * or throws and error in Browser.\n *\n * @param {string} locale\n * @param {Object?} options\n */ function $b3605b587cf7d4a3$var$ensureLocaleLoadedOrThrow(locale, options) {\n const { autoload: autoload } = options;\n if ($b3605b587cf7d4a3$var$hasLocale(locale)) return;\n if ($5GOZM && autoload) $b3605b587cf7d4a3$var$requireLocale(locale);\n else throw new Error(`Missing locale: ${locale}, you must load it manually before using it`);\n}\n/**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} localeId\n *\n * @returns {boolean}\n */ function $b3605b587cf7d4a3$var$hasLocale(localeId) {\n return Boolean($b3605b587cf7d4a3$var$locales[localeId]);\n}\n/**\n * Tries to load the specified locale.\n *\n * @param {string} localeId\n */ function $b3605b587cf7d4a3$var$requireLocale(localeId) {\n try {\n $b3605b587cf7d4a3$var$addLocale(require(`../locales/${localeId}.js`));\n } catch (error) {\n throw Error(`Failed to load locale: ${localeId} from ../locales/${localeId}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${error}`);\n }\n}\n/**\n * Returns difference as separate time units.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n *\n * @returns {Array}\n */ function $b3605b587cf7d4a3$var$getDifference(firstDate, secondDate) {\n let difference = secondDate - firstDate;\n const results = [];\n $b3605b587cf7d4a3$var$timeUnits.some(function(unit) {\n const name = unit[0];\n const divider = unit[1];\n const value = Math.floor(difference / divider);\n difference -= value * divider;\n results.push([\n name,\n value\n ]);\n if (difference <= 0) // Breaking the loop.\n return true;\n });\n return results;\n}\n/**\n * Returns localized and pluralized time unit.\n *\n * @param {string} unit\n * @param {int} value\n * @param {object} config\n *\n * @returns {string}\n */ function $b3605b587cf7d4a3$var$pluralize(unit, value, config) {\n const unitTypeData = $b3605b587cf7d4a3$var$getLocaleDataForUnitType(config);\n const unitString = $6OFKY.pluralize(config.locale, value, unitTypeData[unit]);\n return unitString.replace(\"{0}\", value);\n}\n/**\n * Returns locale data for preferred unit type.\n *\n * @param {object} config\n *\n * @returns {Array}\n */ function $b3605b587cf7d4a3$var$getLocaleDataForUnitType(config) {\n const localeData = $b3605b587cf7d4a3$var$locales[config.locale];\n // Making a copy of array from config.\n let lookupOrder = config.unitTypeLookupOrder.slice();\n // Adding interested type to the top.\n lookupOrder.unshift(config.unitType);\n // Making sure only unique items are present.\n lookupOrder = $b3605b587cf7d4a3$var$arrayUnique(lookupOrder);\n let unitTypeData = null;\n lookupOrder.some(function(unitType) {\n if (\"undefined\" !== typeof localeData[unitType]) {\n unitTypeData = localeData[unitType];\n // Breaking the loop.\n return true;\n }\n });\n if (null === unitTypeData) throw new Error(\"Can not find any unit type data for locale: \" + config.locale);\n return unitTypeData;\n}\n/**\n * Returns array with only unique items.\n *\n * @param {Array} array\n *\n * @returns {Array}\n */ function $b3605b587cf7d4a3$var$arrayUnique(array) {\n return Array.from(new Set(array));\n}\n\n});\nparcelRegister(\"6OFKY\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"kswPT\"));\n\n});\n\nparcelRegister(\"5GOZM\", function(module, exports) {\n// Coding standard for this project defined @ https://github.com/MatthewSH/standards/blob/master/JavaScript.md\n\"use strict\";\nexports = module.exports = !!(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\n});\n\n\nparcelRegister(\"8nJMC\", function(module, exports) {\nmodule.exports = $61a3fc466617a20f$var$isexe;\n$61a3fc466617a20f$var$isexe.sync = $61a3fc466617a20f$var$sync;\n\nfunction $61a3fc466617a20f$var$checkPathExt(path, options) {\n var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT;\n if (!pathext) return true;\n pathext = pathext.split(\";\");\n if (pathext.indexOf(\"\") !== -1) return true;\n for(var i = 0; i < pathext.length; i++){\n var p = pathext[i].toLowerCase();\n if (p && path.substr(-p.length).toLowerCase() === p) return true;\n }\n return false;\n}\nfunction $61a3fc466617a20f$var$checkStat(stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) return false;\n return $61a3fc466617a20f$var$checkPathExt(path, options);\n}\nfunction $61a3fc466617a20f$var$isexe(path, options, cb) {\n $4umf8$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $61a3fc466617a20f$var$checkStat(stat, path, options));\n });\n}\nfunction $61a3fc466617a20f$var$sync(path, options) {\n return $61a3fc466617a20f$var$checkStat($4umf8$fs.statSync(path), path, options);\n}\n\n});\n\nparcelRegister(\"lo7XV\", function(module, exports) {\nmodule.exports = $f92204a92aa246f8$var$isexe;\n$f92204a92aa246f8$var$isexe.sync = $f92204a92aa246f8$var$sync;\n\nfunction $f92204a92aa246f8$var$isexe(path, options, cb) {\n $4umf8$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $f92204a92aa246f8$var$checkStat(stat, options));\n });\n}\nfunction $f92204a92aa246f8$var$sync(path, options) {\n return $f92204a92aa246f8$var$checkStat($4umf8$fs.statSync(path), options);\n}\nfunction $f92204a92aa246f8$var$checkStat(stat, options) {\n return stat.isFile() && $f92204a92aa246f8$var$checkMode(stat, options);\n}\nfunction $f92204a92aa246f8$var$checkMode(stat, options) {\n var mod = stat.mode;\n var uid = stat.uid;\n var gid = stat.gid;\n var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid();\n var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid();\n var u = parseInt(\"100\", 8);\n var g = parseInt(\"010\", 8);\n var o = parseInt(\"001\", 8);\n var ug = u | g;\n var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;\n return ret;\n}\n\n});\n\nparcelRegister(\"dVIKq\", function(module, exports) {\n// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n \"SIGABRT\",\n \"SIGALRM\",\n \"SIGHUP\",\n \"SIGINT\",\n \"SIGTERM\"\n];\nif (process.platform !== \"win32\") module.exports.push(\"SIGVTALRM\", \"SIGXCPU\", \"SIGXFSZ\", \"SIGUSR2\", \"SIGTRAP\", \"SIGSYS\", \"SIGQUIT\", \"SIGIOT\");\nif (process.platform === \"linux\") module.exports.push(\"SIGIO\", \"SIGPOLL\", \"SIGPWR\", \"SIGSTKFLT\", \"SIGUNUSED\");\n\n});\n\nparcelRegister(\"coVwk\", function(module, exports) {\n// just pre-load all the stuff that index.js lazily exports\n\nvar $hhSwF = parcelRequire(\"hhSwF\");\n\nvar $iXsaM = parcelRequire(\"iXsaM\");\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $dAM2Q = parcelRequire(\"dAM2Q\");\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\n\nvar $2kZmC = parcelRequire(\"2kZmC\");\n\nvar $3Ixw1 = parcelRequire(\"3Ixw1\");\n\nvar $5r5vN = parcelRequire(\"5r5vN\");\n\nvar $bDrwm = parcelRequire(\"bDrwm\");\n\nvar $lORAA = parcelRequire(\"lORAA\");\n\nvar $2Lh6z = parcelRequire(\"2Lh6z\");\n\nvar $73KaH = parcelRequire(\"73KaH\");\n\nvar $j5Xr5 = parcelRequire(\"j5Xr5\");\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\n\nvar $2QKGl = parcelRequire(\"2QKGl\");\n\nvar $3puHo = parcelRequire(\"3puHo\");\n\nvar $7qrQi = parcelRequire(\"7qrQi\");\n\nvar $hZ1Xd = parcelRequire(\"hZ1Xd\");\n\nvar $3YOIj = parcelRequire(\"3YOIj\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\n\nvar $58P10 = parcelRequire(\"58P10\");\n\nvar $lTmeS = parcelRequire(\"lTmeS\");\n\nvar $jzqBf = parcelRequire(\"jzqBf\");\n\nvar $3XWvL = parcelRequire(\"3XWvL\");\n\nvar $hlfY9 = parcelRequire(\"hlfY9\");\n\nvar $84iFB = parcelRequire(\"84iFB\");\n\nvar $6v1Be = parcelRequire(\"6v1Be\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $4zfp3 = parcelRequire(\"4zfp3\");\n\nvar $ga5uZ = parcelRequire(\"ga5uZ\");\n\nvar $lPGVL = parcelRequire(\"lPGVL\");\n\nvar $1I8AA = parcelRequire(\"1I8AA\");\n\nvar $dBtft = parcelRequire(\"dBtft\");\n\nvar $83Sp2 = parcelRequire(\"83Sp2\");\n\nvar $eK4my = parcelRequire(\"eK4my\");\n\nvar $eNXBI = parcelRequire(\"eNXBI\");\n\nvar $kHzUo = parcelRequire(\"kHzUo\");\n\nvar $1x2XZ = parcelRequire(\"1x2XZ\");\n\nvar $hTYir = parcelRequire(\"hTYir\");\nmodule.exports = {\n parse: $cHnHr,\n valid: $2kZmC,\n clean: $3Ixw1,\n inc: $5r5vN,\n diff: $bDrwm,\n major: $lORAA,\n minor: $2Lh6z,\n patch: $73KaH,\n prerelease: $j5Xr5,\n compare: $jDqfd,\n rcompare: $2QKGl,\n compareLoose: $3puHo,\n compareBuild: $7qrQi,\n sort: $hZ1Xd,\n rsort: $3YOIj,\n gt: $cOpcP,\n lt: $58P10,\n eq: $lTmeS,\n neq: $jzqBf,\n gte: $3XWvL,\n lte: $hlfY9,\n cmp: $84iFB,\n coerce: $6v1Be,\n Comparator: $1bxhC,\n Range: $bswWF,\n satisfies: $42oIR,\n toComparators: $4zfp3,\n maxSatisfying: $ga5uZ,\n minSatisfying: $lPGVL,\n minVersion: $1I8AA,\n validRange: $dBtft,\n outside: $83Sp2,\n gtr: $eK4my,\n ltr: $eNXBI,\n intersects: $kHzUo,\n simplifyRange: $1x2XZ,\n subset: $hTYir,\n SemVer: $8cXe9,\n re: $hhSwF.re,\n src: $hhSwF.src,\n tokens: $hhSwF.t,\n SEMVER_SPEC_VERSION: $iXsaM.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: $iXsaM.RELEASE_TYPES,\n compareIdentifiers: $dAM2Q.compareIdentifiers,\n rcompareIdentifiers: $dAM2Q.rcompareIdentifiers\n};\n\n});\nparcelRegister(\"hhSwF\", function(module, exports) {\n\nvar $iXsaM = parcelRequire(\"iXsaM\");\nvar $c95e51e8df9eefc0$require$MAX_SAFE_COMPONENT_LENGTH = $iXsaM.MAX_SAFE_COMPONENT_LENGTH;\nvar $c95e51e8df9eefc0$require$MAX_SAFE_BUILD_LENGTH = $iXsaM.MAX_SAFE_BUILD_LENGTH;\nvar $c95e51e8df9eefc0$require$MAX_LENGTH = $iXsaM.MAX_LENGTH;\n\nvar $jl9Uf = parcelRequire(\"jl9Uf\");\nexports = module.exports = {};\n// The actual regexps go on exports.re\nconst re = exports.re = [];\nconst safeRe = exports.safeRe = [];\nconst src = exports.src = [];\nconst t = exports.t = {};\nlet R = 0;\nconst LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n $c95e51e8df9eefc0$require$MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n $c95e51e8df9eefc0$require$MAX_SAFE_BUILD_LENGTH\n ]\n];\nconst makeSafeRegex = (value)=>{\n for (const [token, max] of safeRegexReplacements)value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n return value;\n};\nconst createToken = (name, value, isGlobal)=>{\n const safe = makeSafeRegex(value);\n const index = R++;\n $jl9Uf(name, index, value);\n t[name] = index;\n src[index] = value;\n re[index] = new RegExp(value, isGlobal ? \"g\" : undefined);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : undefined);\n};\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ncreateToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\ncreateToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ncreateToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n// ## Main Version\n// Three dot-separated numeric identifiers.\ncreateToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})`);\ncreateToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ncreateToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`);\ncreateToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`);\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ncreateToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\ncreateToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ncreateToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ncreateToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ncreateToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\ncreateToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\ncreateToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\ncreateToken(\"GTLT\", \"((?:<|>)?=?)\");\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\ncreateToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\ncreateToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken(\"COERCE\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${$c95e51e8df9eefc0$require$MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\\\.(\\\\d{1,${$c95e51e8df9eefc0$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\\\.(\\\\d{1,${$c95e51e8df9eefc0$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\\\d])`);\ncreateToken(\"COERCERTL\", src[t.COERCE], true);\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken(\"LONETILDE\", \"(?:~>?)\");\ncreateToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\nexports.tildeTrimReplace = \"$1~\";\ncreateToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken(\"LONECARET\", \"(?:\\\\^)\");\ncreateToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\nexports.caretTrimReplace = \"$1^\";\ncreateToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\ncreateToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\nexports.comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\\\s*$`);\ncreateToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s*$`);\n// Star ranges basically just allow anything at all.\ncreateToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n// >=0.0.0 is like a star\ncreateToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\ncreateToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n\n});\nparcelRegister(\"iXsaM\", function(module, exports) {\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst $dcd3973635072855$var$SEMVER_SPEC_VERSION = \"2.0.0\";\nconst $dcd3973635072855$var$MAX_LENGTH = 256;\nconst $dcd3973635072855$var$MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nconst $dcd3973635072855$var$MAX_SAFE_COMPONENT_LENGTH = 16;\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst $dcd3973635072855$var$MAX_SAFE_BUILD_LENGTH = $dcd3973635072855$var$MAX_LENGTH - 6;\nconst $dcd3973635072855$var$RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n];\nmodule.exports = {\n MAX_LENGTH: $dcd3973635072855$var$MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH: $dcd3973635072855$var$MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH: $dcd3973635072855$var$MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: $dcd3973635072855$var$MAX_SAFE_INTEGER,\n RELEASE_TYPES: $dcd3973635072855$var$RELEASE_TYPES,\n SEMVER_SPEC_VERSION: $dcd3973635072855$var$SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n};\n\n});\n\nparcelRegister(\"jl9Uf\", function(module, exports) {\nconst $e147a9a67455c3ba$var$debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args)=>console.error(\"SEMVER\", ...args) : ()=>{};\nmodule.exports = $e147a9a67455c3ba$var$debug;\n\n});\n\n\nparcelRegister(\"8cXe9\", function(module, exports) {\n\nvar $jl9Uf = parcelRequire(\"jl9Uf\");\n\nvar $iXsaM = parcelRequire(\"iXsaM\");\nvar $5f9d6307b0a50114$require$MAX_LENGTH = $iXsaM.MAX_LENGTH;\nvar $5f9d6307b0a50114$require$MAX_SAFE_INTEGER = $iXsaM.MAX_SAFE_INTEGER;\n\nvar $hhSwF = parcelRequire(\"hhSwF\");\nvar $5f9d6307b0a50114$require$re = $hhSwF.safeRe;\nvar $5f9d6307b0a50114$require$t = $hhSwF.t;\n\nvar $5v8m5 = parcelRequire(\"5v8m5\");\n\nvar $dAM2Q = parcelRequire(\"dAM2Q\");\nvar $5f9d6307b0a50114$require$compareIdentifiers = $dAM2Q.compareIdentifiers;\nclass $5f9d6307b0a50114$var$SemVer {\n constructor(version, options){\n options = $5v8m5(options);\n if (version instanceof $5f9d6307b0a50114$var$SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n if (version.length > $5f9d6307b0a50114$require$MAX_LENGTH) throw new TypeError(`version is longer than ${$5f9d6307b0a50114$require$MAX_LENGTH} characters`);\n $jl9Uf(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? $5f9d6307b0a50114$require$re[$5f9d6307b0a50114$require$t.LOOSE] : $5f9d6307b0a50114$require$re[$5f9d6307b0a50114$require$t.FULL]);\n if (!m) throw new TypeError(`Invalid Version: ${version}`);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > $5f9d6307b0a50114$require$MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > $5f9d6307b0a50114$require$MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > $5f9d6307b0a50114$require$MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map((id)=>{\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < $5f9d6307b0a50114$require$MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) this.version += `-${this.prerelease.join(\".\")}`;\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n $jl9Uf(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof $5f9d6307b0a50114$var$SemVer)) {\n if (typeof other === \"string\" && other === this.version) return 0;\n other = new $5f9d6307b0a50114$var$SemVer(other, this.options);\n }\n if (other.version === this.version) return 0;\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof $5f9d6307b0a50114$var$SemVer)) other = new $5f9d6307b0a50114$var$SemVer(other, this.options);\n return $5f9d6307b0a50114$require$compareIdentifiers(this.major, other.major) || $5f9d6307b0a50114$require$compareIdentifiers(this.minor, other.minor) || $5f9d6307b0a50114$require$compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof $5f9d6307b0a50114$var$SemVer)) other = new $5f9d6307b0a50114$var$SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n $jl9Uf(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $5f9d6307b0a50114$require$compareIdentifiers(a, b);\n }while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof $5f9d6307b0a50114$var$SemVer)) other = new $5f9d6307b0a50114$var$SemVer(other, this.options);\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n $jl9Uf(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $5f9d6307b0a50114$require$compareIdentifiers(a, b);\n }while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) throw new Error(\"invalid increment argument: identifier is empty\");\n if (this.prerelease.length === 0) this.prerelease = [\n base\n ];\n else {\n let i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) throw new Error(\"invalid increment argument: identifier already exists\");\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [\n identifier,\n base\n ];\n if (identifierBase === false) prerelease = [\n identifier\n ];\n if ($5f9d6307b0a50114$require$compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) this.prerelease = prerelease;\n } else this.prerelease = prerelease;\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) this.raw += `+${this.build.join(\".\")}`;\n return this;\n }\n}\nmodule.exports = $5f9d6307b0a50114$var$SemVer;\n\n});\nparcelRegister(\"5v8m5\", function(module, exports) {\n// parse out just the options we care about\nconst $4016542f96e2ba13$var$looseOption = Object.freeze({\n loose: true\n});\nconst $4016542f96e2ba13$var$emptyOpts = Object.freeze({});\nconst $4016542f96e2ba13$var$parseOptions = (options)=>{\n if (!options) return $4016542f96e2ba13$var$emptyOpts;\n if (typeof options !== \"object\") return $4016542f96e2ba13$var$looseOption;\n return options;\n};\nmodule.exports = $4016542f96e2ba13$var$parseOptions;\n\n});\n\nparcelRegister(\"dAM2Q\", function(module, exports) {\nconst $9e53e7e486c62584$var$numeric = /^[0-9]+$/;\nconst $9e53e7e486c62584$var$compareIdentifiers = (a, b)=>{\n const anum = $9e53e7e486c62584$var$numeric.test(a);\n const bnum = $9e53e7e486c62584$var$numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n};\nconst $9e53e7e486c62584$var$rcompareIdentifiers = (a, b)=>$9e53e7e486c62584$var$compareIdentifiers(b, a);\nmodule.exports = {\n compareIdentifiers: $9e53e7e486c62584$var$compareIdentifiers,\n rcompareIdentifiers: $9e53e7e486c62584$var$rcompareIdentifiers\n};\n\n});\n\n\nparcelRegister(\"cHnHr\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $93ebe26cfabaa188$var$parse = (version, options, throwErrors = false)=>{\n if (version instanceof $8cXe9) return version;\n try {\n return new $8cXe9(version, options);\n } catch (er) {\n if (!throwErrors) return null;\n throw er;\n }\n};\nmodule.exports = $93ebe26cfabaa188$var$parse;\n\n});\n\nparcelRegister(\"2kZmC\", function(module, exports) {\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\nconst $1b3d0c95842a233f$var$valid = (version, options)=>{\n const v = $cHnHr(version, options);\n return v ? v.version : null;\n};\nmodule.exports = $1b3d0c95842a233f$var$valid;\n\n});\n\nparcelRegister(\"3Ixw1\", function(module, exports) {\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\nconst $2b4f7aa592c5a64a$var$clean = (version, options)=>{\n const s = $cHnHr(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n};\nmodule.exports = $2b4f7aa592c5a64a$var$clean;\n\n});\n\nparcelRegister(\"5r5vN\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $3f53bfe76a8eb8ff$var$inc = (version, release, options, identifier, identifierBase)=>{\n if (typeof options === \"string\") {\n identifierBase = identifier;\n identifier = options;\n options = undefined;\n }\n try {\n return new $8cXe9(version instanceof $8cXe9 ? version.version : version, options).inc(release, identifier, identifierBase).version;\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $3f53bfe76a8eb8ff$var$inc;\n\n});\n\nparcelRegister(\"bDrwm\", function(module, exports) {\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\nconst $8788af559a97c313$var$diff = (version1, version2)=>{\n const v1 = $cHnHr(version1, null, true);\n const v2 = $cHnHr(version2, null, true);\n const comparison = v1.compare(v2);\n if (comparison === 0) return null;\n const v1Higher = comparison > 0;\n const highVersion = v1Higher ? v1 : v2;\n const lowVersion = v1Higher ? v2 : v1;\n const highHasPre = !!highVersion.prerelease.length;\n const lowHasPre = !!lowVersion.prerelease.length;\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) return \"major\";\n // Otherwise it can be determined by checking the high version\n if (highVersion.patch) // anything higher than a patch bump would result in the wrong version\n return \"patch\";\n if (highVersion.minor) // anything higher than a minor bump would result in the wrong version\n return \"minor\";\n // bumping major/minor/patch all have same result\n return \"major\";\n }\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? \"pre\" : \"\";\n if (v1.major !== v2.major) return prefix + \"major\";\n if (v1.minor !== v2.minor) return prefix + \"minor\";\n if (v1.patch !== v2.patch) return prefix + \"patch\";\n // high and low are preleases\n return \"prerelease\";\n};\nmodule.exports = $8788af559a97c313$var$diff;\n\n});\n\nparcelRegister(\"lORAA\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $fe27d62e7e33fa19$var$major = (a, loose)=>new $8cXe9(a, loose).major;\nmodule.exports = $fe27d62e7e33fa19$var$major;\n\n});\n\nparcelRegister(\"2Lh6z\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $202d3d42e88f3c28$var$minor = (a, loose)=>new $8cXe9(a, loose).minor;\nmodule.exports = $202d3d42e88f3c28$var$minor;\n\n});\n\nparcelRegister(\"73KaH\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $523ca0e80014f7d8$var$patch = (a, loose)=>new $8cXe9(a, loose).patch;\nmodule.exports = $523ca0e80014f7d8$var$patch;\n\n});\n\nparcelRegister(\"j5Xr5\", function(module, exports) {\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\nconst $de6c96b3ae4bd129$var$prerelease = (version, options)=>{\n const parsed = $cHnHr(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n};\nmodule.exports = $de6c96b3ae4bd129$var$prerelease;\n\n});\n\nparcelRegister(\"jDqfd\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $e4b6046aca61f3e2$var$compare = (a, b, loose)=>new $8cXe9(a, loose).compare(new $8cXe9(b, loose));\nmodule.exports = $e4b6046aca61f3e2$var$compare;\n\n});\n\nparcelRegister(\"2QKGl\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $2134a6255f13ad9b$var$rcompare = (a, b, loose)=>$jDqfd(b, a, loose);\nmodule.exports = $2134a6255f13ad9b$var$rcompare;\n\n});\n\nparcelRegister(\"3puHo\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $27bb850ff97b303d$var$compareLoose = (a, b)=>$jDqfd(a, b, true);\nmodule.exports = $27bb850ff97b303d$var$compareLoose;\n\n});\n\nparcelRegister(\"7qrQi\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\nconst $56808f0c5eb5cb5f$var$compareBuild = (a, b, loose)=>{\n const versionA = new $8cXe9(a, loose);\n const versionB = new $8cXe9(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n};\nmodule.exports = $56808f0c5eb5cb5f$var$compareBuild;\n\n});\n\nparcelRegister(\"hZ1Xd\", function(module, exports) {\n\nvar $7qrQi = parcelRequire(\"7qrQi\");\nconst $d179a636da11b2a4$var$sort = (list, loose)=>list.sort((a, b)=>$7qrQi(a, b, loose));\nmodule.exports = $d179a636da11b2a4$var$sort;\n\n});\n\nparcelRegister(\"3YOIj\", function(module, exports) {\n\nvar $7qrQi = parcelRequire(\"7qrQi\");\nconst $2e5e506179661275$var$rsort = (list, loose)=>list.sort((a, b)=>$7qrQi(b, a, loose));\nmodule.exports = $2e5e506179661275$var$rsort;\n\n});\n\nparcelRegister(\"cOpcP\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $953db4ebd516041a$var$gt = (a, b, loose)=>$jDqfd(a, b, loose) > 0;\nmodule.exports = $953db4ebd516041a$var$gt;\n\n});\n\nparcelRegister(\"58P10\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $3be545aa6e792823$var$lt = (a, b, loose)=>$jDqfd(a, b, loose) < 0;\nmodule.exports = $3be545aa6e792823$var$lt;\n\n});\n\nparcelRegister(\"lTmeS\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $fefffc38ac57fde3$var$eq = (a, b, loose)=>$jDqfd(a, b, loose) === 0;\nmodule.exports = $fefffc38ac57fde3$var$eq;\n\n});\n\nparcelRegister(\"jzqBf\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $e3f5eb5780814ac5$var$neq = (a, b, loose)=>$jDqfd(a, b, loose) !== 0;\nmodule.exports = $e3f5eb5780814ac5$var$neq;\n\n});\n\nparcelRegister(\"3XWvL\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $2e3444e9310d8b16$var$gte = (a, b, loose)=>$jDqfd(a, b, loose) >= 0;\nmodule.exports = $2e3444e9310d8b16$var$gte;\n\n});\n\nparcelRegister(\"hlfY9\", function(module, exports) {\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nconst $ca00c8fc5d60d2c3$var$lte = (a, b, loose)=>$jDqfd(a, b, loose) <= 0;\nmodule.exports = $ca00c8fc5d60d2c3$var$lte;\n\n});\n\nparcelRegister(\"84iFB\", function(module, exports) {\n\nvar $lTmeS = parcelRequire(\"lTmeS\");\n\nvar $jzqBf = parcelRequire(\"jzqBf\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\n\nvar $3XWvL = parcelRequire(\"3XWvL\");\n\nvar $58P10 = parcelRequire(\"58P10\");\n\nvar $hlfY9 = parcelRequire(\"hlfY9\");\nconst $5dfd2de80d18eb59$var$cmp = (a, op, b, loose)=>{\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return $lTmeS(a, b, loose);\n case \"!=\":\n return $jzqBf(a, b, loose);\n case \">\":\n return $cOpcP(a, b, loose);\n case \">=\":\n return $3XWvL(a, b, loose);\n case \"<\":\n return $58P10(a, b, loose);\n case \"<=\":\n return $hlfY9(a, b, loose);\n default:\n throw new TypeError(`Invalid operator: ${op}`);\n }\n};\nmodule.exports = $5dfd2de80d18eb59$var$cmp;\n\n});\n\nparcelRegister(\"6v1Be\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $cHnHr = parcelRequire(\"cHnHr\");\n\nvar $hhSwF = parcelRequire(\"hhSwF\");\nvar $4bb6e0f4a4724cfe$require$re = $hhSwF.safeRe;\nvar $4bb6e0f4a4724cfe$require$t = $hhSwF.t;\nconst $4bb6e0f4a4724cfe$var$coerce = (version, options)=>{\n if (version instanceof $8cXe9) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n let match = null;\n if (!options.rtl) match = version.match($4bb6e0f4a4724cfe$require$re[$4bb6e0f4a4724cfe$require$t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next;\n while((next = $4bb6e0f4a4724cfe$require$re[$4bb6e0f4a4724cfe$require$t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n $4bb6e0f4a4724cfe$require$re[$4bb6e0f4a4724cfe$require$t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n $4bb6e0f4a4724cfe$require$re[$4bb6e0f4a4724cfe$require$t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return $cHnHr(`${match[2]}.${match[3] || \"0\"}.${match[4] || \"0\"}`, options);\n};\nmodule.exports = $4bb6e0f4a4724cfe$var$coerce;\n\n});\n\nparcelRegister(\"1bxhC\", function(module, exports) {\nconst $0dd0a2e3ba1f64c7$var$ANY = Symbol(\"SemVer ANY\");\n// hoisted class for cyclic dependency\nclass $0dd0a2e3ba1f64c7$var$Comparator {\n static get ANY() {\n return $0dd0a2e3ba1f64c7$var$ANY;\n }\n constructor(comp, options){\n options = $5v8m5(options);\n if (comp instanceof $0dd0a2e3ba1f64c7$var$Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n comp = comp.trim().split(/\\s+/).join(\" \");\n $jl9Uf(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === $0dd0a2e3ba1f64c7$var$ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n $jl9Uf(\"comp\", this);\n }\n parse(comp) {\n const r = this.options.loose ? $0dd0a2e3ba1f64c7$require$re[$0dd0a2e3ba1f64c7$require$t.COMPARATORLOOSE] : $0dd0a2e3ba1f64c7$require$re[$0dd0a2e3ba1f64c7$require$t.COMPARATOR];\n const m = comp.match(r);\n if (!m) throw new TypeError(`Invalid comparator: ${comp}`);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = $0dd0a2e3ba1f64c7$var$ANY;\n else this.semver = new $8cXe9(m[2], this.options.loose);\n }\n toString() {\n return this.value;\n }\n test(version) {\n $jl9Uf(\"Comparator.test\", version, this.options.loose);\n if (this.semver === $0dd0a2e3ba1f64c7$var$ANY || version === $0dd0a2e3ba1f64c7$var$ANY) return true;\n if (typeof version === \"string\") try {\n version = new $8cXe9(version, this.options);\n } catch (er) {\n return false;\n }\n return $84iFB(version, this.operator, this.semver, this.options);\n }\n intersects(comp, options) {\n if (!(comp instanceof $0dd0a2e3ba1f64c7$var$Comparator)) throw new TypeError(\"a Comparator is required\");\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n return new $bswWF(comp.value, options).test(this.value);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n return new $bswWF(this.value, options).test(comp.semver);\n }\n options = $5v8m5(options);\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease && (this.value === \"<0.0.0-0\" || comp.value === \"<0.0.0-0\")) return false;\n if (!options.includePrerelease && (this.value.startsWith(\"<0.0.0\") || comp.value.startsWith(\"<0.0.0\"))) return false;\n // Same direction increasing (> or >=)\n if (this.operator.startsWith(\">\") && comp.operator.startsWith(\">\")) return true;\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith(\"<\") && comp.operator.startsWith(\"<\")) return true;\n // same SemVer and both sides are inclusive (<= or >=)\n if (this.semver.version === comp.semver.version && this.operator.includes(\"=\") && comp.operator.includes(\"=\")) return true;\n // opposite directions less than\n if ($84iFB(this.semver, \"<\", comp.semver, options) && this.operator.startsWith(\">\") && comp.operator.startsWith(\"<\")) return true;\n // opposite directions greater than\n if ($84iFB(this.semver, \">\", comp.semver, options) && this.operator.startsWith(\"<\") && comp.operator.startsWith(\">\")) return true;\n return false;\n }\n}\nmodule.exports = $0dd0a2e3ba1f64c7$var$Comparator;\n\nvar $5v8m5 = parcelRequire(\"5v8m5\");\n\nvar $hhSwF = parcelRequire(\"hhSwF\");\nvar $0dd0a2e3ba1f64c7$require$re = $hhSwF.safeRe;\nvar $0dd0a2e3ba1f64c7$require$t = $hhSwF.t;\n\nvar $84iFB = parcelRequire(\"84iFB\");\n\nvar $jl9Uf = parcelRequire(\"jl9Uf\");\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\n});\nparcelRegister(\"bswWF\", function(module, exports) {\n// hoisted class for cyclic dependency\nclass $857bdd786d7ea570$var$Range {\n constructor(range, options){\n options = $5v8m5(options);\n if (range instanceof $857bdd786d7ea570$var$Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new $857bdd786d7ea570$var$Range(range.raw, options);\n }\n if (range instanceof $1bxhC) {\n // just put it in the set and return\n this.raw = range.value;\n this.set = [\n [\n range\n ]\n ];\n this.format();\n return this;\n }\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split on ||\n this.set = this.raw.split(\"||\")// map the range to a 2d array of comparators\n .map((r)=>this.parseRange(r.trim()))// throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter((c)=>c.length);\n if (!this.set.length) throw new TypeError(`Invalid SemVer Range: ${this.raw}`);\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0];\n this.set = this.set.filter((c)=>!$857bdd786d7ea570$var$isNullSet(c[0]));\n if (this.set.length === 0) this.set = [\n first\n ];\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set)if (c.length === 1 && $857bdd786d7ea570$var$isAny(c[0])) {\n this.set = [\n c\n ];\n break;\n }\n }\n }\n this.format();\n }\n format() {\n this.range = this.set.map((comps)=>comps.join(\" \").trim()).join(\"||\").trim();\n return this.range;\n }\n toString() {\n return this.range;\n }\n parseRange(range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = (this.options.includePrerelease && $857bdd786d7ea570$require$FLAG_INCLUDE_PRERELEASE) | (this.options.loose && $857bdd786d7ea570$require$FLAG_LOOSE);\n const memoKey = memoOpts + \":\" + range;\n const cached = $857bdd786d7ea570$var$cache.get(memoKey);\n if (cached) return cached;\n const loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.HYPHENRANGELOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.HYPHENRANGE];\n range = range.replace(hr, $857bdd786d7ea570$var$hyphenReplace(this.options.includePrerelease));\n $jl9Uf(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.COMPARATORTRIM], $857bdd786d7ea570$require$comparatorTrimReplace);\n $jl9Uf(\"comparator trim\", range);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.TILDETRIM], $857bdd786d7ea570$require$tildeTrimReplace);\n $jl9Uf(\"tilde trim\", range);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.CARETTRIM], $857bdd786d7ea570$require$caretTrimReplace);\n $jl9Uf(\"caret trim\", range);\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n let rangeList = range.split(\" \").map((comp)=>$857bdd786d7ea570$var$parseComparator(comp, this.options)).join(\" \").split(/\\s+/)// >=0.0.0 is equivalent to *\n .map((comp)=>$857bdd786d7ea570$var$replaceGTE0(comp, this.options));\n if (loose) // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter((comp)=>{\n $jl9Uf(\"loose invalid filter\", comp, this.options);\n return !!comp.match($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.COMPARATORLOOSE]);\n });\n $jl9Uf(\"range list\", rangeList);\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map();\n const comparators = rangeList.map((comp)=>new $1bxhC(comp, this.options));\n for (const comp of comparators){\n if ($857bdd786d7ea570$var$isNullSet(comp)) return [\n comp\n ];\n rangeMap.set(comp.value, comp);\n }\n if (rangeMap.size > 1 && rangeMap.has(\"\")) rangeMap.delete(\"\");\n const result = [\n ...rangeMap.values()\n ];\n $857bdd786d7ea570$var$cache.set(memoKey, result);\n return result;\n }\n intersects(range, options) {\n if (!(range instanceof $857bdd786d7ea570$var$Range)) throw new TypeError(\"a Range is required\");\n return this.set.some((thisComparators)=>{\n return $857bdd786d7ea570$var$isSatisfiable(thisComparators, options) && range.set.some((rangeComparators)=>{\n return $857bdd786d7ea570$var$isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator)=>{\n return rangeComparators.every((rangeComparator)=>{\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n }\n // if ANY of the sets match ALL of its comparators, then pass\n test(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new $8cXe9(version, this.options);\n } catch (er) {\n return false;\n }\n for(let i = 0; i < this.set.length; i++){\n if ($857bdd786d7ea570$var$testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n }\n}\nmodule.exports = $857bdd786d7ea570$var$Range;\n\nvar $31A6g = parcelRequire(\"31A6g\");\nconst $857bdd786d7ea570$var$cache = new $31A6g({\n max: 1000\n});\n\nvar $5v8m5 = parcelRequire(\"5v8m5\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\n\nvar $jl9Uf = parcelRequire(\"jl9Uf\");\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $hhSwF = parcelRequire(\"hhSwF\");\nvar $857bdd786d7ea570$require$re = $hhSwF.safeRe;\nvar $857bdd786d7ea570$require$t = $hhSwF.t;\nvar $857bdd786d7ea570$require$comparatorTrimReplace = $hhSwF.comparatorTrimReplace;\nvar $857bdd786d7ea570$require$tildeTrimReplace = $hhSwF.tildeTrimReplace;\nvar $857bdd786d7ea570$require$caretTrimReplace = $hhSwF.caretTrimReplace;\n\nvar $iXsaM = parcelRequire(\"iXsaM\");\nvar $857bdd786d7ea570$require$FLAG_INCLUDE_PRERELEASE = $iXsaM.FLAG_INCLUDE_PRERELEASE;\nvar $857bdd786d7ea570$require$FLAG_LOOSE = $iXsaM.FLAG_LOOSE;\nconst $857bdd786d7ea570$var$isNullSet = (c)=>c.value === \"<0.0.0-0\";\nconst $857bdd786d7ea570$var$isAny = (c)=>c.value === \"\";\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst $857bdd786d7ea570$var$isSatisfiable = (comparators, options)=>{\n let result = true;\n const remainingComparators = comparators.slice();\n let testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every((otherComparator)=>{\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n};\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst $857bdd786d7ea570$var$parseComparator = (comp, options)=>{\n $jl9Uf(\"comp\", comp, options);\n comp = $857bdd786d7ea570$var$replaceCarets(comp, options);\n $jl9Uf(\"caret\", comp);\n comp = $857bdd786d7ea570$var$replaceTildes(comp, options);\n $jl9Uf(\"tildes\", comp);\n comp = $857bdd786d7ea570$var$replaceXRanges(comp, options);\n $jl9Uf(\"xrange\", comp);\n comp = $857bdd786d7ea570$var$replaceStars(comp, options);\n $jl9Uf(\"stars\", comp);\n return comp;\n};\nconst $857bdd786d7ea570$var$isX = (id)=>!id || id.toLowerCase() === \"x\" || id === \"*\";\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $857bdd786d7ea570$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceTilde(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.TILDELOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $jl9Uf(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($857bdd786d7ea570$var$isX(M)) ret = \"\";\n else if ($857bdd786d7ea570$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $jl9Uf(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $jl9Uf(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $857bdd786d7ea570$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceCaret(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceCaret = (comp, options)=>{\n $jl9Uf(\"caret\", comp, options);\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.CARETLOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $jl9Uf(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($857bdd786d7ea570$var$isX(M)) ret = \"\";\n else if ($857bdd786d7ea570$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $jl9Uf(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $jl9Uf(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $jl9Uf(\"caret return\", ret);\n return ret;\n });\n};\nconst $857bdd786d7ea570$var$replaceXRanges = (comp, options)=>{\n $jl9Uf(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceXRange(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.XRANGELOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $jl9Uf(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $857bdd786d7ea570$var$isX(M);\n const xm = xM || $857bdd786d7ea570$var$isX(m);\n const xp = xm || $857bdd786d7ea570$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $jl9Uf(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $857bdd786d7ea570$var$replaceStars = (comp, options)=>{\n $jl9Uf(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.STAR], \"\");\n};\nconst $857bdd786d7ea570$var$replaceGTE0 = (comp, options)=>{\n $jl9Uf(\"replaceGTE0\", comp, options);\n return comp.trim().replace($857bdd786d7ea570$require$re[options.includePrerelease ? $857bdd786d7ea570$require$t.GTE0PRE : $857bdd786d7ea570$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $857bdd786d7ea570$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($857bdd786d7ea570$var$isX(fM)) from = \"\";\n else if ($857bdd786d7ea570$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($857bdd786d7ea570$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($857bdd786d7ea570$var$isX(tM)) to = \"\";\n else if ($857bdd786d7ea570$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $857bdd786d7ea570$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $jl9Uf(set[i].semver);\n if (set[i].semver === $1bxhC.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"31A6g\", function(module, exports) {\n\"use strict\";\n\nvar $i08Cw = parcelRequire(\"i08Cw\");\nconst $233d77d4742ed838$var$MAX = Symbol(\"max\");\nconst $233d77d4742ed838$var$LENGTH = Symbol(\"length\");\nconst $233d77d4742ed838$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $233d77d4742ed838$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $233d77d4742ed838$var$MAX_AGE = Symbol(\"maxAge\");\nconst $233d77d4742ed838$var$DISPOSE = Symbol(\"dispose\");\nconst $233d77d4742ed838$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $233d77d4742ed838$var$LRU_LIST = Symbol(\"lruList\");\nconst $233d77d4742ed838$var$CACHE = Symbol(\"cache\");\nconst $233d77d4742ed838$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $233d77d4742ed838$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $233d77d4742ed838$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$233d77d4742ed838$var$MAX] = options.max || Infinity;\n const lc = options.length || $233d77d4742ed838$var$naiveLength;\n this[$233d77d4742ed838$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $233d77d4742ed838$var$naiveLength : lc;\n this[$233d77d4742ed838$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$233d77d4742ed838$var$MAX_AGE] = options.maxAge || 0;\n this[$233d77d4742ed838$var$DISPOSE] = options.dispose;\n this[$233d77d4742ed838$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$233d77d4742ed838$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$233d77d4742ed838$var$MAX] = mL || Infinity;\n $233d77d4742ed838$var$trim(this);\n }\n get max() {\n return this[$233d77d4742ed838$var$MAX];\n }\n set allowStale(allowStale) {\n this[$233d77d4742ed838$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$233d77d4742ed838$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$233d77d4742ed838$var$MAX_AGE] = mA;\n $233d77d4742ed838$var$trim(this);\n }\n get maxAge() {\n return this[$233d77d4742ed838$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $233d77d4742ed838$var$naiveLength;\n if (lC !== this[$233d77d4742ed838$var$LENGTH_CALCULATOR]) {\n this[$233d77d4742ed838$var$LENGTH_CALCULATOR] = lC;\n this[$233d77d4742ed838$var$LENGTH] = 0;\n this[$233d77d4742ed838$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$233d77d4742ed838$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$233d77d4742ed838$var$LENGTH] += hit.length;\n });\n }\n $233d77d4742ed838$var$trim(this);\n }\n get lengthCalculator() {\n return this[$233d77d4742ed838$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$233d77d4742ed838$var$LENGTH];\n }\n get itemCount() {\n return this[$233d77d4742ed838$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$233d77d4742ed838$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $233d77d4742ed838$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$233d77d4742ed838$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $233d77d4742ed838$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$233d77d4742ed838$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$233d77d4742ed838$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$233d77d4742ed838$var$DISPOSE] && this[$233d77d4742ed838$var$LRU_LIST] && this[$233d77d4742ed838$var$LRU_LIST].length) this[$233d77d4742ed838$var$LRU_LIST].forEach((hit)=>this[$233d77d4742ed838$var$DISPOSE](hit.key, hit.value));\n this[$233d77d4742ed838$var$CACHE] = new Map() // hash of items by key\n ;\n this[$233d77d4742ed838$var$LRU_LIST] = new $i08Cw() // list of items in order of use recency\n ;\n this[$233d77d4742ed838$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$233d77d4742ed838$var$LRU_LIST].map((hit)=>$233d77d4742ed838$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$233d77d4742ed838$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$233d77d4742ed838$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$233d77d4742ed838$var$LENGTH_CALCULATOR](value, key);\n if (this[$233d77d4742ed838$var$CACHE].has(key)) {\n if (len > this[$233d77d4742ed838$var$MAX]) {\n $233d77d4742ed838$var$del(this, this[$233d77d4742ed838$var$CACHE].get(key));\n return false;\n }\n const node = this[$233d77d4742ed838$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$233d77d4742ed838$var$DISPOSE]) {\n if (!this[$233d77d4742ed838$var$NO_DISPOSE_ON_SET]) this[$233d77d4742ed838$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$233d77d4742ed838$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $233d77d4742ed838$var$trim(this);\n return true;\n }\n const hit = new $233d77d4742ed838$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$233d77d4742ed838$var$MAX]) {\n if (this[$233d77d4742ed838$var$DISPOSE]) this[$233d77d4742ed838$var$DISPOSE](key, value);\n return false;\n }\n this[$233d77d4742ed838$var$LENGTH] += hit.length;\n this[$233d77d4742ed838$var$LRU_LIST].unshift(hit);\n this[$233d77d4742ed838$var$CACHE].set(key, this[$233d77d4742ed838$var$LRU_LIST].head);\n $233d77d4742ed838$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$233d77d4742ed838$var$CACHE].has(key)) return false;\n const hit = this[$233d77d4742ed838$var$CACHE].get(key).value;\n return !$233d77d4742ed838$var$isStale(this, hit);\n }\n get(key) {\n return $233d77d4742ed838$var$get(this, key, true);\n }\n peek(key) {\n return $233d77d4742ed838$var$get(this, key, false);\n }\n pop() {\n const node = this[$233d77d4742ed838$var$LRU_LIST].tail;\n if (!node) return null;\n $233d77d4742ed838$var$del(this, node);\n return node.value;\n }\n del(key) {\n $233d77d4742ed838$var$del(this, this[$233d77d4742ed838$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$233d77d4742ed838$var$CACHE].forEach((value, key)=>$233d77d4742ed838$var$get(this, key, false));\n }\n}\nconst $233d77d4742ed838$var$get = (self, key, doUse)=>{\n const node = self[$233d77d4742ed838$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($233d77d4742ed838$var$isStale(self, hit)) {\n $233d77d4742ed838$var$del(self, node);\n if (!self[$233d77d4742ed838$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$233d77d4742ed838$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$233d77d4742ed838$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $233d77d4742ed838$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$233d77d4742ed838$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$233d77d4742ed838$var$MAX_AGE] && diff > self[$233d77d4742ed838$var$MAX_AGE];\n};\nconst $233d77d4742ed838$var$trim = (self)=>{\n if (self[$233d77d4742ed838$var$LENGTH] > self[$233d77d4742ed838$var$MAX]) for(let walker = self[$233d77d4742ed838$var$LRU_LIST].tail; self[$233d77d4742ed838$var$LENGTH] > self[$233d77d4742ed838$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $233d77d4742ed838$var$del(self, walker);\n walker = prev;\n }\n};\nconst $233d77d4742ed838$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$233d77d4742ed838$var$DISPOSE]) self[$233d77d4742ed838$var$DISPOSE](hit.key, hit.value);\n self[$233d77d4742ed838$var$LENGTH] -= hit.length;\n self[$233d77d4742ed838$var$CACHE].delete(hit.key);\n self[$233d77d4742ed838$var$LRU_LIST].removeNode(node);\n }\n};\nclass $233d77d4742ed838$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $233d77d4742ed838$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($233d77d4742ed838$var$isStale(self, hit)) {\n $233d77d4742ed838$var$del(self, node);\n if (!self[$233d77d4742ed838$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $233d77d4742ed838$var$LRUCache;\n\n});\nparcelRegister(\"i08Cw\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d1aee9e840285ba3$var$Yallist;\n$d1aee9e840285ba3$var$Yallist.Node = $d1aee9e840285ba3$var$Node;\n$d1aee9e840285ba3$var$Yallist.create = $d1aee9e840285ba3$var$Yallist;\nfunction $d1aee9e840285ba3$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $d1aee9e840285ba3$var$Yallist)) self = new $d1aee9e840285ba3$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$d1aee9e840285ba3$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$d1aee9e840285ba3$var$push(this, arguments[i]);\n return this.length;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$d1aee9e840285ba3$var$unshift(this, arguments[i]);\n return this.length;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$d1aee9e840285ba3$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$d1aee9e840285ba3$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $d1aee9e840285ba3$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $d1aee9e840285ba3$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $d1aee9e840285ba3$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $d1aee9e840285ba3$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $d1aee9e840285ba3$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $d1aee9e840285ba3$var$insert(self, node, value) {\n var inserted = node === self.head ? new $d1aee9e840285ba3$var$Node(value, null, node, self) : new $d1aee9e840285ba3$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $d1aee9e840285ba3$var$push(self, item) {\n self.tail = new $d1aee9e840285ba3$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $d1aee9e840285ba3$var$unshift(self, item) {\n self.head = new $d1aee9e840285ba3$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $d1aee9e840285ba3$var$Node(value, prev, next, list) {\n if (!(this instanceof $d1aee9e840285ba3$var$Node)) return new $d1aee9e840285ba3$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"5MZUR\"))($d1aee9e840285ba3$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"5MZUR\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"42oIR\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $2f0a86b5a65258ab$var$satisfies = (version, range, options)=>{\n try {\n range = new $bswWF(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $2f0a86b5a65258ab$var$satisfies;\n\n});\n\nparcelRegister(\"4zfp3\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\n// Mostly just for testing and legacy API reasons\nconst $3536610e76dfa838$var$toComparators = (range, options)=>new $bswWF(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $3536610e76dfa838$var$toComparators;\n\n});\n\nparcelRegister(\"ga5uZ\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $bc41d878d052b110$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $bswWF(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $8cXe9(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $bc41d878d052b110$var$maxSatisfying;\n\n});\n\nparcelRegister(\"lPGVL\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $fe4fa984faf344fb$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $bswWF(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $8cXe9(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $fe4fa984faf344fb$var$minSatisfying;\n\n});\n\nparcelRegister(\"1I8AA\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\nconst $13f0901f38b9c38e$var$minVersion = (range, loose)=>{\n range = new $bswWF(range, loose);\n let minver = new $8cXe9(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $8cXe9(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $8cXe9(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cOpcP(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cOpcP(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $13f0901f38b9c38e$var$minVersion;\n\n});\n\nparcelRegister(\"dBtft\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $028e47ec34506e56$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $bswWF(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $028e47ec34506e56$var$validRange;\n\n});\n\nparcelRegister(\"83Sp2\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\nconst { ANY: $5de8cdd25b195029$var$ANY } = $1bxhC;\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\n\nvar $58P10 = parcelRequire(\"58P10\");\n\nvar $hlfY9 = parcelRequire(\"hlfY9\");\n\nvar $3XWvL = parcelRequire(\"3XWvL\");\nconst $5de8cdd25b195029$var$outside = (version, range, hilo, options)=>{\n version = new $8cXe9(version, options);\n range = new $bswWF(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cOpcP;\n ltefn = $hlfY9;\n ltfn = $58P10;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $58P10;\n ltefn = $3XWvL;\n ltfn = $cOpcP;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($42oIR(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $5de8cdd25b195029$var$ANY) comparator = new $1bxhC(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $5de8cdd25b195029$var$outside;\n\n});\n\nparcelRegister(\"eK4my\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $83Sp2 = parcelRequire(\"83Sp2\");\nconst $abb8bee76fa63cbc$var$gtr = (version, range, options)=>$83Sp2(version, range, \">\", options);\nmodule.exports = $abb8bee76fa63cbc$var$gtr;\n\n});\n\nparcelRegister(\"eNXBI\", function(module, exports) {\n\nvar $83Sp2 = parcelRequire(\"83Sp2\");\n// Determine if version is less than all the versions possible in the range\nconst $ac73e10f90b51c3e$var$ltr = (version, range, options)=>$83Sp2(version, range, \"<\", options);\nmodule.exports = $ac73e10f90b51c3e$var$ltr;\n\n});\n\nparcelRegister(\"kHzUo\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $f123ad78b38d1607$var$intersects = (r1, r2, options)=>{\n r1 = new $bswWF(r1, options);\n r2 = new $bswWF(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $f123ad78b38d1607$var$intersects;\n\n});\n\nparcelRegister(\"1x2XZ\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$jDqfd(a, b, options));\n for (const version of v){\n const included = $42oIR(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"hTYir\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\nconst { ANY: $d086585c4d9c3926$var$ANY } = $1bxhC;\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $d086585c4d9c3926$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $bswWF(sub, options);\n dom = new $bswWF(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $d086585c4d9c3926$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $d086585c4d9c3926$var$minimumVersionWithPreRelease = [\n new $1bxhC(\">=0.0.0-0\")\n];\nconst $d086585c4d9c3926$var$minimumVersion = [\n new $1bxhC(\">=0.0.0\")\n];\nconst $d086585c4d9c3926$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $d086585c4d9c3926$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $d086585c4d9c3926$var$ANY) return true;\n else if (options.includePrerelease) sub = $d086585c4d9c3926$var$minimumVersionWithPreRelease;\n else sub = $d086585c4d9c3926$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $d086585c4d9c3926$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $d086585c4d9c3926$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $d086585c4d9c3926$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $d086585c4d9c3926$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $jDqfd(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$42oIR(eq, String(gt), options)) return null;\n if (lt && !$42oIR(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$42oIR(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $d086585c4d9c3926$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$42oIR(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $d086585c4d9c3926$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$42oIR(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $d086585c4d9c3926$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $jDqfd(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $d086585c4d9c3926$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $jDqfd(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $d086585c4d9c3926$var$subset;\n\n});\n\n\nparcelRegister(\"8CJZb\", function(module, exports) {\n\"use strict\";\nvar $64758b2fa15e88f6$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($64758b2fa15e88f6$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"6t4SD\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $4b593c9b16f6bd98$export$f8b9fb4db095815b);\n\nasync function $4b593c9b16f6bd98$export$f8b9fb4db095815b(path) {\n try {\n await (0, $4umf8$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $4b593c9b16f6bd98$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($4umf8$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"eAXk4\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $3d8ba83a43ccecc4$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $3d8ba83a43ccecc4$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $3d8ba83a43ccecc4$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $4umf8$path.dirname);\n$parcel$export(module.exports, \"join\", () => $4umf8$path.join);\n\n\nvar $f44Uw = parcelRequire(\"f44Uw\");\n\nvar $fBJE3 = parcelRequire(\"fBJE3\");\nfunction $3d8ba83a43ccecc4$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $3d8ba83a43ccecc4$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $3d8ba83a43ccecc4$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $4umf8$path.basename)(e) : (0, $4umf8$path.basename)(e, (0, $4umf8$path.extname)(e));\n}\nfunction $3d8ba83a43ccecc4$export$873fead74fe2f1ff(e) {\n return (0, $4umf8$path.normalize)(e).replace(RegExp((0, $f44Uw.default)((0, $4umf8$path.sep)) + \"$\"), \"\");\n}\nfunction $3d8ba83a43ccecc4$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3d8ba83a43ccecc4$export$3e333f8cb13439c(e, a) {\n const r = (0, $4umf8$path.extname)(e), s = `${a}${(0, $4umf8$path.basename)(e, r)}${r}`;\n return (0, $4umf8$path.join)((0, $4umf8$path.dirname)(e), s);\n}\nfunction $3d8ba83a43ccecc4$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $4umf8$path.extname)(e), s = `${(0, $4umf8$path.basename)(e, r)}${a}${r}`;\n return (0, $4umf8$path.join)((0, $4umf8$path.dirname)(e), s);\n}\nfunction $3d8ba83a43ccecc4$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3d8ba83a43ccecc4$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $3d8ba83a43ccecc4$export$19c5468f88f6e968(e) {\n const a = (0, $4umf8$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $3d8ba83a43ccecc4$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($fBJE3)))(e, a);\n}\nfunction $3d8ba83a43ccecc4$export$7d0573375890d05c(e, a) {\n const r = (0, $4umf8$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $4umf8$path.sep)) || r === (0, $4umf8$path.resolve)(e));\n}\nvar $3d8ba83a43ccecc4$var$O = {}, $3d8ba83a43ccecc4$var$R = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$R, \"name\", ()=>$3d8ba83a43ccecc4$export$a8ff84c12d48cfa6);\nvar $3d8ba83a43ccecc4$var$A = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$A, \"normalizeTrim\", ()=>$3d8ba83a43ccecc4$export$873fead74fe2f1ff);\nvar $3d8ba83a43ccecc4$var$I = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$I, \"addExeExt\", ()=>$3d8ba83a43ccecc4$export$2d20c564cade3c93);\nvar $3d8ba83a43ccecc4$var$T = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$T, \"addNamePrefix\", ()=>$3d8ba83a43ccecc4$export$3e333f8cb13439c);\nvar $3d8ba83a43ccecc4$var$_ = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$_, \"addNameSuffix\", ()=>$3d8ba83a43ccecc4$export$3b60a3e9bd1aef9d);\nvar $3d8ba83a43ccecc4$var$k = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$k, \"addShExt\", ()=>$3d8ba83a43ccecc4$export$609be29b80b555e1);\nvar $3d8ba83a43ccecc4$var$M = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$M, \"addShRelativePrefix\", ()=>$3d8ba83a43ccecc4$export$e1f23f8d3e53fe6);\nvar $3d8ba83a43ccecc4$var$W = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$W, \"removeExt\", ()=>$3d8ba83a43ccecc4$export$19c5468f88f6e968);\nvar $3d8ba83a43ccecc4$var$q = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$q, \"replaceExt\", ()=>$3d8ba83a43ccecc4$export$e9c34737ac8e53d2);\nvar $3d8ba83a43ccecc4$var$B = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$B, \"isPathInside\", ()=>$3d8ba83a43ccecc4$export$7d0573375890d05c), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$R), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$A), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$I), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$T), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$_), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$k), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$M), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$W), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$q), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$B);\n\n});\nparcelRegister(\"f44Uw\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $af7b09e757bea83c$export$2e2bcd8739ae039);\nfunction $af7b09e757bea83c$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"fBJE3\", function(module, exports) {\n\"use strict\";\n\nfunction $b5cdb7e29045d953$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $4umf8$path.basename(npath, $4umf8$path.extname(npath)) + ext;\n var nFilepath = $4umf8$path.join($4umf8$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($b5cdb7e29045d953$var$startsWithSingleDot(npath)) return \".\" + $4umf8$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $b5cdb7e29045d953$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $4umf8$path.sep || first2chars === \"./\";\n}\nmodule.exports = $b5cdb7e29045d953$var$replaceExt;\n\n});\n\n\nparcelRegister(\"zdagz\", function(module, exports) {\n\"use strict\";\nvar $069d7b36246212b5$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $069d7b36246212b5$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $069d7b36246212b5$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $069d7b36246212b5$var$__createBinding(result, mod, k);\n }\n $069d7b36246212b5$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $069d7b36246212b5$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $069d7b36246212b5$var$path = $069d7b36246212b5$var$__importStar($4umf8$path);\n\nconst $069d7b36246212b5$var$ioUtil = $069d7b36246212b5$var$__importStar((parcelRequire(\"fwMQK\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $069d7b36246212b5$var$cp(source, dest, options = {}) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $069d7b36246212b5$var$readCopyOptions(options);\n const destStat = (yield $069d7b36246212b5$var$ioUtil.exists(dest)) ? yield $069d7b36246212b5$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $069d7b36246212b5$var$path.join(dest, $069d7b36246212b5$var$path.basename(source)) : dest;\n if (!(yield $069d7b36246212b5$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $069d7b36246212b5$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $069d7b36246212b5$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($069d7b36246212b5$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $069d7b36246212b5$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $069d7b36246212b5$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $069d7b36246212b5$var$mv(source, dest, options = {}) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $069d7b36246212b5$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $069d7b36246212b5$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $069d7b36246212b5$var$path.join(dest, $069d7b36246212b5$var$path.basename(source));\n destExists = yield $069d7b36246212b5$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $069d7b36246212b5$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $069d7b36246212b5$var$mkdirP($069d7b36246212b5$var$path.dirname(dest));\n yield $069d7b36246212b5$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $069d7b36246212b5$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $069d7b36246212b5$var$rmRF(inputPath) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $069d7b36246212b5$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $069d7b36246212b5$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $069d7b36246212b5$var$mkdirP(fsPath) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n $4umf8$assert.ok(fsPath, \"a path argument must be provided\");\n yield $069d7b36246212b5$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $069d7b36246212b5$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $069d7b36246212b5$var$which(tool, check) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $069d7b36246212b5$var$which(tool, false);\n if (!result) {\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $069d7b36246212b5$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $069d7b36246212b5$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $069d7b36246212b5$var$findInPath(tool) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($069d7b36246212b5$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($069d7b36246212b5$var$ioUtil.isRooted(tool)) {\n const filePath = yield $069d7b36246212b5$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($069d7b36246212b5$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($069d7b36246212b5$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $069d7b36246212b5$var$ioUtil.tryGetExecutablePath($069d7b36246212b5$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $069d7b36246212b5$var$findInPath;\nfunction $069d7b36246212b5$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $069d7b36246212b5$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $069d7b36246212b5$var$mkdirP(destDir);\n const files = yield $069d7b36246212b5$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $069d7b36246212b5$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $069d7b36246212b5$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $069d7b36246212b5$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $069d7b36246212b5$var$ioUtil.chmod(destDir, (yield $069d7b36246212b5$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $069d7b36246212b5$var$copyFile(srcFile, destFile, force) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $069d7b36246212b5$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $069d7b36246212b5$var$ioUtil.lstat(destFile);\n yield $069d7b36246212b5$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $069d7b36246212b5$var$ioUtil.chmod(destFile, \"0666\");\n yield $069d7b36246212b5$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $069d7b36246212b5$var$ioUtil.readlink(srcFile);\n yield $069d7b36246212b5$var$ioUtil.symlink(symlinkFull, destFile, $069d7b36246212b5$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $069d7b36246212b5$var$ioUtil.exists(destFile)) || force) yield $069d7b36246212b5$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"fwMQK\", function(module, exports) {\n\"use strict\";\nvar $b4dfbcbe65695fe8$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $b4dfbcbe65695fe8$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $b4dfbcbe65695fe8$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $b4dfbcbe65695fe8$var$__createBinding(result, mod, k);\n }\n $b4dfbcbe65695fe8$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $b4dfbcbe65695fe8$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $b4dfbcbe65695fe8$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $b4dfbcbe65695fe8$var$fs = $b4dfbcbe65695fe8$var$__importStar($4umf8$fs);\n\nconst $b4dfbcbe65695fe8$var$path = $b4dfbcbe65695fe8$var$__importStar($4umf8$path);\n$b4dfbcbe65695fe8$var$_a = $b4dfbcbe65695fe8$var$fs.promises, module.exports.chmod = $b4dfbcbe65695fe8$var$_a.chmod, module.exports.copyFile = $b4dfbcbe65695fe8$var$_a.copyFile, module.exports.lstat = $b4dfbcbe65695fe8$var$_a.lstat, module.exports.mkdir = $b4dfbcbe65695fe8$var$_a.mkdir, module.exports.open = $b4dfbcbe65695fe8$var$_a.open, module.exports.readdir = $b4dfbcbe65695fe8$var$_a.readdir, module.exports.readlink = $b4dfbcbe65695fe8$var$_a.readlink, module.exports.rename = $b4dfbcbe65695fe8$var$_a.rename, module.exports.rm = $b4dfbcbe65695fe8$var$_a.rm, module.exports.rmdir = $b4dfbcbe65695fe8$var$_a.rmdir, module.exports.stat = $b4dfbcbe65695fe8$var$_a.stat, module.exports.symlink = $b4dfbcbe65695fe8$var$_a.symlink, module.exports.unlink = $b4dfbcbe65695fe8$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $b4dfbcbe65695fe8$var$fs.constants.O_RDONLY;\nfunction $b4dfbcbe65695fe8$var$exists(fsPath) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $b4dfbcbe65695fe8$var$exists;\nfunction $b4dfbcbe65695fe8$var$isDirectory(fsPath, useStat = false) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $b4dfbcbe65695fe8$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $b4dfbcbe65695fe8$var$isRooted(p) {\n p = $b4dfbcbe65695fe8$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $b4dfbcbe65695fe8$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $b4dfbcbe65695fe8$var$tryGetExecutablePath(filePath, extensions) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $b4dfbcbe65695fe8$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($b4dfbcbe65695fe8$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $b4dfbcbe65695fe8$var$path.dirname(filePath);\n const upperName = $b4dfbcbe65695fe8$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $b4dfbcbe65695fe8$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($b4dfbcbe65695fe8$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $b4dfbcbe65695fe8$var$tryGetExecutablePath;\nfunction $b4dfbcbe65695fe8$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $b4dfbcbe65695fe8$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $b4dfbcbe65695fe8$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $b4dfbcbe65695fe8$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"gn8Si\", function(module, exports) {\n\"use strict\";\nvar $beb5ada45dfdd93d$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $beb5ada45dfdd93d$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $beb5ada45dfdd93d$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $beb5ada45dfdd93d$var$__createBinding(result, mod, k);\n }\n $beb5ada45dfdd93d$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $beb5ada45dfdd93d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $beb5ada45dfdd93d$var$semver = $beb5ada45dfdd93d$var$__importStar((parcelRequire(\"0306Y\")));\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\n\n\nfunction $beb5ada45dfdd93d$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $beb5ada45dfdd93d$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $4umf8$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $1o3Gj.debug(`check ${version} satisfies ${versionSpec}`);\n if ($beb5ada45dfdd93d$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $1o3Gj.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $beb5ada45dfdd93d$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $1o3Gj.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $beb5ada45dfdd93d$var$_findMatch;\nfunction $beb5ada45dfdd93d$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $4umf8$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $4umf8$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $beb5ada45dfdd93d$var$_getOsVersion;\nfunction $beb5ada45dfdd93d$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($4umf8$fs.existsSync(lsbReleaseFile)) contents = $4umf8$fs.readFileSync(lsbReleaseFile).toString();\n else if ($4umf8$fs.existsSync(osReleaseFile)) contents = $4umf8$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $beb5ada45dfdd93d$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"0306Y\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"GX8zo\", function(module, exports) {\n\nvar $7qQbq = parcelRequire(\"7qQbq\");\n\nvar $c22IK = parcelRequire(\"c22IK\");\nfunction $0811cbc79176afae$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $7qQbq)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $c22IK(rnds);\n}\nmodule.exports = $0811cbc79176afae$var$v4;\n\n});\nparcelRegister(\"7qQbq\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $4umf8$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"c22IK\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $8c27c83ef5b4f27e$var$byteToHex = [];\nfor(var $8c27c83ef5b4f27e$var$i = 0; $8c27c83ef5b4f27e$var$i < 256; ++$8c27c83ef5b4f27e$var$i)$8c27c83ef5b4f27e$var$byteToHex[$8c27c83ef5b4f27e$var$i] = ($8c27c83ef5b4f27e$var$i + 0x100).toString(16).substr(1);\nfunction $8c27c83ef5b4f27e$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $8c27c83ef5b4f27e$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $8c27c83ef5b4f27e$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"bHzmH\", function(module, exports) {\n\"use strict\";\nvar $884f249efde1efb4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $884f249efde1efb4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $884f249efde1efb4$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $884f249efde1efb4$var$__createBinding(result, mod, k);\n }\n $884f249efde1efb4$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $884f249efde1efb4$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $884f249efde1efb4$var$tr = $884f249efde1efb4$var$__importStar((parcelRequire(\"iYbsa\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $884f249efde1efb4$var$exec(commandLine, args, options) {\n return $884f249efde1efb4$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $884f249efde1efb4$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $884f249efde1efb4$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $884f249efde1efb4$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $884f249efde1efb4$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $884f249efde1efb4$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $4umf8$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $4umf8$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $884f249efde1efb4$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $884f249efde1efb4$var$getExecOutput;\n\n});\nparcelRegister(\"iYbsa\", function(module, exports) {\n\"use strict\";\nvar $dcf6b6fa3b8725c1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $dcf6b6fa3b8725c1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $dcf6b6fa3b8725c1$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $dcf6b6fa3b8725c1$var$__createBinding(result, mod, k);\n }\n $dcf6b6fa3b8725c1$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $dcf6b6fa3b8725c1$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $dcf6b6fa3b8725c1$var$os = $dcf6b6fa3b8725c1$var$__importStar($4umf8$os);\n\nconst $dcf6b6fa3b8725c1$var$events = $dcf6b6fa3b8725c1$var$__importStar($4umf8$events);\n\nconst $dcf6b6fa3b8725c1$var$child = $dcf6b6fa3b8725c1$var$__importStar($4umf8$child_process);\n\nconst $dcf6b6fa3b8725c1$var$path = $dcf6b6fa3b8725c1$var$__importStar($4umf8$path);\n\nconst $dcf6b6fa3b8725c1$var$io = $dcf6b6fa3b8725c1$var$__importStar((parcelRequire(\"zdagz\")));\n\nconst $dcf6b6fa3b8725c1$var$ioUtil = $dcf6b6fa3b8725c1$var$__importStar((parcelRequire(\"fwMQK\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $dcf6b6fa3b8725c1$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $dcf6b6fa3b8725c1$var$ToolRunner extends $dcf6b6fa3b8725c1$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($dcf6b6fa3b8725c1$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $dcf6b6fa3b8725c1$var$os.EOL.length);\n n = s.indexOf($dcf6b6fa3b8725c1$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $dcf6b6fa3b8725c1$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$dcf6b6fa3b8725c1$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $dcf6b6fa3b8725c1$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $dcf6b6fa3b8725c1$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $dcf6b6fa3b8725c1$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$dcf6b6fa3b8725c1$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $dcf6b6fa3b8725c1$var$os.EOL);\n const state = new $dcf6b6fa3b8725c1$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $dcf6b6fa3b8725c1$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $dcf6b6fa3b8725c1$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $dcf6b6fa3b8725c1$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $dcf6b6fa3b8725c1$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $dcf6b6fa3b8725c1$var$argStringToArray;\nclass $dcf6b6fa3b8725c1$var$ExecState extends $dcf6b6fa3b8725c1$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $4umf8$timers.setTimeout($dcf6b6fa3b8725c1$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"fEioR\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.c7411d6b.js\")).then(()=>parcelRequire(\"8L9T2\"));\n\n});\n\nparcelRegister(\"7fBnG\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $5476ee37c692e534$export$1059c6e7d2ce5669, (v) => $5476ee37c692e534$export$1059c6e7d2ce5669 = v);\nvar $5476ee37c692e534$export$181392475aa39887;\nvar $5476ee37c692e534$export$ba13e0e2f19e61a1;\nvar $5476ee37c692e534$export$1059c6e7d2ce5669;\n\nvar $e95yL = parcelRequire(\"e95yL\");\n\nvar $7KjWO = parcelRequire(\"7KjWO\");\n\nvar $aeYiS = parcelRequire(\"aeYiS\");\n\nvar $aKT05 = parcelRequire(\"aKT05\");\nvar $5476ee37c692e534$var$DOMImplementation = $7KjWO.DOMImplementation;\nvar $5476ee37c692e534$var$NAMESPACE = $e95yL.NAMESPACE;\nvar $5476ee37c692e534$var$ParseError = $aKT05.ParseError;\nvar $5476ee37c692e534$var$XMLReader = $aKT05.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $5476ee37c692e534$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $5476ee37c692e534$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$5476ee37c692e534$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $5476ee37c692e534$var$XMLReader();\n var domBuilder = options.domBuilder || new $5476ee37c692e534$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $aeYiS.HTML_ENTITIES : $aeYiS.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $5476ee37c692e534$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $5476ee37c692e534$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $5476ee37c692e534$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $5476ee37c692e534$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $5476ee37c692e534$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $5476ee37c692e534$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $5476ee37c692e534$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $5476ee37c692e534$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $5476ee37c692e534$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $5476ee37c692e534$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $5476ee37c692e534$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $5476ee37c692e534$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $5476ee37c692e534$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $5476ee37c692e534$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $5476ee37c692e534$var$position(this.locator, ins);\n $5476ee37c692e534$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $5476ee37c692e534$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $5476ee37c692e534$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $5476ee37c692e534$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $5476ee37c692e534$var$position(this.locator, comm);\n $5476ee37c692e534$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $5476ee37c692e534$var$position(this.locator, dt);\n $5476ee37c692e534$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $5476ee37c692e534$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $5476ee37c692e534$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $5476ee37c692e534$var$ParseError(error, this.locator);\n }\n};\nfunction $5476ee37c692e534$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $5476ee37c692e534$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $5476ee37c692e534$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $5476ee37c692e534$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$5476ee37c692e534$export$181392475aa39887 = $5476ee37c692e534$var$DOMHandler;\n$5476ee37c692e534$export$ba13e0e2f19e61a1 = $5476ee37c692e534$var$normalizeLineEndings;\n$5476ee37c692e534$export$1059c6e7d2ce5669 = $5476ee37c692e534$var$DOMParser;\n\n});\nparcelRegister(\"e95yL\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $a4c637fd9eb8068b$export$71aa6c912b956294, (v) => $a4c637fd9eb8068b$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $a4c637fd9eb8068b$export$792f3d81ea979f55, (v) => $a4c637fd9eb8068b$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $a4c637fd9eb8068b$export$6aad947bda0f3f46, (v) => $a4c637fd9eb8068b$export$6aad947bda0f3f46 = v);\nvar $a4c637fd9eb8068b$export$e6e34fd1f2686227;\nvar $a4c637fd9eb8068b$export$71aa6c912b956294;\nvar $a4c637fd9eb8068b$export$792f3d81ea979f55;\nvar $a4c637fd9eb8068b$export$c6cb9dd1e3ada1aa;\nvar $a4c637fd9eb8068b$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $a4c637fd9eb8068b$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $a4c637fd9eb8068b$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $a4c637fd9eb8068b$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $a4c637fd9eb8068b$var$MIME_TYPE = $a4c637fd9eb8068b$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $a4c637fd9eb8068b$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $a4c637fd9eb8068b$var$NAMESPACE = $a4c637fd9eb8068b$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $a4c637fd9eb8068b$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$a4c637fd9eb8068b$export$e6e34fd1f2686227 = $a4c637fd9eb8068b$var$assign;\n$a4c637fd9eb8068b$export$71aa6c912b956294 = $a4c637fd9eb8068b$var$find;\n$a4c637fd9eb8068b$export$792f3d81ea979f55 = $a4c637fd9eb8068b$var$freeze;\n$a4c637fd9eb8068b$export$c6cb9dd1e3ada1aa = $a4c637fd9eb8068b$var$MIME_TYPE;\n$a4c637fd9eb8068b$export$6aad947bda0f3f46 = $a4c637fd9eb8068b$var$NAMESPACE;\n\n});\n\nparcelRegister(\"7KjWO\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $5a3c4d7844d4e662$export$455426655eab1d48, (v) => $5a3c4d7844d4e662$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $5a3c4d7844d4e662$export$64f0bed4ae6f0f24, (v) => $5a3c4d7844d4e662$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $5a3c4d7844d4e662$export$d1d99cf900472499;\nvar $5a3c4d7844d4e662$export$fe58bcf938607f6a;\nvar $5a3c4d7844d4e662$export$455426655eab1d48;\nvar $5a3c4d7844d4e662$export$db77ccec0bb4ccac;\nvar $5a3c4d7844d4e662$export$85c928794f8d04d4;\nvar $5a3c4d7844d4e662$export$79b41aa5d56abdff;\nvar $5a3c4d7844d4e662$export$64f0bed4ae6f0f24;\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $5a3c4d7844d4e662$var$find = $e95yL.find;\nvar $5a3c4d7844d4e662$var$NAMESPACE = $e95yL.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $5a3c4d7844d4e662$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($5a3c4d7844d4e662$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $5a3c4d7844d4e662$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $5a3c4d7844d4e662$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $5a3c4d7844d4e662$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($5a3c4d7844d4e662$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $5a3c4d7844d4e662$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $5a3c4d7844d4e662$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $5a3c4d7844d4e662$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $5a3c4d7844d4e662$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $5a3c4d7844d4e662$var$NodeType = {};\nvar $5a3c4d7844d4e662$var$ELEMENT_NODE = $5a3c4d7844d4e662$var$NodeType.ELEMENT_NODE = 1;\nvar $5a3c4d7844d4e662$var$ATTRIBUTE_NODE = $5a3c4d7844d4e662$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $5a3c4d7844d4e662$var$TEXT_NODE = $5a3c4d7844d4e662$var$NodeType.TEXT_NODE = 3;\nvar $5a3c4d7844d4e662$var$CDATA_SECTION_NODE = $5a3c4d7844d4e662$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE = $5a3c4d7844d4e662$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $5a3c4d7844d4e662$var$ENTITY_NODE = $5a3c4d7844d4e662$var$NodeType.ENTITY_NODE = 6;\nvar $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE = $5a3c4d7844d4e662$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $5a3c4d7844d4e662$var$COMMENT_NODE = $5a3c4d7844d4e662$var$NodeType.COMMENT_NODE = 8;\nvar $5a3c4d7844d4e662$var$DOCUMENT_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_NODE = 9;\nvar $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $5a3c4d7844d4e662$var$NOTATION_NODE = $5a3c4d7844d4e662$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $5a3c4d7844d4e662$var$ExceptionCode = {};\nvar $5a3c4d7844d4e662$var$ExceptionMessage = {};\nvar $5a3c4d7844d4e662$var$INDEX_SIZE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INDEX_SIZE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $5a3c4d7844d4e662$var$DOMSTRING_SIZE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR = $5a3c4d7844d4e662$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $5a3c4d7844d4e662$var$WRONG_DOCUMENT_ERR = $5a3c4d7844d4e662$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $5a3c4d7844d4e662$var$INVALID_CHARACTER_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_CHARACTER_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $5a3c4d7844d4e662$var$NO_DATA_ALLOWED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $5a3c4d7844d4e662$var$NO_MODIFICATION_ALLOWED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $5a3c4d7844d4e662$var$NOT_FOUND_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NOT_FOUND_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $5a3c4d7844d4e662$var$NOT_SUPPORTED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NOT_SUPPORTED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $5a3c4d7844d4e662$var$INVALID_STATE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_STATE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $5a3c4d7844d4e662$var$SYNTAX_ERR = $5a3c4d7844d4e662$var$ExceptionCode.SYNTAX_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $5a3c4d7844d4e662$var$INVALID_MODIFICATION_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $5a3c4d7844d4e662$var$NAMESPACE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NAMESPACE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $5a3c4d7844d4e662$var$INVALID_ACCESS_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_ACCESS_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $5a3c4d7844d4e662$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $5a3c4d7844d4e662$var$ExceptionMessage[code]);\n this.message = $5a3c4d7844d4e662$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $5a3c4d7844d4e662$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$5a3c4d7844d4e662$var$DOMException.prototype = Error.prototype;\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$ExceptionCode, $5a3c4d7844d4e662$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $5a3c4d7844d4e662$var$NodeList() {}\n$5a3c4d7844d4e662$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$5a3c4d7844d4e662$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $5a3c4d7844d4e662$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $5a3c4d7844d4e662$var$_updateLiveList(this);\n}\nfunction $5a3c4d7844d4e662$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $5a3c4d7844d4e662$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $5a3c4d7844d4e662$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$5a3c4d7844d4e662$var$LiveNodeList.prototype.item = function(i) {\n $5a3c4d7844d4e662$var$_updateLiveList(this);\n return this[i] || null;\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$LiveNodeList, $5a3c4d7844d4e662$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $5a3c4d7844d4e662$var$NamedNodeMap() {}\nfunction $5a3c4d7844d4e662$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $5a3c4d7844d4e662$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$5a3c4d7844d4e662$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, oldAttr);\n $5a3c4d7844d4e662$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $5a3c4d7844d4e662$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $5a3c4d7844d4e662$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$5a3c4d7844d4e662$var$NamedNodeMap.prototype = {\n length: 0,\n item: $5a3c4d7844d4e662$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $5a3c4d7844d4e662$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $5a3c4d7844d4e662$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $5a3c4d7844d4e662$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $5a3c4d7844d4e662$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $5a3c4d7844d4e662$var$DOMImplementation() {}\n$5a3c4d7844d4e662$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $5a3c4d7844d4e662$var$Document();\n doc.implementation = this;\n doc.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $5a3c4d7844d4e662$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $5a3c4d7844d4e662$var$Node() {}\n$5a3c4d7844d4e662$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $5a3c4d7844d4e662$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, oldChild, $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $5a3c4d7844d4e662$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $5a3c4d7844d4e662$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $5a3c4d7844d4e662$var$TEXT_NODE && child.nodeType == $5a3c4d7844d4e662$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $5a3c4d7844d4e662$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $5a3c4d7844d4e662$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $5a3c4d7844d4e662$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$NodeType, $5a3c4d7844d4e662$var$Node);\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$NodeType, $5a3c4d7844d4e662$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $5a3c4d7844d4e662$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($5a3c4d7844d4e662$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $5a3c4d7844d4e662$var$Document() {\n this.ownerDocument = this;\n}\nfunction $5a3c4d7844d4e662$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $5a3c4d7844d4e662$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $5a3c4d7844d4e662$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $5a3c4d7844d4e662$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$hasInsertableNodeType(node) {\n return node && ($5a3c4d7844d4e662$var$isElementNode(node) || $5a3c4d7844d4e662$var$isTextNode(node) || $5a3c4d7844d4e662$var$isDocTypeNode(node) || node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.COMMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isDocTypeNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isElementNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isTextNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode) || $5a3c4d7844d4e662$var$isDocTypeNode(child)) return false;\n var docTypeNode = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $5a3c4d7844d4e662$var$isElementNode(node) && node !== child;\n }\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$5a3c4d7844d4e662$var$hasValidParentNodeType(parent)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$5a3c4d7844d4e662$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $5a3c4d7844d4e662$var$isDocTypeNode(node) && parent.nodeType !== $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($5a3c4d7844d4e662$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $5a3c4d7844d4e662$var$find(nodeChildNodes, $5a3c4d7844d4e662$var$isTextNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$5a3c4d7844d4e662$var$isElementInsertionPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($5a3c4d7844d4e662$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$5a3c4d7844d4e662$var$isElementInsertionPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($5a3c4d7844d4e662$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($5a3c4d7844d4e662$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $5a3c4d7844d4e662$var$find(nodeChildNodes, $5a3c4d7844d4e662$var$isTextNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$5a3c4d7844d4e662$var$isElementReplacementPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($5a3c4d7844d4e662$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$5a3c4d7844d4e662$var$isElementReplacementPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($5a3c4d7844d4e662$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $5a3c4d7844d4e662$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $5a3c4d7844d4e662$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $5a3c4d7844d4e662$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $5a3c4d7844d4e662$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $5a3c4d7844d4e662$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $5a3c4d7844d4e662$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$5a3c4d7844d4e662$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $5a3c4d7844d4e662$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $5a3c4d7844d4e662$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, oldChild, $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($5a3c4d7844d4e662$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $5a3c4d7844d4e662$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $5a3c4d7844d4e662$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $5a3c4d7844d4e662$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $5a3c4d7844d4e662$var$toOrderedSet(classNames);\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $5a3c4d7844d4e662$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $5a3c4d7844d4e662$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($5a3c4d7844d4e662$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $5a3c4d7844d4e662$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n var attrs = node.attributes = new $5a3c4d7844d4e662$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $5a3c4d7844d4e662$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $5a3c4d7844d4e662$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $5a3c4d7844d4e662$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $5a3c4d7844d4e662$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $5a3c4d7844d4e662$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $5a3c4d7844d4e662$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $5a3c4d7844d4e662$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $5a3c4d7844d4e662$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $5a3c4d7844d4e662$var$NamedNodeMap();\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $5a3c4d7844d4e662$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Document, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Element() {\n this._nsMap = {};\n}\n$5a3c4d7844d4e662$var$Element.prototype = {\n nodeType: $5a3c4d7844d4e662$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $5a3c4d7844d4e662$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n $5a3c4d7844d4e662$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $5a3c4d7844d4e662$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n $5a3c4d7844d4e662$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$5a3c4d7844d4e662$var$Document.prototype.getElementsByTagName = $5a3c4d7844d4e662$var$Element.prototype.getElementsByTagName;\n$5a3c4d7844d4e662$var$Document.prototype.getElementsByTagNameNS = $5a3c4d7844d4e662$var$Element.prototype.getElementsByTagNameNS;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Element, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Attr() {}\n$5a3c4d7844d4e662$var$Attr.prototype.nodeType = $5a3c4d7844d4e662$var$ATTRIBUTE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Attr, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$CharacterData() {}\n$5a3c4d7844d4e662$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($5a3c4d7844d4e662$var$ExceptionMessage[$5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$CharacterData, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Text() {}\n$5a3c4d7844d4e662$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $5a3c4d7844d4e662$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Text, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$Comment() {}\n$5a3c4d7844d4e662$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $5a3c4d7844d4e662$var$COMMENT_NODE\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Comment, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$CDATASection() {}\n$5a3c4d7844d4e662$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $5a3c4d7844d4e662$var$CDATA_SECTION_NODE\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$CDATASection, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$DocumentType() {}\n$5a3c4d7844d4e662$var$DocumentType.prototype.nodeType = $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$DocumentType, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Notation() {}\n$5a3c4d7844d4e662$var$Notation.prototype.nodeType = $5a3c4d7844d4e662$var$NOTATION_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Notation, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Entity() {}\n$5a3c4d7844d4e662$var$Entity.prototype.nodeType = $5a3c4d7844d4e662$var$ENTITY_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Entity, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$EntityReference() {}\n$5a3c4d7844d4e662$var$EntityReference.prototype.nodeType = $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$EntityReference, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$DocumentFragment() {}\n$5a3c4d7844d4e662$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$5a3c4d7844d4e662$var$DocumentFragment.prototype.nodeType = $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$DocumentFragment, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$ProcessingInstruction() {}\n$5a3c4d7844d4e662$var$ProcessingInstruction.prototype.nodeType = $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$ProcessingInstruction, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$XMLSerializer() {}\n$5a3c4d7844d4e662$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $5a3c4d7844d4e662$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$5a3c4d7844d4e662$var$Node.prototype.toString = $5a3c4d7844d4e662$var$nodeSerializeToString;\nfunction $5a3c4d7844d4e662$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $5a3c4d7844d4e662$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $5a3c4d7844d4e662$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $5a3c4d7844d4e662$var$NAMESPACE.XML || uri === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $5a3c4d7844d4e662$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $5a3c4d7844d4e662$var$_xmlEncoder), '\"');\n}\nfunction $5a3c4d7844d4e662$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $5a3c4d7844d4e662$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $5a3c4d7844d4e662$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($5a3c4d7844d4e662$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $5a3c4d7844d4e662$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $5a3c4d7844d4e662$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $5a3c4d7844d4e662$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $5a3c4d7844d4e662$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $5a3c4d7844d4e662$var$DOCUMENT_NODE:\n case $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $5a3c4d7844d4e662$var$ATTRIBUTE_NODE:\n return $5a3c4d7844d4e662$var$addSerializedAttribute(buf, node.name, node.value);\n case $5a3c4d7844d4e662$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $5a3c4d7844d4e662$var$_xmlEncoder));\n case $5a3c4d7844d4e662$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$COMMENT_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $5a3c4d7844d4e662$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $5a3c4d7844d4e662$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $7749fd2f6249d805$export$91f0e5ff03dc84f, (v) => $7749fd2f6249d805$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $7749fd2f6249d805$export$b7e4d4631df36afa, (v) => $7749fd2f6249d805$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $7749fd2f6249d805$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $7749fd2f6249d805$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $7749fd2f6249d805$export$79451380caed3f98;\n\"use strict\";\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $7749fd2f6249d805$require$freeze = $e95yL.freeze;\n$7749fd2f6249d805$export$91f0e5ff03dc84f = $7749fd2f6249d805$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$7749fd2f6249d805$export$b7e4d4631df36afa = $7749fd2f6249d805$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$7749fd2f6249d805$export$79451380caed3f98 = $7749fd2f6249d805$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"aKT05\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $7d48dd32ae42de33$export$ccbc9f9f018333e9, (v) => $7d48dd32ae42de33$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $7d48dd32ae42de33$export$f9c837a54db411d, (v) => $7d48dd32ae42de33$export$f9c837a54db411d = v);\nvar $7d48dd32ae42de33$export$ccbc9f9f018333e9;\nvar $7d48dd32ae42de33$export$f9c837a54db411d;\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $7d48dd32ae42de33$require$NAMESPACE = $e95yL.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $7d48dd32ae42de33$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $7d48dd32ae42de33$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $7d48dd32ae42de33$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $7d48dd32ae42de33$var$tagNamePattern = new RegExp(\"^\" + $7d48dd32ae42de33$var$nameStartChar.source + $7d48dd32ae42de33$var$nameChar.source + \"*(?::\" + $7d48dd32ae42de33$var$nameStartChar.source + $7d48dd32ae42de33$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $7d48dd32ae42de33$var$S_TAG = 0; //tag name offerring\nvar $7d48dd32ae42de33$var$S_ATTR = 1; //attr name offerring\nvar $7d48dd32ae42de33$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $7d48dd32ae42de33$var$S_EQ = 3; //=space?\nvar $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $7d48dd32ae42de33$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $7d48dd32ae42de33$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $7d48dd32ae42de33$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $7d48dd32ae42de33$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $7d48dd32ae42de33$var$ParseError);\n}\n$7d48dd32ae42de33$var$ParseError.prototype = new Error();\n$7d48dd32ae42de33$var$ParseError.prototype.name = $7d48dd32ae42de33$var$ParseError.name;\nfunction $7d48dd32ae42de33$var$XMLReader() {}\n$7d48dd32ae42de33$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $7d48dd32ae42de33$var$_copy(defaultNSMap, defaultNSMap = {});\n $7d48dd32ae42de33$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $7d48dd32ae42de33$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $7d48dd32ae42de33$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $7d48dd32ae42de33$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $7d48dd32ae42de33$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $7d48dd32ae42de33$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $7d48dd32ae42de33$var$S_EQ;\n } else if (s === $7d48dd32ae42de33$var$S_ATTR_SPACE) s = $7d48dd32ae42de33$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $7d48dd32ae42de33$var$S_EQ || s === $7d48dd32ae42de33$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $7d48dd32ae42de33$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $7d48dd32ae42de33$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $7d48dd32ae42de33$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $7d48dd32ae42de33$var$S_ATTR_END:\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n s = $7d48dd32ae42de33$var$S_TAG_CLOSE;\n el.closed = true;\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n case $7d48dd32ae42de33$var$S_ATTR:\n break;\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $7d48dd32ae42de33$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $7d48dd32ae42de33$var$S_ATTR_END:\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n break; //normal\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n case $7d48dd32ae42de33$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n if (s === $7d48dd32ae42de33$var$S_ATTR_SPACE) value = attrName;\n if (s == $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$7d48dd32ae42de33$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $7d48dd32ae42de33$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $7d48dd32ae42de33$var$S_TAG_SPACE;\n break;\n case $7d48dd32ae42de33$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $7d48dd32ae42de33$var$S_ATTR_SPACE;\n break;\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $7d48dd32ae42de33$var$S_ATTR_END:\n s = $7d48dd32ae42de33$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$7d48dd32ae42de33$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $7d48dd32ae42de33$var$S_ATTR;\n break;\n case $7d48dd32ae42de33$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n s = $7d48dd32ae42de33$var$S_ATTR;\n start = p;\n break;\n case $7d48dd32ae42de33$var$S_EQ:\n s = $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $7d48dd32ae42de33$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $7d48dd32ae42de33$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $7d48dd32ae42de33$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $7d48dd32ae42de33$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $7d48dd32ae42de33$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $7d48dd32ae42de33$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.c7411d6b.js\"))).then(() => parcelRequire('8L9T2'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $857bdd786d7ea570$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceTilde(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.TILDELOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $jl9Uf(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($857bdd786d7ea570$var$isX(M)) ret = \"\";\n else if ($857bdd786d7ea570$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $jl9Uf(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $jl9Uf(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $857bdd786d7ea570$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceCaret(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceCaret = (comp, options)=>{\n $jl9Uf(\"caret\", comp, options);\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.CARETLOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $jl9Uf(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($857bdd786d7ea570$var$isX(M)) ret = \"\";\n else if ($857bdd786d7ea570$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $jl9Uf(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $jl9Uf(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $jl9Uf(\"caret return\", ret);\n return ret;\n });\n};\nconst $857bdd786d7ea570$var$replaceXRanges = (comp, options)=>{\n $jl9Uf(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$857bdd786d7ea570$var$replaceXRange(c, options)).join(\" \");\n};\nconst $857bdd786d7ea570$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.XRANGELOOSE] : $857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $jl9Uf(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $857bdd786d7ea570$var$isX(M);\n const xm = xM || $857bdd786d7ea570$var$isX(m);\n const xp = xm || $857bdd786d7ea570$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $jl9Uf(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $857bdd786d7ea570$var$replaceStars = (comp, options)=>{\n $jl9Uf(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($857bdd786d7ea570$require$re[$857bdd786d7ea570$require$t.STAR], \"\");\n};\nconst $857bdd786d7ea570$var$replaceGTE0 = (comp, options)=>{\n $jl9Uf(\"replaceGTE0\", comp, options);\n return comp.trim().replace($857bdd786d7ea570$require$re[options.includePrerelease ? $857bdd786d7ea570$require$t.GTE0PRE : $857bdd786d7ea570$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $857bdd786d7ea570$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($857bdd786d7ea570$var$isX(fM)) from = \"\";\n else if ($857bdd786d7ea570$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($857bdd786d7ea570$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($857bdd786d7ea570$var$isX(tM)) to = \"\";\n else if ($857bdd786d7ea570$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($857bdd786d7ea570$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $857bdd786d7ea570$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $jl9Uf(set[i].semver);\n if (set[i].semver === $1bxhC.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"31A6g\", function(module, exports) {\n\"use strict\";\n\nvar $i08Cw = parcelRequire(\"i08Cw\");\nconst $233d77d4742ed838$var$MAX = Symbol(\"max\");\nconst $233d77d4742ed838$var$LENGTH = Symbol(\"length\");\nconst $233d77d4742ed838$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $233d77d4742ed838$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $233d77d4742ed838$var$MAX_AGE = Symbol(\"maxAge\");\nconst $233d77d4742ed838$var$DISPOSE = Symbol(\"dispose\");\nconst $233d77d4742ed838$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $233d77d4742ed838$var$LRU_LIST = Symbol(\"lruList\");\nconst $233d77d4742ed838$var$CACHE = Symbol(\"cache\");\nconst $233d77d4742ed838$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $233d77d4742ed838$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $233d77d4742ed838$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$233d77d4742ed838$var$MAX] = options.max || Infinity;\n const lc = options.length || $233d77d4742ed838$var$naiveLength;\n this[$233d77d4742ed838$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $233d77d4742ed838$var$naiveLength : lc;\n this[$233d77d4742ed838$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$233d77d4742ed838$var$MAX_AGE] = options.maxAge || 0;\n this[$233d77d4742ed838$var$DISPOSE] = options.dispose;\n this[$233d77d4742ed838$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$233d77d4742ed838$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$233d77d4742ed838$var$MAX] = mL || Infinity;\n $233d77d4742ed838$var$trim(this);\n }\n get max() {\n return this[$233d77d4742ed838$var$MAX];\n }\n set allowStale(allowStale) {\n this[$233d77d4742ed838$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$233d77d4742ed838$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$233d77d4742ed838$var$MAX_AGE] = mA;\n $233d77d4742ed838$var$trim(this);\n }\n get maxAge() {\n return this[$233d77d4742ed838$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $233d77d4742ed838$var$naiveLength;\n if (lC !== this[$233d77d4742ed838$var$LENGTH_CALCULATOR]) {\n this[$233d77d4742ed838$var$LENGTH_CALCULATOR] = lC;\n this[$233d77d4742ed838$var$LENGTH] = 0;\n this[$233d77d4742ed838$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$233d77d4742ed838$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$233d77d4742ed838$var$LENGTH] += hit.length;\n });\n }\n $233d77d4742ed838$var$trim(this);\n }\n get lengthCalculator() {\n return this[$233d77d4742ed838$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$233d77d4742ed838$var$LENGTH];\n }\n get itemCount() {\n return this[$233d77d4742ed838$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$233d77d4742ed838$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $233d77d4742ed838$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$233d77d4742ed838$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $233d77d4742ed838$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$233d77d4742ed838$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$233d77d4742ed838$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$233d77d4742ed838$var$DISPOSE] && this[$233d77d4742ed838$var$LRU_LIST] && this[$233d77d4742ed838$var$LRU_LIST].length) this[$233d77d4742ed838$var$LRU_LIST].forEach((hit)=>this[$233d77d4742ed838$var$DISPOSE](hit.key, hit.value));\n this[$233d77d4742ed838$var$CACHE] = new Map() // hash of items by key\n ;\n this[$233d77d4742ed838$var$LRU_LIST] = new $i08Cw() // list of items in order of use recency\n ;\n this[$233d77d4742ed838$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$233d77d4742ed838$var$LRU_LIST].map((hit)=>$233d77d4742ed838$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$233d77d4742ed838$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$233d77d4742ed838$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$233d77d4742ed838$var$LENGTH_CALCULATOR](value, key);\n if (this[$233d77d4742ed838$var$CACHE].has(key)) {\n if (len > this[$233d77d4742ed838$var$MAX]) {\n $233d77d4742ed838$var$del(this, this[$233d77d4742ed838$var$CACHE].get(key));\n return false;\n }\n const node = this[$233d77d4742ed838$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$233d77d4742ed838$var$DISPOSE]) {\n if (!this[$233d77d4742ed838$var$NO_DISPOSE_ON_SET]) this[$233d77d4742ed838$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$233d77d4742ed838$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $233d77d4742ed838$var$trim(this);\n return true;\n }\n const hit = new $233d77d4742ed838$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$233d77d4742ed838$var$MAX]) {\n if (this[$233d77d4742ed838$var$DISPOSE]) this[$233d77d4742ed838$var$DISPOSE](key, value);\n return false;\n }\n this[$233d77d4742ed838$var$LENGTH] += hit.length;\n this[$233d77d4742ed838$var$LRU_LIST].unshift(hit);\n this[$233d77d4742ed838$var$CACHE].set(key, this[$233d77d4742ed838$var$LRU_LIST].head);\n $233d77d4742ed838$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$233d77d4742ed838$var$CACHE].has(key)) return false;\n const hit = this[$233d77d4742ed838$var$CACHE].get(key).value;\n return !$233d77d4742ed838$var$isStale(this, hit);\n }\n get(key) {\n return $233d77d4742ed838$var$get(this, key, true);\n }\n peek(key) {\n return $233d77d4742ed838$var$get(this, key, false);\n }\n pop() {\n const node = this[$233d77d4742ed838$var$LRU_LIST].tail;\n if (!node) return null;\n $233d77d4742ed838$var$del(this, node);\n return node.value;\n }\n del(key) {\n $233d77d4742ed838$var$del(this, this[$233d77d4742ed838$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$233d77d4742ed838$var$CACHE].forEach((value, key)=>$233d77d4742ed838$var$get(this, key, false));\n }\n}\nconst $233d77d4742ed838$var$get = (self, key, doUse)=>{\n const node = self[$233d77d4742ed838$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($233d77d4742ed838$var$isStale(self, hit)) {\n $233d77d4742ed838$var$del(self, node);\n if (!self[$233d77d4742ed838$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$233d77d4742ed838$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$233d77d4742ed838$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $233d77d4742ed838$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$233d77d4742ed838$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$233d77d4742ed838$var$MAX_AGE] && diff > self[$233d77d4742ed838$var$MAX_AGE];\n};\nconst $233d77d4742ed838$var$trim = (self)=>{\n if (self[$233d77d4742ed838$var$LENGTH] > self[$233d77d4742ed838$var$MAX]) for(let walker = self[$233d77d4742ed838$var$LRU_LIST].tail; self[$233d77d4742ed838$var$LENGTH] > self[$233d77d4742ed838$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $233d77d4742ed838$var$del(self, walker);\n walker = prev;\n }\n};\nconst $233d77d4742ed838$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$233d77d4742ed838$var$DISPOSE]) self[$233d77d4742ed838$var$DISPOSE](hit.key, hit.value);\n self[$233d77d4742ed838$var$LENGTH] -= hit.length;\n self[$233d77d4742ed838$var$CACHE].delete(hit.key);\n self[$233d77d4742ed838$var$LRU_LIST].removeNode(node);\n }\n};\nclass $233d77d4742ed838$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $233d77d4742ed838$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($233d77d4742ed838$var$isStale(self, hit)) {\n $233d77d4742ed838$var$del(self, node);\n if (!self[$233d77d4742ed838$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $233d77d4742ed838$var$LRUCache;\n\n});\nparcelRegister(\"i08Cw\", function(module, exports) {\n\"use strict\";\nmodule.exports = $d1aee9e840285ba3$var$Yallist;\n$d1aee9e840285ba3$var$Yallist.Node = $d1aee9e840285ba3$var$Node;\n$d1aee9e840285ba3$var$Yallist.create = $d1aee9e840285ba3$var$Yallist;\nfunction $d1aee9e840285ba3$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $d1aee9e840285ba3$var$Yallist)) self = new $d1aee9e840285ba3$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$d1aee9e840285ba3$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$d1aee9e840285ba3$var$push(this, arguments[i]);\n return this.length;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$d1aee9e840285ba3$var$unshift(this, arguments[i]);\n return this.length;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$d1aee9e840285ba3$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$d1aee9e840285ba3$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $d1aee9e840285ba3$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $d1aee9e840285ba3$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $d1aee9e840285ba3$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $d1aee9e840285ba3$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $d1aee9e840285ba3$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$d1aee9e840285ba3$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $d1aee9e840285ba3$var$insert(self, node, value) {\n var inserted = node === self.head ? new $d1aee9e840285ba3$var$Node(value, null, node, self) : new $d1aee9e840285ba3$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $d1aee9e840285ba3$var$push(self, item) {\n self.tail = new $d1aee9e840285ba3$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $d1aee9e840285ba3$var$unshift(self, item) {\n self.head = new $d1aee9e840285ba3$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $d1aee9e840285ba3$var$Node(value, prev, next, list) {\n if (!(this instanceof $d1aee9e840285ba3$var$Node)) return new $d1aee9e840285ba3$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"5MZUR\"))($d1aee9e840285ba3$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"5MZUR\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"42oIR\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $2f0a86b5a65258ab$var$satisfies = (version, range, options)=>{\n try {\n range = new $bswWF(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $2f0a86b5a65258ab$var$satisfies;\n\n});\n\nparcelRegister(\"4zfp3\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\n// Mostly just for testing and legacy API reasons\nconst $3536610e76dfa838$var$toComparators = (range, options)=>new $bswWF(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $3536610e76dfa838$var$toComparators;\n\n});\n\nparcelRegister(\"ga5uZ\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $bc41d878d052b110$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $bswWF(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $8cXe9(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $bc41d878d052b110$var$maxSatisfying;\n\n});\n\nparcelRegister(\"lPGVL\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $fe4fa984faf344fb$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $bswWF(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $8cXe9(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $fe4fa984faf344fb$var$minSatisfying;\n\n});\n\nparcelRegister(\"1I8AA\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\nconst $13f0901f38b9c38e$var$minVersion = (range, loose)=>{\n range = new $bswWF(range, loose);\n let minver = new $8cXe9(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $8cXe9(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $8cXe9(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cOpcP(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cOpcP(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $13f0901f38b9c38e$var$minVersion;\n\n});\n\nparcelRegister(\"dBtft\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $028e47ec34506e56$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $bswWF(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $028e47ec34506e56$var$validRange;\n\n});\n\nparcelRegister(\"83Sp2\", function(module, exports) {\n\nvar $8cXe9 = parcelRequire(\"8cXe9\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\nconst { ANY: $5de8cdd25b195029$var$ANY } = $1bxhC;\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $cOpcP = parcelRequire(\"cOpcP\");\n\nvar $58P10 = parcelRequire(\"58P10\");\n\nvar $hlfY9 = parcelRequire(\"hlfY9\");\n\nvar $3XWvL = parcelRequire(\"3XWvL\");\nconst $5de8cdd25b195029$var$outside = (version, range, hilo, options)=>{\n version = new $8cXe9(version, options);\n range = new $bswWF(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cOpcP;\n ltefn = $hlfY9;\n ltfn = $58P10;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $58P10;\n ltefn = $3XWvL;\n ltfn = $cOpcP;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($42oIR(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $5de8cdd25b195029$var$ANY) comparator = new $1bxhC(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $5de8cdd25b195029$var$outside;\n\n});\n\nparcelRegister(\"eK4my\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $83Sp2 = parcelRequire(\"83Sp2\");\nconst $abb8bee76fa63cbc$var$gtr = (version, range, options)=>$83Sp2(version, range, \">\", options);\nmodule.exports = $abb8bee76fa63cbc$var$gtr;\n\n});\n\nparcelRegister(\"eNXBI\", function(module, exports) {\n\nvar $83Sp2 = parcelRequire(\"83Sp2\");\n// Determine if version is less than all the versions possible in the range\nconst $ac73e10f90b51c3e$var$ltr = (version, range, options)=>$83Sp2(version, range, \"<\", options);\nmodule.exports = $ac73e10f90b51c3e$var$ltr;\n\n});\n\nparcelRegister(\"kHzUo\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\nconst $f123ad78b38d1607$var$intersects = (r1, r2, options)=>{\n r1 = new $bswWF(r1, options);\n r2 = new $bswWF(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $f123ad78b38d1607$var$intersects;\n\n});\n\nparcelRegister(\"1x2XZ\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$jDqfd(a, b, options));\n for (const version of v){\n const included = $42oIR(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"hTYir\", function(module, exports) {\n\nvar $bswWF = parcelRequire(\"bswWF\");\n\nvar $1bxhC = parcelRequire(\"1bxhC\");\nconst { ANY: $d086585c4d9c3926$var$ANY } = $1bxhC;\n\nvar $42oIR = parcelRequire(\"42oIR\");\n\nvar $jDqfd = parcelRequire(\"jDqfd\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $d086585c4d9c3926$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $bswWF(sub, options);\n dom = new $bswWF(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $d086585c4d9c3926$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $d086585c4d9c3926$var$minimumVersionWithPreRelease = [\n new $1bxhC(\">=0.0.0-0\")\n];\nconst $d086585c4d9c3926$var$minimumVersion = [\n new $1bxhC(\">=0.0.0\")\n];\nconst $d086585c4d9c3926$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $d086585c4d9c3926$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $d086585c4d9c3926$var$ANY) return true;\n else if (options.includePrerelease) sub = $d086585c4d9c3926$var$minimumVersionWithPreRelease;\n else sub = $d086585c4d9c3926$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $d086585c4d9c3926$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $d086585c4d9c3926$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $d086585c4d9c3926$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $d086585c4d9c3926$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $jDqfd(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$42oIR(eq, String(gt), options)) return null;\n if (lt && !$42oIR(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$42oIR(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $d086585c4d9c3926$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$42oIR(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $d086585c4d9c3926$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$42oIR(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $d086585c4d9c3926$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $jDqfd(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $d086585c4d9c3926$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $jDqfd(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $d086585c4d9c3926$var$subset;\n\n});\n\n\nparcelRegister(\"8CJZb\", function(module, exports) {\n\"use strict\";\nvar $64758b2fa15e88f6$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($64758b2fa15e88f6$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"6t4SD\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $4b593c9b16f6bd98$export$f8b9fb4db095815b);\n\nasync function $4b593c9b16f6bd98$export$f8b9fb4db095815b(path) {\n try {\n await (0, $4umf8$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $4b593c9b16f6bd98$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($4umf8$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"eAXk4\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $3d8ba83a43ccecc4$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $3d8ba83a43ccecc4$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $3d8ba83a43ccecc4$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $4umf8$path.dirname);\n$parcel$export(module.exports, \"join\", () => $4umf8$path.join);\n\n\nvar $f44Uw = parcelRequire(\"f44Uw\");\n\nvar $fBJE3 = parcelRequire(\"fBJE3\");\nfunction $3d8ba83a43ccecc4$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $3d8ba83a43ccecc4$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $3d8ba83a43ccecc4$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $4umf8$path.basename)(e) : (0, $4umf8$path.basename)(e, (0, $4umf8$path.extname)(e));\n}\nfunction $3d8ba83a43ccecc4$export$873fead74fe2f1ff(e) {\n return (0, $4umf8$path.normalize)(e).replace(RegExp((0, $f44Uw.default)((0, $4umf8$path.sep)) + \"$\"), \"\");\n}\nfunction $3d8ba83a43ccecc4$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3d8ba83a43ccecc4$export$3e333f8cb13439c(e, a) {\n const r = (0, $4umf8$path.extname)(e), s = `${a}${(0, $4umf8$path.basename)(e, r)}${r}`;\n return (0, $4umf8$path.join)((0, $4umf8$path.dirname)(e), s);\n}\nfunction $3d8ba83a43ccecc4$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $4umf8$path.extname)(e), s = `${(0, $4umf8$path.basename)(e, r)}${a}${r}`;\n return (0, $4umf8$path.join)((0, $4umf8$path.dirname)(e), s);\n}\nfunction $3d8ba83a43ccecc4$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3d8ba83a43ccecc4$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $3d8ba83a43ccecc4$export$19c5468f88f6e968(e) {\n const a = (0, $4umf8$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $3d8ba83a43ccecc4$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($fBJE3)))(e, a);\n}\nfunction $3d8ba83a43ccecc4$export$7d0573375890d05c(e, a) {\n const r = (0, $4umf8$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $4umf8$path.sep)) || r === (0, $4umf8$path.resolve)(e));\n}\nvar $3d8ba83a43ccecc4$var$O = {}, $3d8ba83a43ccecc4$var$R = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$R, \"name\", ()=>$3d8ba83a43ccecc4$export$a8ff84c12d48cfa6);\nvar $3d8ba83a43ccecc4$var$A = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$A, \"normalizeTrim\", ()=>$3d8ba83a43ccecc4$export$873fead74fe2f1ff);\nvar $3d8ba83a43ccecc4$var$I = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$I, \"addExeExt\", ()=>$3d8ba83a43ccecc4$export$2d20c564cade3c93);\nvar $3d8ba83a43ccecc4$var$T = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$T, \"addNamePrefix\", ()=>$3d8ba83a43ccecc4$export$3e333f8cb13439c);\nvar $3d8ba83a43ccecc4$var$_ = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$_, \"addNameSuffix\", ()=>$3d8ba83a43ccecc4$export$3b60a3e9bd1aef9d);\nvar $3d8ba83a43ccecc4$var$k = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$k, \"addShExt\", ()=>$3d8ba83a43ccecc4$export$609be29b80b555e1);\nvar $3d8ba83a43ccecc4$var$M = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$M, \"addShRelativePrefix\", ()=>$3d8ba83a43ccecc4$export$e1f23f8d3e53fe6);\nvar $3d8ba83a43ccecc4$var$W = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$W, \"removeExt\", ()=>$3d8ba83a43ccecc4$export$19c5468f88f6e968);\nvar $3d8ba83a43ccecc4$var$q = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$q, \"replaceExt\", ()=>$3d8ba83a43ccecc4$export$e9c34737ac8e53d2);\nvar $3d8ba83a43ccecc4$var$B = {};\n$3d8ba83a43ccecc4$var$a($3d8ba83a43ccecc4$var$B, \"isPathInside\", ()=>$3d8ba83a43ccecc4$export$7d0573375890d05c), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$R), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$A), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$I), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$T), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$_), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$k), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$M), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$W), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$q), $3d8ba83a43ccecc4$var$e($3d8ba83a43ccecc4$var$O, $3d8ba83a43ccecc4$var$B);\n\n});\nparcelRegister(\"f44Uw\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $af7b09e757bea83c$export$2e2bcd8739ae039);\nfunction $af7b09e757bea83c$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"fBJE3\", function(module, exports) {\n\"use strict\";\n\nfunction $b5cdb7e29045d953$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $4umf8$path.basename(npath, $4umf8$path.extname(npath)) + ext;\n var nFilepath = $4umf8$path.join($4umf8$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($b5cdb7e29045d953$var$startsWithSingleDot(npath)) return \".\" + $4umf8$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $b5cdb7e29045d953$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $4umf8$path.sep || first2chars === \"./\";\n}\nmodule.exports = $b5cdb7e29045d953$var$replaceExt;\n\n});\n\n\nparcelRegister(\"zdagz\", function(module, exports) {\n\"use strict\";\nvar $069d7b36246212b5$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $069d7b36246212b5$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $069d7b36246212b5$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $069d7b36246212b5$var$__createBinding(result, mod, k);\n }\n $069d7b36246212b5$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $069d7b36246212b5$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $069d7b36246212b5$var$path = $069d7b36246212b5$var$__importStar($4umf8$path);\n\nconst $069d7b36246212b5$var$ioUtil = $069d7b36246212b5$var$__importStar((parcelRequire(\"fwMQK\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $069d7b36246212b5$var$cp(source, dest, options = {}) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $069d7b36246212b5$var$readCopyOptions(options);\n const destStat = (yield $069d7b36246212b5$var$ioUtil.exists(dest)) ? yield $069d7b36246212b5$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $069d7b36246212b5$var$path.join(dest, $069d7b36246212b5$var$path.basename(source)) : dest;\n if (!(yield $069d7b36246212b5$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $069d7b36246212b5$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $069d7b36246212b5$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($069d7b36246212b5$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $069d7b36246212b5$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $069d7b36246212b5$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $069d7b36246212b5$var$mv(source, dest, options = {}) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $069d7b36246212b5$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $069d7b36246212b5$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $069d7b36246212b5$var$path.join(dest, $069d7b36246212b5$var$path.basename(source));\n destExists = yield $069d7b36246212b5$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $069d7b36246212b5$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $069d7b36246212b5$var$mkdirP($069d7b36246212b5$var$path.dirname(dest));\n yield $069d7b36246212b5$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $069d7b36246212b5$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $069d7b36246212b5$var$rmRF(inputPath) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $069d7b36246212b5$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $069d7b36246212b5$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $069d7b36246212b5$var$mkdirP(fsPath) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n $4umf8$assert.ok(fsPath, \"a path argument must be provided\");\n yield $069d7b36246212b5$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $069d7b36246212b5$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $069d7b36246212b5$var$which(tool, check) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $069d7b36246212b5$var$which(tool, false);\n if (!result) {\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $069d7b36246212b5$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $069d7b36246212b5$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $069d7b36246212b5$var$findInPath(tool) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($069d7b36246212b5$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($069d7b36246212b5$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($069d7b36246212b5$var$ioUtil.isRooted(tool)) {\n const filePath = yield $069d7b36246212b5$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($069d7b36246212b5$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($069d7b36246212b5$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $069d7b36246212b5$var$ioUtil.tryGetExecutablePath($069d7b36246212b5$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $069d7b36246212b5$var$findInPath;\nfunction $069d7b36246212b5$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $069d7b36246212b5$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $069d7b36246212b5$var$mkdirP(destDir);\n const files = yield $069d7b36246212b5$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $069d7b36246212b5$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $069d7b36246212b5$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $069d7b36246212b5$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $069d7b36246212b5$var$ioUtil.chmod(destDir, (yield $069d7b36246212b5$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $069d7b36246212b5$var$copyFile(srcFile, destFile, force) {\n return $069d7b36246212b5$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $069d7b36246212b5$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $069d7b36246212b5$var$ioUtil.lstat(destFile);\n yield $069d7b36246212b5$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $069d7b36246212b5$var$ioUtil.chmod(destFile, \"0666\");\n yield $069d7b36246212b5$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $069d7b36246212b5$var$ioUtil.readlink(srcFile);\n yield $069d7b36246212b5$var$ioUtil.symlink(symlinkFull, destFile, $069d7b36246212b5$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $069d7b36246212b5$var$ioUtil.exists(destFile)) || force) yield $069d7b36246212b5$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"fwMQK\", function(module, exports) {\n\"use strict\";\nvar $b4dfbcbe65695fe8$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $b4dfbcbe65695fe8$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $b4dfbcbe65695fe8$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $b4dfbcbe65695fe8$var$__createBinding(result, mod, k);\n }\n $b4dfbcbe65695fe8$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $b4dfbcbe65695fe8$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $b4dfbcbe65695fe8$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $b4dfbcbe65695fe8$var$fs = $b4dfbcbe65695fe8$var$__importStar($4umf8$fs);\n\nconst $b4dfbcbe65695fe8$var$path = $b4dfbcbe65695fe8$var$__importStar($4umf8$path);\n$b4dfbcbe65695fe8$var$_a = $b4dfbcbe65695fe8$var$fs.promises, module.exports.chmod = $b4dfbcbe65695fe8$var$_a.chmod, module.exports.copyFile = $b4dfbcbe65695fe8$var$_a.copyFile, module.exports.lstat = $b4dfbcbe65695fe8$var$_a.lstat, module.exports.mkdir = $b4dfbcbe65695fe8$var$_a.mkdir, module.exports.open = $b4dfbcbe65695fe8$var$_a.open, module.exports.readdir = $b4dfbcbe65695fe8$var$_a.readdir, module.exports.readlink = $b4dfbcbe65695fe8$var$_a.readlink, module.exports.rename = $b4dfbcbe65695fe8$var$_a.rename, module.exports.rm = $b4dfbcbe65695fe8$var$_a.rm, module.exports.rmdir = $b4dfbcbe65695fe8$var$_a.rmdir, module.exports.stat = $b4dfbcbe65695fe8$var$_a.stat, module.exports.symlink = $b4dfbcbe65695fe8$var$_a.symlink, module.exports.unlink = $b4dfbcbe65695fe8$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $b4dfbcbe65695fe8$var$fs.constants.O_RDONLY;\nfunction $b4dfbcbe65695fe8$var$exists(fsPath) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $b4dfbcbe65695fe8$var$exists;\nfunction $b4dfbcbe65695fe8$var$isDirectory(fsPath, useStat = false) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $b4dfbcbe65695fe8$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $b4dfbcbe65695fe8$var$isRooted(p) {\n p = $b4dfbcbe65695fe8$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $b4dfbcbe65695fe8$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $b4dfbcbe65695fe8$var$tryGetExecutablePath(filePath, extensions) {\n return $b4dfbcbe65695fe8$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $b4dfbcbe65695fe8$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($b4dfbcbe65695fe8$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $b4dfbcbe65695fe8$var$path.dirname(filePath);\n const upperName = $b4dfbcbe65695fe8$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $b4dfbcbe65695fe8$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($b4dfbcbe65695fe8$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $b4dfbcbe65695fe8$var$tryGetExecutablePath;\nfunction $b4dfbcbe65695fe8$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $b4dfbcbe65695fe8$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $b4dfbcbe65695fe8$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $b4dfbcbe65695fe8$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"gn8Si\", function(module, exports) {\n\"use strict\";\nvar $beb5ada45dfdd93d$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $beb5ada45dfdd93d$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $beb5ada45dfdd93d$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $beb5ada45dfdd93d$var$__createBinding(result, mod, k);\n }\n $beb5ada45dfdd93d$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $beb5ada45dfdd93d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $beb5ada45dfdd93d$var$semver = $beb5ada45dfdd93d$var$__importStar((parcelRequire(\"0306Y\")));\n\nvar $1o3Gj = parcelRequire(\"1o3Gj\");\n\n\n\nfunction $beb5ada45dfdd93d$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $beb5ada45dfdd93d$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $4umf8$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $1o3Gj.debug(`check ${version} satisfies ${versionSpec}`);\n if ($beb5ada45dfdd93d$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $1o3Gj.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $beb5ada45dfdd93d$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $1o3Gj.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $beb5ada45dfdd93d$var$_findMatch;\nfunction $beb5ada45dfdd93d$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $4umf8$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $4umf8$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $beb5ada45dfdd93d$var$_getOsVersion;\nfunction $beb5ada45dfdd93d$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($4umf8$fs.existsSync(lsbReleaseFile)) contents = $4umf8$fs.readFileSync(lsbReleaseFile).toString();\n else if ($4umf8$fs.existsSync(osReleaseFile)) contents = $4umf8$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $beb5ada45dfdd93d$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"0306Y\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"GX8zo\", function(module, exports) {\n\nvar $7qQbq = parcelRequire(\"7qQbq\");\n\nvar $c22IK = parcelRequire(\"c22IK\");\nfunction $0811cbc79176afae$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $7qQbq)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $c22IK(rnds);\n}\nmodule.exports = $0811cbc79176afae$var$v4;\n\n});\nparcelRegister(\"7qQbq\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $4umf8$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"c22IK\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $8c27c83ef5b4f27e$var$byteToHex = [];\nfor(var $8c27c83ef5b4f27e$var$i = 0; $8c27c83ef5b4f27e$var$i < 256; ++$8c27c83ef5b4f27e$var$i)$8c27c83ef5b4f27e$var$byteToHex[$8c27c83ef5b4f27e$var$i] = ($8c27c83ef5b4f27e$var$i + 0x100).toString(16).substr(1);\nfunction $8c27c83ef5b4f27e$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $8c27c83ef5b4f27e$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $8c27c83ef5b4f27e$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"bHzmH\", function(module, exports) {\n\"use strict\";\nvar $884f249efde1efb4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $884f249efde1efb4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $884f249efde1efb4$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $884f249efde1efb4$var$__createBinding(result, mod, k);\n }\n $884f249efde1efb4$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $884f249efde1efb4$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $884f249efde1efb4$var$tr = $884f249efde1efb4$var$__importStar((parcelRequire(\"iYbsa\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $884f249efde1efb4$var$exec(commandLine, args, options) {\n return $884f249efde1efb4$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $884f249efde1efb4$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $884f249efde1efb4$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $884f249efde1efb4$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $884f249efde1efb4$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $884f249efde1efb4$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $4umf8$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $4umf8$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $884f249efde1efb4$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $884f249efde1efb4$var$getExecOutput;\n\n});\nparcelRegister(\"iYbsa\", function(module, exports) {\n\"use strict\";\nvar $dcf6b6fa3b8725c1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $dcf6b6fa3b8725c1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $dcf6b6fa3b8725c1$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $dcf6b6fa3b8725c1$var$__createBinding(result, mod, k);\n }\n $dcf6b6fa3b8725c1$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $dcf6b6fa3b8725c1$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $dcf6b6fa3b8725c1$var$os = $dcf6b6fa3b8725c1$var$__importStar($4umf8$os);\n\nconst $dcf6b6fa3b8725c1$var$events = $dcf6b6fa3b8725c1$var$__importStar($4umf8$events);\n\nconst $dcf6b6fa3b8725c1$var$child = $dcf6b6fa3b8725c1$var$__importStar($4umf8$child_process);\n\nconst $dcf6b6fa3b8725c1$var$path = $dcf6b6fa3b8725c1$var$__importStar($4umf8$path);\n\nconst $dcf6b6fa3b8725c1$var$io = $dcf6b6fa3b8725c1$var$__importStar((parcelRequire(\"zdagz\")));\n\nconst $dcf6b6fa3b8725c1$var$ioUtil = $dcf6b6fa3b8725c1$var$__importStar((parcelRequire(\"fwMQK\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $dcf6b6fa3b8725c1$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $dcf6b6fa3b8725c1$var$ToolRunner extends $dcf6b6fa3b8725c1$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($dcf6b6fa3b8725c1$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $dcf6b6fa3b8725c1$var$os.EOL.length);\n n = s.indexOf($dcf6b6fa3b8725c1$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($dcf6b6fa3b8725c1$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $dcf6b6fa3b8725c1$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$dcf6b6fa3b8725c1$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $dcf6b6fa3b8725c1$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $dcf6b6fa3b8725c1$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $dcf6b6fa3b8725c1$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$dcf6b6fa3b8725c1$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $dcf6b6fa3b8725c1$var$os.EOL);\n const state = new $dcf6b6fa3b8725c1$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $dcf6b6fa3b8725c1$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $dcf6b6fa3b8725c1$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $dcf6b6fa3b8725c1$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $dcf6b6fa3b8725c1$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $dcf6b6fa3b8725c1$var$argStringToArray;\nclass $dcf6b6fa3b8725c1$var$ExecState extends $dcf6b6fa3b8725c1$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $4umf8$timers.setTimeout($dcf6b6fa3b8725c1$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"fEioR\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.7877377d.js\")).then(()=>parcelRequire(\"8L9T2\"));\n\n});\n\nparcelRegister(\"7fBnG\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $5476ee37c692e534$export$1059c6e7d2ce5669, (v) => $5476ee37c692e534$export$1059c6e7d2ce5669 = v);\nvar $5476ee37c692e534$export$181392475aa39887;\nvar $5476ee37c692e534$export$ba13e0e2f19e61a1;\nvar $5476ee37c692e534$export$1059c6e7d2ce5669;\n\nvar $e95yL = parcelRequire(\"e95yL\");\n\nvar $7KjWO = parcelRequire(\"7KjWO\");\n\nvar $aeYiS = parcelRequire(\"aeYiS\");\n\nvar $aKT05 = parcelRequire(\"aKT05\");\nvar $5476ee37c692e534$var$DOMImplementation = $7KjWO.DOMImplementation;\nvar $5476ee37c692e534$var$NAMESPACE = $e95yL.NAMESPACE;\nvar $5476ee37c692e534$var$ParseError = $aKT05.ParseError;\nvar $5476ee37c692e534$var$XMLReader = $aKT05.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $5476ee37c692e534$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $5476ee37c692e534$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$5476ee37c692e534$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $5476ee37c692e534$var$XMLReader();\n var domBuilder = options.domBuilder || new $5476ee37c692e534$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $aeYiS.HTML_ENTITIES : $aeYiS.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $5476ee37c692e534$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $5476ee37c692e534$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $5476ee37c692e534$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $5476ee37c692e534$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $5476ee37c692e534$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $5476ee37c692e534$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $5476ee37c692e534$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $5476ee37c692e534$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $5476ee37c692e534$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $5476ee37c692e534$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $5476ee37c692e534$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $5476ee37c692e534$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $5476ee37c692e534$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $5476ee37c692e534$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $5476ee37c692e534$var$position(this.locator, ins);\n $5476ee37c692e534$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $5476ee37c692e534$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $5476ee37c692e534$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $5476ee37c692e534$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $5476ee37c692e534$var$position(this.locator, comm);\n $5476ee37c692e534$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $5476ee37c692e534$var$position(this.locator, dt);\n $5476ee37c692e534$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $5476ee37c692e534$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $5476ee37c692e534$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $5476ee37c692e534$var$ParseError(error, this.locator);\n }\n};\nfunction $5476ee37c692e534$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $5476ee37c692e534$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $5476ee37c692e534$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $5476ee37c692e534$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$5476ee37c692e534$export$181392475aa39887 = $5476ee37c692e534$var$DOMHandler;\n$5476ee37c692e534$export$ba13e0e2f19e61a1 = $5476ee37c692e534$var$normalizeLineEndings;\n$5476ee37c692e534$export$1059c6e7d2ce5669 = $5476ee37c692e534$var$DOMParser;\n\n});\nparcelRegister(\"e95yL\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $a4c637fd9eb8068b$export$71aa6c912b956294, (v) => $a4c637fd9eb8068b$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $a4c637fd9eb8068b$export$792f3d81ea979f55, (v) => $a4c637fd9eb8068b$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $a4c637fd9eb8068b$export$6aad947bda0f3f46, (v) => $a4c637fd9eb8068b$export$6aad947bda0f3f46 = v);\nvar $a4c637fd9eb8068b$export$e6e34fd1f2686227;\nvar $a4c637fd9eb8068b$export$71aa6c912b956294;\nvar $a4c637fd9eb8068b$export$792f3d81ea979f55;\nvar $a4c637fd9eb8068b$export$c6cb9dd1e3ada1aa;\nvar $a4c637fd9eb8068b$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $a4c637fd9eb8068b$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $a4c637fd9eb8068b$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $a4c637fd9eb8068b$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $a4c637fd9eb8068b$var$MIME_TYPE = $a4c637fd9eb8068b$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $a4c637fd9eb8068b$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $a4c637fd9eb8068b$var$NAMESPACE = $a4c637fd9eb8068b$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $a4c637fd9eb8068b$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$a4c637fd9eb8068b$export$e6e34fd1f2686227 = $a4c637fd9eb8068b$var$assign;\n$a4c637fd9eb8068b$export$71aa6c912b956294 = $a4c637fd9eb8068b$var$find;\n$a4c637fd9eb8068b$export$792f3d81ea979f55 = $a4c637fd9eb8068b$var$freeze;\n$a4c637fd9eb8068b$export$c6cb9dd1e3ada1aa = $a4c637fd9eb8068b$var$MIME_TYPE;\n$a4c637fd9eb8068b$export$6aad947bda0f3f46 = $a4c637fd9eb8068b$var$NAMESPACE;\n\n});\n\nparcelRegister(\"7KjWO\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $5a3c4d7844d4e662$export$455426655eab1d48, (v) => $5a3c4d7844d4e662$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $5a3c4d7844d4e662$export$64f0bed4ae6f0f24, (v) => $5a3c4d7844d4e662$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $5a3c4d7844d4e662$export$d1d99cf900472499;\nvar $5a3c4d7844d4e662$export$fe58bcf938607f6a;\nvar $5a3c4d7844d4e662$export$455426655eab1d48;\nvar $5a3c4d7844d4e662$export$db77ccec0bb4ccac;\nvar $5a3c4d7844d4e662$export$85c928794f8d04d4;\nvar $5a3c4d7844d4e662$export$79b41aa5d56abdff;\nvar $5a3c4d7844d4e662$export$64f0bed4ae6f0f24;\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $5a3c4d7844d4e662$var$find = $e95yL.find;\nvar $5a3c4d7844d4e662$var$NAMESPACE = $e95yL.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $5a3c4d7844d4e662$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($5a3c4d7844d4e662$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $5a3c4d7844d4e662$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $5a3c4d7844d4e662$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $5a3c4d7844d4e662$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($5a3c4d7844d4e662$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $5a3c4d7844d4e662$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $5a3c4d7844d4e662$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $5a3c4d7844d4e662$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $5a3c4d7844d4e662$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $5a3c4d7844d4e662$var$NodeType = {};\nvar $5a3c4d7844d4e662$var$ELEMENT_NODE = $5a3c4d7844d4e662$var$NodeType.ELEMENT_NODE = 1;\nvar $5a3c4d7844d4e662$var$ATTRIBUTE_NODE = $5a3c4d7844d4e662$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $5a3c4d7844d4e662$var$TEXT_NODE = $5a3c4d7844d4e662$var$NodeType.TEXT_NODE = 3;\nvar $5a3c4d7844d4e662$var$CDATA_SECTION_NODE = $5a3c4d7844d4e662$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE = $5a3c4d7844d4e662$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $5a3c4d7844d4e662$var$ENTITY_NODE = $5a3c4d7844d4e662$var$NodeType.ENTITY_NODE = 6;\nvar $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE = $5a3c4d7844d4e662$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $5a3c4d7844d4e662$var$COMMENT_NODE = $5a3c4d7844d4e662$var$NodeType.COMMENT_NODE = 8;\nvar $5a3c4d7844d4e662$var$DOCUMENT_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_NODE = 9;\nvar $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE = $5a3c4d7844d4e662$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $5a3c4d7844d4e662$var$NOTATION_NODE = $5a3c4d7844d4e662$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $5a3c4d7844d4e662$var$ExceptionCode = {};\nvar $5a3c4d7844d4e662$var$ExceptionMessage = {};\nvar $5a3c4d7844d4e662$var$INDEX_SIZE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INDEX_SIZE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $5a3c4d7844d4e662$var$DOMSTRING_SIZE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR = $5a3c4d7844d4e662$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $5a3c4d7844d4e662$var$WRONG_DOCUMENT_ERR = $5a3c4d7844d4e662$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $5a3c4d7844d4e662$var$INVALID_CHARACTER_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_CHARACTER_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $5a3c4d7844d4e662$var$NO_DATA_ALLOWED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $5a3c4d7844d4e662$var$NO_MODIFICATION_ALLOWED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $5a3c4d7844d4e662$var$NOT_FOUND_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NOT_FOUND_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $5a3c4d7844d4e662$var$NOT_SUPPORTED_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NOT_SUPPORTED_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $5a3c4d7844d4e662$var$INVALID_STATE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_STATE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $5a3c4d7844d4e662$var$SYNTAX_ERR = $5a3c4d7844d4e662$var$ExceptionCode.SYNTAX_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $5a3c4d7844d4e662$var$INVALID_MODIFICATION_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $5a3c4d7844d4e662$var$NAMESPACE_ERR = $5a3c4d7844d4e662$var$ExceptionCode.NAMESPACE_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $5a3c4d7844d4e662$var$INVALID_ACCESS_ERR = $5a3c4d7844d4e662$var$ExceptionCode.INVALID_ACCESS_ERR = ($5a3c4d7844d4e662$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $5a3c4d7844d4e662$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $5a3c4d7844d4e662$var$ExceptionMessage[code]);\n this.message = $5a3c4d7844d4e662$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $5a3c4d7844d4e662$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$5a3c4d7844d4e662$var$DOMException.prototype = Error.prototype;\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$ExceptionCode, $5a3c4d7844d4e662$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $5a3c4d7844d4e662$var$NodeList() {}\n$5a3c4d7844d4e662$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$5a3c4d7844d4e662$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $5a3c4d7844d4e662$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $5a3c4d7844d4e662$var$_updateLiveList(this);\n}\nfunction $5a3c4d7844d4e662$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $5a3c4d7844d4e662$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $5a3c4d7844d4e662$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$5a3c4d7844d4e662$var$LiveNodeList.prototype.item = function(i) {\n $5a3c4d7844d4e662$var$_updateLiveList(this);\n return this[i] || null;\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$LiveNodeList, $5a3c4d7844d4e662$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $5a3c4d7844d4e662$var$NamedNodeMap() {}\nfunction $5a3c4d7844d4e662$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $5a3c4d7844d4e662$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$5a3c4d7844d4e662$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, oldAttr);\n $5a3c4d7844d4e662$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $5a3c4d7844d4e662$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $5a3c4d7844d4e662$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$5a3c4d7844d4e662$var$NamedNodeMap.prototype = {\n length: 0,\n item: $5a3c4d7844d4e662$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $5a3c4d7844d4e662$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $5a3c4d7844d4e662$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $5a3c4d7844d4e662$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $5a3c4d7844d4e662$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $5a3c4d7844d4e662$var$DOMImplementation() {}\n$5a3c4d7844d4e662$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $5a3c4d7844d4e662$var$Document();\n doc.implementation = this;\n doc.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $5a3c4d7844d4e662$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $5a3c4d7844d4e662$var$Node() {}\n$5a3c4d7844d4e662$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $5a3c4d7844d4e662$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, oldChild, $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $5a3c4d7844d4e662$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $5a3c4d7844d4e662$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $5a3c4d7844d4e662$var$TEXT_NODE && child.nodeType == $5a3c4d7844d4e662$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $5a3c4d7844d4e662$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $5a3c4d7844d4e662$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $5a3c4d7844d4e662$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$NodeType, $5a3c4d7844d4e662$var$Node);\n$5a3c4d7844d4e662$var$copy($5a3c4d7844d4e662$var$NodeType, $5a3c4d7844d4e662$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $5a3c4d7844d4e662$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($5a3c4d7844d4e662$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $5a3c4d7844d4e662$var$Document() {\n this.ownerDocument = this;\n}\nfunction $5a3c4d7844d4e662$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $5a3c4d7844d4e662$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $5a3c4d7844d4e662$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $5a3c4d7844d4e662$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $5a3c4d7844d4e662$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$hasInsertableNodeType(node) {\n return node && ($5a3c4d7844d4e662$var$isElementNode(node) || $5a3c4d7844d4e662$var$isTextNode(node) || $5a3c4d7844d4e662$var$isDocTypeNode(node) || node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.COMMENT_NODE || node.nodeType === $5a3c4d7844d4e662$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isDocTypeNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isElementNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $5a3c4d7844d4e662$var$isTextNode(node) {\n return node && node.nodeType === $5a3c4d7844d4e662$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode) || $5a3c4d7844d4e662$var$isDocTypeNode(child)) return false;\n var docTypeNode = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $5a3c4d7844d4e662$var$isElementNode(node) && node !== child;\n }\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$5a3c4d7844d4e662$var$hasValidParentNodeType(parent)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$5a3c4d7844d4e662$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $5a3c4d7844d4e662$var$isDocTypeNode(node) && parent.nodeType !== $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($5a3c4d7844d4e662$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $5a3c4d7844d4e662$var$find(nodeChildNodes, $5a3c4d7844d4e662$var$isTextNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$5a3c4d7844d4e662$var$isElementInsertionPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($5a3c4d7844d4e662$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$5a3c4d7844d4e662$var$isElementInsertionPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($5a3c4d7844d4e662$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isDocTypeNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($5a3c4d7844d4e662$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $5a3c4d7844d4e662$var$find(nodeChildNodes, $5a3c4d7844d4e662$var$isTextNode)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$5a3c4d7844d4e662$var$isElementReplacementPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($5a3c4d7844d4e662$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$5a3c4d7844d4e662$var$isElementReplacementPossible(parent, child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($5a3c4d7844d4e662$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $5a3c4d7844d4e662$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($5a3c4d7844d4e662$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $5a3c4d7844d4e662$var$find(parentChildNodes, $5a3c4d7844d4e662$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $5a3c4d7844d4e662$var$DOMException($5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $5a3c4d7844d4e662$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $5a3c4d7844d4e662$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $5a3c4d7844d4e662$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $5a3c4d7844d4e662$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $5a3c4d7844d4e662$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $5a3c4d7844d4e662$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $5a3c4d7844d4e662$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$5a3c4d7844d4e662$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $5a3c4d7844d4e662$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $5a3c4d7844d4e662$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $5a3c4d7844d4e662$var$_insertBefore(this, newChild, oldChild, $5a3c4d7844d4e662$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($5a3c4d7844d4e662$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $5a3c4d7844d4e662$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $5a3c4d7844d4e662$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $5a3c4d7844d4e662$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $5a3c4d7844d4e662$var$toOrderedSet(classNames);\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $5a3c4d7844d4e662$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $5a3c4d7844d4e662$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($5a3c4d7844d4e662$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $5a3c4d7844d4e662$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n var attrs = node.attributes = new $5a3c4d7844d4e662$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $5a3c4d7844d4e662$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $5a3c4d7844d4e662$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $5a3c4d7844d4e662$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $5a3c4d7844d4e662$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $5a3c4d7844d4e662$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $5a3c4d7844d4e662$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $5a3c4d7844d4e662$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $5a3c4d7844d4e662$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $5a3c4d7844d4e662$var$NamedNodeMap();\n node.childNodes = new $5a3c4d7844d4e662$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $5a3c4d7844d4e662$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Document, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Element() {\n this._nsMap = {};\n}\n$5a3c4d7844d4e662$var$Element.prototype = {\n nodeType: $5a3c4d7844d4e662$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $5a3c4d7844d4e662$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n $5a3c4d7844d4e662$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $5a3c4d7844d4e662$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $5a3c4d7844d4e662$var$LiveNodeList(this, function(base) {\n var ls = [];\n $5a3c4d7844d4e662$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $5a3c4d7844d4e662$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$5a3c4d7844d4e662$var$Document.prototype.getElementsByTagName = $5a3c4d7844d4e662$var$Element.prototype.getElementsByTagName;\n$5a3c4d7844d4e662$var$Document.prototype.getElementsByTagNameNS = $5a3c4d7844d4e662$var$Element.prototype.getElementsByTagNameNS;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Element, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Attr() {}\n$5a3c4d7844d4e662$var$Attr.prototype.nodeType = $5a3c4d7844d4e662$var$ATTRIBUTE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Attr, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$CharacterData() {}\n$5a3c4d7844d4e662$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($5a3c4d7844d4e662$var$ExceptionMessage[$5a3c4d7844d4e662$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$CharacterData, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Text() {}\n$5a3c4d7844d4e662$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $5a3c4d7844d4e662$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Text, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$Comment() {}\n$5a3c4d7844d4e662$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $5a3c4d7844d4e662$var$COMMENT_NODE\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Comment, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$CDATASection() {}\n$5a3c4d7844d4e662$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $5a3c4d7844d4e662$var$CDATA_SECTION_NODE\n};\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$CDATASection, $5a3c4d7844d4e662$var$CharacterData);\nfunction $5a3c4d7844d4e662$var$DocumentType() {}\n$5a3c4d7844d4e662$var$DocumentType.prototype.nodeType = $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$DocumentType, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Notation() {}\n$5a3c4d7844d4e662$var$Notation.prototype.nodeType = $5a3c4d7844d4e662$var$NOTATION_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Notation, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$Entity() {}\n$5a3c4d7844d4e662$var$Entity.prototype.nodeType = $5a3c4d7844d4e662$var$ENTITY_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$Entity, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$EntityReference() {}\n$5a3c4d7844d4e662$var$EntityReference.prototype.nodeType = $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$EntityReference, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$DocumentFragment() {}\n$5a3c4d7844d4e662$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$5a3c4d7844d4e662$var$DocumentFragment.prototype.nodeType = $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$DocumentFragment, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$ProcessingInstruction() {}\n$5a3c4d7844d4e662$var$ProcessingInstruction.prototype.nodeType = $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE;\n$5a3c4d7844d4e662$var$_extends($5a3c4d7844d4e662$var$ProcessingInstruction, $5a3c4d7844d4e662$var$Node);\nfunction $5a3c4d7844d4e662$var$XMLSerializer() {}\n$5a3c4d7844d4e662$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $5a3c4d7844d4e662$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$5a3c4d7844d4e662$var$Node.prototype.toString = $5a3c4d7844d4e662$var$nodeSerializeToString;\nfunction $5a3c4d7844d4e662$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $5a3c4d7844d4e662$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $5a3c4d7844d4e662$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $5a3c4d7844d4e662$var$NAMESPACE.XML || uri === $5a3c4d7844d4e662$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $5a3c4d7844d4e662$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $5a3c4d7844d4e662$var$_xmlEncoder), '\"');\n}\nfunction $5a3c4d7844d4e662$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $5a3c4d7844d4e662$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $5a3c4d7844d4e662$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($5a3c4d7844d4e662$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $5a3c4d7844d4e662$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $5a3c4d7844d4e662$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $5a3c4d7844d4e662$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $5a3c4d7844d4e662$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $5a3c4d7844d4e662$var$DOCUMENT_NODE:\n case $5a3c4d7844d4e662$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $5a3c4d7844d4e662$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $5a3c4d7844d4e662$var$ATTRIBUTE_NODE:\n return $5a3c4d7844d4e662$var$addSerializedAttribute(buf, node.name, node.value);\n case $5a3c4d7844d4e662$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $5a3c4d7844d4e662$var$_xmlEncoder));\n case $5a3c4d7844d4e662$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$COMMENT_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $5a3c4d7844d4e662$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $5a3c4d7844d4e662$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $5a3c4d7844d4e662$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $5a3c4d7844d4e662$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $7749fd2f6249d805$export$91f0e5ff03dc84f, (v) => $7749fd2f6249d805$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $7749fd2f6249d805$export$b7e4d4631df36afa, (v) => $7749fd2f6249d805$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $7749fd2f6249d805$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $7749fd2f6249d805$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $7749fd2f6249d805$export$79451380caed3f98;\n\"use strict\";\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $7749fd2f6249d805$require$freeze = $e95yL.freeze;\n$7749fd2f6249d805$export$91f0e5ff03dc84f = $7749fd2f6249d805$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$7749fd2f6249d805$export$b7e4d4631df36afa = $7749fd2f6249d805$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$7749fd2f6249d805$export$79451380caed3f98 = $7749fd2f6249d805$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"aKT05\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $7d48dd32ae42de33$export$ccbc9f9f018333e9, (v) => $7d48dd32ae42de33$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $7d48dd32ae42de33$export$f9c837a54db411d, (v) => $7d48dd32ae42de33$export$f9c837a54db411d = v);\nvar $7d48dd32ae42de33$export$ccbc9f9f018333e9;\nvar $7d48dd32ae42de33$export$f9c837a54db411d;\n\nvar $e95yL = parcelRequire(\"e95yL\");\nvar $7d48dd32ae42de33$require$NAMESPACE = $e95yL.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $7d48dd32ae42de33$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $7d48dd32ae42de33$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $7d48dd32ae42de33$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $7d48dd32ae42de33$var$tagNamePattern = new RegExp(\"^\" + $7d48dd32ae42de33$var$nameStartChar.source + $7d48dd32ae42de33$var$nameChar.source + \"*(?::\" + $7d48dd32ae42de33$var$nameStartChar.source + $7d48dd32ae42de33$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $7d48dd32ae42de33$var$S_TAG = 0; //tag name offerring\nvar $7d48dd32ae42de33$var$S_ATTR = 1; //attr name offerring\nvar $7d48dd32ae42de33$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $7d48dd32ae42de33$var$S_EQ = 3; //=space?\nvar $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $7d48dd32ae42de33$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $7d48dd32ae42de33$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $7d48dd32ae42de33$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $7d48dd32ae42de33$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $7d48dd32ae42de33$var$ParseError);\n}\n$7d48dd32ae42de33$var$ParseError.prototype = new Error();\n$7d48dd32ae42de33$var$ParseError.prototype.name = $7d48dd32ae42de33$var$ParseError.name;\nfunction $7d48dd32ae42de33$var$XMLReader() {}\n$7d48dd32ae42de33$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $7d48dd32ae42de33$var$_copy(defaultNSMap, defaultNSMap = {});\n $7d48dd32ae42de33$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $7d48dd32ae42de33$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $7d48dd32ae42de33$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $7d48dd32ae42de33$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $7d48dd32ae42de33$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $7d48dd32ae42de33$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $7d48dd32ae42de33$var$S_EQ;\n } else if (s === $7d48dd32ae42de33$var$S_ATTR_SPACE) s = $7d48dd32ae42de33$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $7d48dd32ae42de33$var$S_EQ || s === $7d48dd32ae42de33$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $7d48dd32ae42de33$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $7d48dd32ae42de33$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $7d48dd32ae42de33$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $7d48dd32ae42de33$var$S_ATTR_END:\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n s = $7d48dd32ae42de33$var$S_TAG_CLOSE;\n el.closed = true;\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n case $7d48dd32ae42de33$var$S_ATTR:\n break;\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $7d48dd32ae42de33$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $7d48dd32ae42de33$var$S_ATTR_END:\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n break; //normal\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n case $7d48dd32ae42de33$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n if (s === $7d48dd32ae42de33$var$S_ATTR_SPACE) value = attrName;\n if (s == $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$7d48dd32ae42de33$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $7d48dd32ae42de33$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $7d48dd32ae42de33$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $7d48dd32ae42de33$var$S_TAG_SPACE;\n break;\n case $7d48dd32ae42de33$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $7d48dd32ae42de33$var$S_ATTR_SPACE;\n break;\n case $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $7d48dd32ae42de33$var$S_ATTR_END:\n s = $7d48dd32ae42de33$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $7d48dd32ae42de33$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$7d48dd32ae42de33$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $7d48dd32ae42de33$var$S_ATTR;\n break;\n case $7d48dd32ae42de33$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $7d48dd32ae42de33$var$S_TAG_SPACE:\n s = $7d48dd32ae42de33$var$S_ATTR;\n start = p;\n break;\n case $7d48dd32ae42de33$var$S_EQ:\n s = $7d48dd32ae42de33$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $7d48dd32ae42de33$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $7d48dd32ae42de33$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $7d48dd32ae42de33$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $7d48dd32ae42de33$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $7d48dd32ae42de33$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $7d48dd32ae42de33$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $7d48dd32ae42de33$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.7877377d.js\"))).then(() => parcelRequire('8L9T2'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"3TmjT\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\n\n\n\nvar $nTjPB = parcelRequire(\"nTjPB\");\nlet $2d57d26c7f176ea8$var$tunnel;\nvar $2d57d26c7f176ea8$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($2d57d26c7f176ea8$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $2d57d26c7f176ea8$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($2d57d26c7f176ea8$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $2d57d26c7f176ea8$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($2d57d26c7f176ea8$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $2d57d26c7f176ea8$var$getProxyUrl(serverUrl) {\n let proxyUrl = $nTjPB.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $2d57d26c7f176ea8$var$getProxyUrl;\nconst $2d57d26c7f176ea8$var$HttpRedirectCodes = [\n $2d57d26c7f176ea8$var$HttpCodes.MovedPermanently,\n $2d57d26c7f176ea8$var$HttpCodes.ResourceMoved,\n $2d57d26c7f176ea8$var$HttpCodes.SeeOther,\n $2d57d26c7f176ea8$var$HttpCodes.TemporaryRedirect,\n $2d57d26c7f176ea8$var$HttpCodes.PermanentRedirect\n];\nconst $2d57d26c7f176ea8$var$HttpResponseRetryCodes = [\n $2d57d26c7f176ea8$var$HttpCodes.BadGateway,\n $2d57d26c7f176ea8$var$HttpCodes.ServiceUnavailable,\n $2d57d26c7f176ea8$var$HttpCodes.GatewayTimeout\n];\nconst $2d57d26c7f176ea8$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $2d57d26c7f176ea8$var$ExponentialBackoffCeiling = 10;\nconst $2d57d26c7f176ea8$var$ExponentialBackoffTimeSlice = 5;\nclass $2d57d26c7f176ea8$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $2d57d26c7f176ea8$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $2d57d26c7f176ea8$var$HttpClientError;\nclass $2d57d26c7f176ea8$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject)=>{\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n });\n }\n}\nmodule.exports.HttpClientResponse = $2d57d26c7f176ea8$var$HttpClientResponse;\nfunction $2d57d26c7f176ea8$var$isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $2d57d26c7f176ea8$var$isHttps;\n\nclass $2d57d26c7f176ea8$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.Accept, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.Accept, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.ContentType, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.Accept, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.ContentType, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.Accept, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n additionalHeaders[$2d57d26c7f176ea8$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $2d57d26c7f176ea8$var$Headers.ContentType, $2d57d26c7f176ea8$var$MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ async request(verb, requestUrl, data, headers) {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && $2d57d26c7f176ea8$var$RetryableHttpVerbs.indexOf(verb) != -1 ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while(numTries < maxTries){\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $2d57d26c7f176ea8$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for(let i = 0; i < this.handlers.length; i++)if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while($2d57d26c7f176ea8$var$HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == \"https:\" && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(let header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if ($2d57d26c7f176ea8$var$HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return new Promise((resolve, reject)=>{\n let callbackForResult = function(err, res) {\n if (err) reject(err);\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === \"string\") info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n let callbackCalled = false;\n let handleResult = (err, res)=>{\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg)=>{\n let res = new $2d57d26c7f176ea8$var$HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(\"Request timeout: \" + info.options.path), null);\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $k14yv$https : $k14yv$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) this.handlers.forEach((handler)=>{\n handler.prepareRequest(info.options);\n });\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = $nTjPB.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (!!agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (!!this.requestOptions) maxSockets = this.requestOptions.maxSockets || $k14yv$http.globalAgent.maxSockets;\n if (useProxy) {\n // If using proxy, need tunnel\n if (!$2d57d26c7f176ea8$var$tunnel) $2d57d26c7f176ea8$var$tunnel = (parcelRequire(\"7i1qo\"));\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...(proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n },\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $2d57d26c7f176ea8$var$tunnel.httpsOverHttps : $2d57d26c7f176ea8$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $2d57d26c7f176ea8$var$tunnel.httpOverHttps : $2d57d26c7f176ea8$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $k14yv$https.Agent(options) : new $k14yv$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $k14yv$https.globalAgent : $k14yv$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min($2d57d26c7f176ea8$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $2d57d26c7f176ea8$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject)=>{\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == $2d57d26c7f176ea8$var$HttpCodes.NotFound) resolve(response);\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, $2d57d26c7f176ea8$var$HttpClient.dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = \"Failed request: (\" + statusCode + \")\";\n let err = new $2d57d26c7f176ea8$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n });\n }\n}\nmodule.exports.HttpClient = $2d57d26c7f176ea8$var$HttpClient;\n\n});\nparcelRegister(\"nTjPB\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nfunction $047d0f454ac64227$var$getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === \"https:\";\n let proxyUrl;\n if ($047d0f454ac64227$var$checkBypass(reqUrl)) return proxyUrl;\n let proxyVar;\n if (usingSsl) proxyVar = process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else proxyVar = process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n if (proxyVar) proxyUrl = new URL(proxyVar);\n return proxyUrl;\n}\nmodule.exports.getProxyUrl = $047d0f454ac64227$var$getProxyUrl;\nfunction $047d0f454ac64227$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n let noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n let upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperReqHosts.some((x)=>x === upperNoProxyItem)) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $047d0f454ac64227$var$checkBypass;\n\n});\n\n\nparcelRegister(\"cdVym\", function(module, exports) {\n\nvar $lye1X = parcelRequire(\"lye1X\");\n\nvar $ay3HY = parcelRequire(\"ay3HY\");\nfunction $8e6357ca3726aeca$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $lye1X)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $ay3HY(rnds);\n}\nmodule.exports = $8e6357ca3726aeca$var$v4;\n\n});\nparcelRegister(\"lye1X\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $k14yv$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"ay3HY\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $7adff4bd4e838428$var$byteToHex = [];\nfor(var $7adff4bd4e838428$var$i = 0; $7adff4bd4e838428$var$i < 256; ++$7adff4bd4e838428$var$i)$7adff4bd4e838428$var$byteToHex[$7adff4bd4e838428$var$i] = ($7adff4bd4e838428$var$i + 0x100).toString(16).substr(1);\nfunction $7adff4bd4e838428$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $7adff4bd4e838428$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $7adff4bd4e838428$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"lI4Zo\", function(module, exports) {\n\"use strict\";\nvar $fce193c505a8cce0$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $fce193c505a8cce0$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $fce193c505a8cce0$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $fce193c505a8cce0$var$__createBinding(result, mod, k);\n }\n $fce193c505a8cce0$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $fce193c505a8cce0$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $fce193c505a8cce0$var$core = $fce193c505a8cce0$var$__importStar((parcelRequire(\"4t50X\")));\n/**\n * Internal class for retries\n */ class $fce193c505a8cce0$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $fce193c505a8cce0$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $fce193c505a8cce0$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $fce193c505a8cce0$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $fce193c505a8cce0$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $fce193c505a8cce0$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"9q7Zq\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $90342fa0f8357b29$export$43d689d19c89c31d);\n\n\nvar $3Fegg = parcelRequire(\"3Fegg\");\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\nasync function $90342fa0f8357b29$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $90342fa0f8357b29$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $3Fegg.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $3Fegg.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $4t50X.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $4t50X.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $90342fa0f8357b29$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $3Fegg.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $dm0eT.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $k14yv$path.join(installDir, pipDir);\n const binaryExtension = (0, $dm0eT.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $k14yv$path.join((0, $dm0eT.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $3Fegg.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $4t50X.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $4t50X.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $4t50X.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $4t50X.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $4t50X.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $4t50X.addPath(pythonLocation);\n $4t50X.addPath(_binDir);\n }\n $4t50X.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $4t50X.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $90342fa0f8357b29$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $dm0eT.IS_WINDOWS) ? $90342fa0f8357b29$export$139298be7eb2bd(pythonVersion) : $bG0ld.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $dm0eT.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $dm0eT.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $bSUdl.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $4t50X.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $90342fa0f8357b29$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $3Fegg.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $dm0eT.validateVersion)(pythonVersion) || !(0, $dm0eT.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $dm0eT.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $90342fa0f8357b29$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $dm0eT.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $bG0ld.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"3Fegg\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $bbc9d655660b9c39$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $bbc9d655660b9c39$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $bbc9d655660b9c39$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $bbc9d655660b9c39$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $bbc9d655660b9c39$export$4e25ef8c836002b9);\n\n\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $3TmjT = parcelRequire(\"3TmjT\");\n\nvar $1f6JF = parcelRequire(\"1f6JF\");\n\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\nasync function $bbc9d655660b9c39$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases ?? await $bbc9d655660b9c39$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $4t50X.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($k14yv$os.EOL));\n releaseData = $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $4t50X.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $bG0ld.downloadTool(downloadUrl);\n $4t50X.info(\"Extracting downloaded archive...\");\n if (0, $dm0eT.IS_WINDOWS) downloadDir = await $bG0ld.extractZip(pypyPath);\n else downloadDir = await $bG0ld.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($k14yv$fs))).readdirSync(downloadDir)[0];\n const toolDir = $k14yv$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $dm0eT.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $bG0ld.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $dm0eT.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $bbc9d655660b9c39$export$a053ce7a690fbb2e(installDir);\n await $bbc9d655660b9c39$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $bbc9d655660b9c39$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $bG0ld.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $4t50X.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $4t50X.info(err.message);\n if (err.stack !== undefined) $4t50X.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $bbc9d655660b9c39$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $3TmjT.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $bbc9d655660b9c39$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $bSUdl.coerce(pythonVersion);\n const pythonBinaryPostfix = $bSUdl.major(version);\n const pythonMinor = $bSUdl.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $dm0eT.IS_WINDOWS) ? \".exe\" : \"\";\n $4t50X.info(\"Creating symlinks...\");\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $bbc9d655660b9c39$var$installPip(pythonLocation) {\n $4t50X.info(\"Installing and updating pip\");\n const pythonBinary = $k14yv$path.join(pythonLocation, \"python\");\n await $1f6JF.exec(`${pythonBinary} -m ensurepip`);\n await $1f6JF.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $bSUdl.satisfies($bSUdl.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $dm0eT.isNightlyKeyword)(pypyVersion) && (0, $dm0eT.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $bSUdl.satisfies($bbc9d655660b9c39$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $dm0eT.IS_WINDOWS) ? $bbc9d655660b9c39$export$652444ba12a0c7bb(item, architecture) : $bbc9d655660b9c39$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $bSUdl.compare($bSUdl.coerce($bbc9d655660b9c39$export$4e25ef8c836002b9(current.pypy_version)), $bSUdl.coerce($bbc9d655660b9c39$export$4e25ef8c836002b9(previous.pypy_version))) || $bSUdl.compare($bSUdl.coerce(current.python_version), $bSUdl.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $dm0eT.IS_WINDOWS) ? $bbc9d655660b9c39$export$672a33957a3c888(foundRelease, architecture) : $bbc9d655660b9c39$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $bbc9d655660b9c39$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $k14yv$path.join(installDir, \"bin\");\n return (0, $dm0eT.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $bbc9d655660b9c39$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $bbc9d655660b9c39$export$652444ba12a0c7bb(item, architecture) {\n architecture = $bbc9d655660b9c39$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $dm0eT.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $bbc9d655660b9c39$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $bbc9d655660b9c39$export$672a33957a3c888(releases, architecture) {\n architecture = $bbc9d655660b9c39$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $dm0eT.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $bbc9d655660b9c39$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $bbc9d655660b9c39$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.4fb6b558.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/dist/modern/actions_python.6be0dfa4.js b/dist/modern/actions_python.6be0dfa4.js deleted file mode 100644 index 91f6f604..00000000 --- a/dist/modern/actions_python.6be0dfa4.js +++ /dev/null @@ -1,3 +0,0 @@ -function $parcel$export(e,t,r,i){Object.defineProperty(e,t,{get:r,set:i,enumerable:!0,configurable:!0});}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e;}var $k14yv$path=require("path"),$k14yv$os=require("os"),$k14yv$fs=require("fs"),$k14yv$stream=require("stream"),$k14yv$util=require("util"),$k14yv$assert=require("assert"),$k14yv$child_process=require("child_process"),$k14yv$crypto=require("crypto"),$parcel$global=globalThis,parcelRequire=$parcel$global.parcelRequire810d,parcelRegister=parcelRequire.register;parcelRegister("4kQHk",function(e,t){var r,i,n,s,o,a,h,c,l;function u(e){return e.startsWith("pypy");}async function p(e,t,o){h.IS_MAC&&(process.env.AGENT_TOOLSDIRECTORY="/Users/runner/hostedtoolcache");let c=process.env.AGENT_TOOLSDIRECTORY?.trim();if("string"==typeof c&&""!==c&&(process.env.RUNNER_TOOL_CACHE=process.env.AGENT_TOOLSDIRECTORY),(0,s.debug)("Python is expected to be installed into "+process.env.RUNNER_TOOL_CACHE),e){let t;if(u(e)){let r=await(0,i.findPyPyVersion)(e,o,!0,d,!1);t=`${r.resolvedPyPyVersion}-${r.resolvedPythonVersion}`,(0,n.info)(`Successfully set up PyPy ${r.resolvedPyPyVersion} with Python (${r.resolvedPythonVersion})`);}else{let i=await(0,r.useCpythonVersion)(e,o,!0,d,!1);t=i.version,(0,n.info)(`Successfully set up ${i.impl} (${t})`);}}a.GITHUB_ACTIONS&&(await f());}async function f(){let e=(0,o.join)(l,"python_matcher.json");if(!(await(0,c.pathExists)(e)))return(0,n.warning)("the python_matcher.json file does not exist in the same folder as setup-cpp.js");(0,n.info)("::add-matcher::"+e);}$parcel$export(e.exports,"setupActionsPython",()=>p),r=parcelRequire("66RQi"),i=parcelRequire("9q7Zq"),n=parcelRequire("ER74K"),s=parcelRequire("4t50X"),o=parcelRequire("bzNgi"),a=parcelRequire("52cQ1"),h=parcelRequire("dm0eT"),c=parcelRequire("kY0n1"),l=$k14yv$path.resolve(__dirname,"../../src/python");let d=!1;}),parcelRegister("66RQi",function(e,t){var r,i,n,s,o;function a(e){return r.IS_WINDOWS?$k14yv$path.join(e,"Scripts"):$k14yv$path.join(e,"bin");}async function h(e,t,h,p,f){let d=null,m=u(c(e),f);if(s.debug(`Semantic version spec of ${e} is ${m}`),p){d=await n.getManifest();let e=(await n.findReleaseFromManifest(m,t,d))?.version;e?(m=e,s.info(`Resolved as '${m}'`)):s.info(`Failed to resolve version ${m} from manifest`);}let y=o.find("Python",m,t);if(!y){s.info(`Version ${m} was not found in the local cache`);let e=await n.findReleaseFromManifest(m,t,d);e&&e.files&&e.files.length>0&&(s.info(`Version ${m} is available for downloading`),await n.installCpythonFromRelease(e),y=o.find("Python",m,t));}if(!y){let i=await(0,r.getOSInfo)();throw Error([`The version '${e}' with architecture '${t}' was not found for ${i?`${i.osName} ${i.osVersion}`:"this operating system"}.`,"The list of all available versions can be found here: "+n.MANIFEST_URL].join($k14yv$os.EOL));}let E=a(y),g=r.IS_WINDOWS?".exe":"",w=$k14yv$path.join(r.IS_WINDOWS?y:E,"python"+g);if(h){if(s.exportVariable("pythonLocation",y),s.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),s.exportVariable("pythonLocation",y),s.exportVariable("Python_ROOT_DIR",y),s.exportVariable("Python2_ROOT_DIR",y),s.exportVariable("Python3_ROOT_DIR",y),s.exportVariable("PKG_CONFIG_PATH",y+"/lib/pkgconfig"),r.IS_LINUX){let e=process.env.LD_LIBRARY_PATH?":"+process.env.LD_LIBRARY_PATH:"",t=$k14yv$path.join(y,"lib");e.split(":").includes(t)||s.exportVariable("LD_LIBRARY_PATH",t+e);}if(s.addPath(y),s.addPath(E),r.IS_WINDOWS){let e=$k14yv$path.basename($k14yv$path.dirname(y)),t=i.major(e),r=i.minor(e),n=$k14yv$path.join(process.env.APPDATA||"","Python",`Python${t}${r}`,"Scripts");s.addPath(n);}}let x=l(y);return s.setOutput("python-version",x),s.setOutput("python-path",w),{impl:"CPython",version:x};}function c(e){let t=/^(\d+)\.(\d+)-dev$/;return e.replace(t,"~$1.$2.0-0");}function l(e){let t=e.split($k14yv$path.sep),r=t.findIndex(e=>"PyPy"===e||"Python"===e);return t[r+1]||"";}function u(e,t){let r=/(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g,i=/^(\d+)\.(\d+)$/,n=e.replace(r,"$1-$2");return t&&(n=n.replace(i,"~$1.$2.0-0")),n;}$parcel$export(e.exports,"useCpythonVersion",()=>h),r=parcelRequire("dm0eT"),i=parcelRequire("bSUdl"),n=parcelRequire("2kmVU"),s=parcelRequire("4t50X"),o=parcelRequire("bG0ld");}),parcelRegister("dm0eT",function(e,t){var r,i,n;function s(e,t,r,i=!1){let n=$k14yv$path.join(e,t),s=$k14yv$path.join(e,r);$parcel$interopDefault($k14yv$fs).existsSync(s)||($parcel$interopDefault($k14yv$fs).symlinkSync(n,s),!y&&i&&$parcel$interopDefault($k14yv$fs).chmodSync(s,"755"));}function o(e){return a(e)||!!i.validRange(e);}function a(e){return"nightly"===e;}function h(e){return $k14yv$path.basename($k14yv$path.dirname(e));}function c(e){let t="",r=$k14yv$path.join(e,v);return $parcel$interopDefault($k14yv$fs).existsSync(r)&&(t=$parcel$interopDefault($k14yv$fs).readFileSync(r).toString().trim()),t;}function l(e,t){let r=$k14yv$path.join(e,v);$parcel$interopDefault($k14yv$fs).writeFileSync(r,t);}function u(e){return /^\d+\.\d+$/.test(e);}async function p(){let{stdout:e}=await n.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{osName:"Windows",osVersion:e.trim().split(" ")[3]};}async function f(){let{stdout:e}=await n.getExecOutput("sw_vers",["-productVersion"],{silent:!0});return{osName:"macOS",osVersion:e.trim()};}async function d(){let{stdout:e}=await n.getExecOutput("lsb_release",["-i","-r","-s"],{silent:!0}),[t,i]=e.trim().split("\n");return r.debug(`OS Name: ${t}, Version: ${i}`),{osName:t,osVersion:i};}async function m(){let e;try{y?e=await p():E?e=await d():g&&(e=await f());}catch(t){let e=t;r.debug(e.message);}finally{return e;}}$parcel$export(e.exports,"IS_WINDOWS",()=>y),$parcel$export(e.exports,"IS_LINUX",()=>E),$parcel$export(e.exports,"IS_MAC",()=>g),$parcel$export(e.exports,"WINDOWS_ARCHS",()=>w),$parcel$export(e.exports,"WINDOWS_PLATFORMS",()=>x),$parcel$export(e.exports,"createSymlinkInFolder",()=>s),$parcel$export(e.exports,"validateVersion",()=>o),$parcel$export(e.exports,"isNightlyKeyword",()=>a),$parcel$export(e.exports,"getPyPyVersionFromPath",()=>h),$parcel$export(e.exports,"readExactPyPyVersionFile",()=>c),$parcel$export(e.exports,"writeExactPyPyVersionFile",()=>l),$parcel$export(e.exports,"validatePythonVersionFormatForPyPy",()=>u),$parcel$export(e.exports,"getOSInfo",()=>m),r=parcelRequire("4t50X"),i=parcelRequire("bSUdl"),parcelRequire("asWrE"),n=parcelRequire("1f6JF");let y="win32"===process.platform,E="linux"===process.platform,g="darwin"===process.platform,w=["x86","x64"],x=["win32","win64"],v="PYPY_VERSION";}),parcelRegister("asWrE",function(e,t){var r;$parcel$export(e.exports,"parse",()=>r,e=>r=e),r=parcelRequire("9ra5j"),parcelRequire("erM83");}),parcelRegister("9ra5j",function(e,t){e.exports=parcelRequire("k9zRI"),e.exports.async=parcelRequire("iO4Tr"),e.exports.stream=parcelRequire("ddYPD"),e.exports.prettyError=parcelRequire("c4Fk1");}),parcelRegister("k9zRI",function(e,t){var r,i;function n(e){$parcel$global.Buffer&&$parcel$global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r();try{return t.parse(e),t.finish();}catch(t){throw i(t,e);}}e.exports=n,r=parcelRequire("16AyQ"),i=parcelRequire("c4Fk1");}),parcelRegister("16AyQ",function(module,exports){var $9FJkb,$90qfX,$4xjP6,$3wXZs;let _custom;function isDigit(e){return e>=CHAR_0&&e<=CHAR_9;}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9;}function isBit(e){return e===CHAR_1||e===CHAR_0;}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7;}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN;}function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1);}function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}});}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE;}function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}});}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE;}function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}});}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST;}function List(){return Object.defineProperties([],{[_type]:{value:LIST}});}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST;}function Integer(e){let t=+e;return(Object.is(t,-0)&&(t=0),$parcel$global.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this);}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}});}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER;}function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}});}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT;}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer";}}return t;}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table();}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine();}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M;}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`));}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"));}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement);}recordAssignStatement(e){let t=this.ctx,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseWhitespaceToEOL);}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword);}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot);}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0;}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword);}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'));}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue);}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e});}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar());}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList);}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext);}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore);}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext);}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore);}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t;}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd);}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"));}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext);}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"));}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"));}recordValue(e){return this.returnNow(e);}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'));}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'));}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey);}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"));}while(this.nextChar());}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString);}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow();}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent);}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent));}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent));}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString);}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString);}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow();}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent);}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();else this.consume();}while(this.nextChar());}errorControlCharInString(){let e="\\u00";return this.char<16&&(e+="0"),e+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${e} instead`));}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent);}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent));}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent));}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape);}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"));}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow();}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char));}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t));}catch(e){throw this.error(TomlError.wrap(e));}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return();}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan);}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart);}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger);}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf));}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow();}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf));}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"));}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf));}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly);}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf));}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"));}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"));}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf));}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"));}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth);}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour);}if(this.atEndOfWord())return this.returnNow($4xjP6(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow($4xjP6(this.state.result)):this.goto(this.parseTimeHour);}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin);}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"));}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"));}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction);}else throw this.error(new TomlError("Incomplete datetime"));}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin);}throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe);}else throw this.error(new TomlError("Incomplete time"));}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return($3wXZs(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction);}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow($3wXZs(this.state.result+"."+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($9FJkb(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($90qfX(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return($9FJkb(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow($90qfX(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"));}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep);}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"));}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return($9FJkb(this.state.result+this.state.buf));}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"));}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0;}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"));}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue);}recordInlineListValue(e){if(this.state.resultArr){let t=this.state.resultArr[_contentType],r=tomlType(e);if(t!==r)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${t} and ${r}`));}else this.state.resultArr=InlineList(tomlType(e));return isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext);}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue));}recordInlineTableValue(e){let t=this.state.resultTable,r=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table();}if(hasKey(t,r))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[r]=e.value.valueOf():t[r]=e.value,this.goto(this.parseInlineTableNext);}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"));}}return t;}module.exports=makeParserClass(parcelRequire("liZiS")),module.exports.makeParserClass=makeParserClass;class TomlError extends Error{constructor(e){super(e),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,TomlError),this.fromTOML=!0,this.wrapped=null;}}TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t;},module.exports.TomlError=TomlError,$9FJkb=parcelRequire("9FJkb"),$90qfX=parcelRequire("90qfX"),$4xjP6=parcelRequire("4xjP6"),$3wXZs=parcelRequire("3wXZs");let CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"},_type=Symbol(),_declared=Symbol(),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0},INLINE_TABLE=Symbol(),TABLE=Symbol(),_contentType=Symbol(),INLINE_LIST=Symbol(),LIST=Symbol();try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom;}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=$parcel$global.BigInt.asIntN(64,e);}catch(e){this.value=null;}Object.defineProperty(this,_type,{value:INTEGER});}isNaN(){return null===this.value;}toString(){return this.value+"";}[_inspect](){return`[BigInt: ${this.toString()}]}`;}valueOf(){return this.value;}}let INTEGER=Symbol(),FLOAT=Symbol();}),parcelRegister("liZiS",function(e,t){let r=1114112;class i extends Error{constructor(e,t,r){super("[ParserError] "+e,t,r),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,i);}}class n{constructor(e){this.parser=e,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null;}}class s{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new n(this.parseStart);}parse(e){let t;if(0!==e.length&&null!=e.length){for(this._buf=e+"",this.ii=-1,this.char=-1;!1===t||this.nextChar();)t=this.runOne();this._buf=null;}}nextChar(){return 10===this.char&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer();}haveBuffer(){return this.ii{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("90qfX",function(e,t){var r=parcelRequire("iV0Sp");class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0;}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("iV0Sp",function(e,t){e.exports=(e,t)=>{for(t+="";t.length{let t=new n(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("3wXZs",function(e,t){var r=parcelRequire("iV0Sp");class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0;}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime");};}),parcelRegister("c4Fk1",function(e,t){function r(e,t){if(null==e.pos||null==e.line)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: -`,t&&t.split){let i=t.split(/\n/),n=(Math.min(i.length,e.line+3)+"").length,s=" ";for(;s.length "+i[t]+"\n"+s+" ";for(let t=0;t=e.length)try{return s(a.finish());}catch(t){return o(i(t,e));}try{a.parse(e.slice(t,t+r)),setImmediate(n,t+r,r,s,o);}catch(t){o(i(t,e));}}t||(t={});let s=0,o=t.blocksize||40960,a=new r();return new Promise((e,t)=>{setImmediate(n,s,o,e,t);});}e.exports=n,r=parcelRequire("16AyQ"),i=parcelRequire("c4Fk1");}),parcelRegister("ddYPD",function(e,t){var r;function i(e){return e?n(e):s(e);}function n(e){let t=new r();return e.setEncoding("utf8"),new Promise((r,i)=>{let n;function s(){if(h=!0,!n)try{r(t.finish());}catch(e){i(e);}}function o(e){c=!0,i(e);}function a(){let r;for(n=!0;null!==(r=e.read());)try{t.parse(r);}catch(e){return o(e);}if(n=!1,h)return s();c||e.once("readable",a);}let h=!1,c=!1;e.once("end",s),e.once("error",o),a();});}function s(){let e=new r();return new $k14yv$stream.Transform({objectMode:!0,transform(t,r,i){try{e.parse(t.toString(r));}catch(e){this.emit("error",e);}i();},flush(t){try{this.push(e.finish());}catch(e){this.emit("error",e);}t();}});}e.exports=i,r=parcelRequire("16AyQ");}),parcelRegister("erM83",function(e,t){function r(e){if(null===e)throw i("null");if(void 0===e)throw i("undefined");if("object"!=typeof e)throw i(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=l(e);if("table"!==t)throw i(t);return h("","",e);}function i(e){return Error("Can only stringify objects, not "+e);}function n(){return Error("Array values can't have mixed types");}function s(e){return Object.keys(e).filter(t=>c(e[t]));}function o(e){return Object.keys(e).filter(t=>!c(e[t]));}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))!e[r]||"function"!=typeof e[r].toJSON||"toISOString"in e[r]?t[r]=e[r]:t[r]=e[r].toJSON();return t;}function h(e,t,r){i=s(r=a(r)),n=o(r);var i,n,h=[],c=t||"";i.forEach(e=>{var t=l(r[e]);"undefined"!==t&&"null"!==t&&h.push(c+u(e)+" = "+E(r[e],!0));}),h.length>0&&h.push("");var p=e&&i.length>0?t+" ":"";return n.forEach(t=>{h.push(R(e,p,t,r[t]));}),h.join("\n");}function c(e){switch(l(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==l(e[0]);case"table":return 0===Object.keys(e).length;default:return!1;}}function l(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table";}function u(e){var t=e+"";return /^[-A-Za-z0-9_]+$/.test(t)?t:p(t);}function p(e){return'"'+m(e).replace(/"/g,'\\"')+'"';}function f(e){return"'"+e+"'";}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)));}function y(e){let t=e.split(/\n/).map(e=>m(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""';}function E(e,t){let r=l(e);return"string"===r&&(t&&/\n/.test(e)?r="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(r="string-literal")),g(e,r);}function g(e,t){switch(t||(t=l(e)),t){case"string-multiline":return y(e);case"string":return p(e);case"string-literal":return f(e);case"integer":return w(e);case"float":return x(e);case"boolean":return v(e);case"datetime":return I(e);case"array":return S(e.filter(e=>"null"!==l(e)&&"undefined"!==l(e)&&"nan"!==l(e)));case"table":return T(e);default:throw i(t);}}function w(e){return(e+"").replace(/\B(?=(\d{3})+(?!\d))/g,"_");}function x(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";var t=(e+"").split("."),r=t[0],i=t[1]||0;return w(r)+"."+i;}function v(e){return e+"";}function I(e){return e.toISOString();}function b(e){return"float"===e||"integer"===e;}function O(e){var t=l(e[0]);return e.every(e=>l(e)===t)?t:e.every(e=>b(l(e)))?"float":"mixed";}function N(e){let t=O(e);if("mixed"===t)throw n();return t;}function S(e){let t=N(e=a(e));var r="[",i=e.map(e=>g(e,t));return i.join(", ").length>60||/\n/.test(i)?r+="\n "+i.join(",\n ")+"\n":r+=" "+i.join(", ")+(i.length>0?" ":""),r+"]";}function T(e){e=a(e);var t=[];return Object.keys(e).forEach(r=>{t.push(u(r)+" = "+E(e[r],!1));}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}";}function R(e,t,r,n){var s=l(n);if("array"===s)return P(e,t,r,n);if("table"===s)return L(e,t,r,n);throw i(s);}function P(e,t,r,n){N(n=a(n));var s=l(n[0]);if("table"!==s)throw i(s);var o=e+u(r),c="";return n.forEach(e=>{c.length>0&&(c+="\n"),c+=t+"[["+o+"]]\n"+h(o+".",t,e);}),c;}function L(e,t,r,i){var n=e+u(r),o="";return s(i).length>0&&(o+=t+"["+n+"]\n"),o+h(n+".",t,i);}e.exports=r,e.exports.value=g;}),parcelRegister("2kmVU",function(e,t){var r,i,n,s;async function o(e,t,r){return r||(r=await a()),await i.findFromManifest(e,!1,r,t);}function a(){return r.debug(`Getting manifest from ${p}/${f}@${d}`),i.getManifestFromRepo(p,f,u,d);}async function h(e){let t={cwd:e,env:{...process.env,...(s.IS_LINUX&&{LD_LIBRARY_PATH:$k14yv$path.join(e,"lib")})},silent:!0,listeners:{stdout(e){r.info(e.toString().trim());},stderr(e){r.error(e.toString().trim());}}};s.IS_WINDOWS?await n.exec("powershell",["./setup.ps1"],t):await n.exec("bash",["./setup.sh"],t);}async function c(e){let t=e.files[0].download_url;r.info(`Download from "${t}"`);let n="";try{let e;n=await i.downloadTool(t,void 0,u),r.info("Extract downloaded archive"),e=s.IS_WINDOWS?await i.extractZip(n):await i.extractTar(n),r.info("Execute installation script"),await h(e);}catch(e){throw e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),e.stack&&r.debug(e.stack)),e;}}$parcel$export(e.exports,"MANIFEST_URL",()=>m),$parcel$export(e.exports,"findReleaseFromManifest",()=>o),$parcel$export(e.exports,"getManifest",()=>a),$parcel$export(e.exports,"installCpythonFromRelease",()=>c),r=parcelRequire("4t50X"),i=parcelRequire("bG0ld"),n=parcelRequire("1f6JF"),s=parcelRequire("dm0eT");let l=r.getInput("token"),u=l?"token "+l:void 0,p="actions",f="python-versions",d="main",m=`https://raw.githubusercontent.com/${p}/${f}/${d}/versions-manifest.json`;}),parcelRegister("bG0ld",function(e,t){function r(e,t,r,n){return R(this,void 0,void 0,function*(){t=t||j.join(I(),H.default()),yield D.mkdirP(j.dirname(t)),C.debug("Downloading "+e),C.debug("Destination "+t);let s=3,o=b("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),a=b("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),h=new A.RetryHelper(s,o,a);return yield h.execute(()=>R(this,void 0,void 0,function*(){return yield i(e,t||"",r,n);}),e=>!(e instanceof W)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});}function i(e,t,r,i){return R(this,void 0,void 0,function*(){if(M.existsSync(t))throw Error(`Destination file path ${t} already exists`);let n=new U.HttpClient(q,[],{allowRetries:!1});r&&(C.debug("set auth"),void 0===i&&(i={}),i.authorization=r);let s=yield n.get(e,i);if(200!==s.message.statusCode){let t=new W(s.message.statusCode);throw C.debug(`Failed to download from "${e}". Code(${s.message.statusCode}) Message(${s.message.statusMessage})`),t;}let o=G.promisify(k.pipeline),a=b("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>s.message)(),h=!1;try{return yield o(a,M.createWriteStream(t)),C.debug("download complete"),h=!0,t;}finally{if(!h){C.debug("download failed");try{yield D.rmRF(t);}catch(e){C.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}function n(e,t,r){return R(this,void 0,void 0,function*(){$k14yv$assert.ok(B,"extract7z() not supported on current OS"),$k14yv$assert.ok(e,'parameter "file" is required'),t=yield y(t);let i=process.cwd();if(process.chdir(t),r)try{let t=C.isDebug()?"-bb1":"-bb0",i=["x",t,"-bd","-sccUTF-8",e],n={silent:!0};yield L.exec(`"${r}"`,i,n);}finally{process.chdir(i);}else{let r=j.join(_,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),n=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),s=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${r}' -Source '${n}' -Target '${s}'`],a={silent:!0};try{let e=yield D.which("powershell",!0);yield L.exec(`"${e}"`,o,a);}finally{process.chdir(i);}}return t;});}function s(e,t,r="xz"){return R(this,void 0,void 0,function*(){let i;if(!e)throw Error("parameter 'file' is required");t=yield y(t),C.debug("Checking tar --version");let n="";yield L.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>n+=e.toString(),stderr:e=>n+=e.toString()}}),C.debug(n.trim());let s=n.toUpperCase().includes("GNU TAR");i=r instanceof Array?r:[r],C.isDebug()&&!r.includes("v")&&i.push("-v");let o=t,a=e;return B&&s&&(i.push("--force-local"),o=t.replace(/\\/g,"/"),a=e.replace(/\\/g,"/")),s&&(i.push("--warning=no-unknown-keyword"),i.push("--overwrite")),i.push("-C",o,"-f",a),yield L.exec("tar",i),t;});}function o(e,t,r=[]){return R(this,void 0,void 0,function*(){let i;$k14yv$assert.ok(X,"extractXar() not supported on current OS"),$k14yv$assert.ok(e,'parameter "file" is required'),t=yield y(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),C.isDebug()&&i.push("-v");let n=yield D.which("xar",!0);return yield L.exec(`"${n}"`,O(i)),t;});}function a(e,t){return R(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield y(t),B?yield h(e,t):yield c(e,t),t;});}function h(e,t){return R(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=yield D.which("pwsh",!1);if(n){let e=["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else { throw $_ } } ;`];C.debug("Using pwsh at path: "+n),yield L.exec(`"${n}"`,e);}else{let e=["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${i}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${i}', $true) }`],t=yield D.which("powershell",!0);C.debug("Using powershell at path: "+t),yield L.exec(`"${t}"`,e);}});}function c(e,t){return R(this,void 0,void 0,function*(){let r=yield D.which("unzip",!0),i=[e];C.isDebug()||i.unshift("-q"),i.unshift("-o"),yield L.exec(`"${r}"`,i,{cwd:t});});}function l(e,t,r,i){return R(this,void 0,void 0,function*(){if(r=V.clean(r)||r,i=i||F.arch(),C.debug(`Caching tool ${t} ${r} ${i}`),C.debug("source dir: "+e),!M.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let n=yield E(t,r,i);for(let t of M.readdirSync(e)){let r=j.join(e,t);yield D.cp(r,n,{recursive:!0});}return g(t,r,i),n;});}function u(e,t,r,i,n){return R(this,void 0,void 0,function*(){if(i=V.clean(i)||i,n=n||F.arch(),C.debug(`Caching tool ${r} ${i} ${n}`),C.debug("source file: "+e),!M.statSync(e).isFile())throw Error("sourceFile is not a file");let s=yield E(r,i,n),o=j.join(s,t);return C.debug("destination file "+o),yield D.cp(e,o),g(r,i,n),s;});}function p(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||F.arch(),w(t)||(t=x(f(e,r),t));let i="";if(t){t=V.clean(t)||"";let n=j.join(v(),e,t,r);C.debug("checking cache: "+n),M.existsSync(n)&&M.existsSync(`${n}.complete`)?(C.debug(`Found tool in cache ${e} ${t} ${r}`),i=n):C.debug("not found");}return i;}function f(e,t){let r=[];t=t||F.arch();let i=j.join(v(),e);if(M.existsSync(i)){for(let e of M.readdirSync(i))if(w(e)){let n=j.join(i,e,t||"");M.existsSync(n)&&M.existsSync(`${n}.complete`)&&r.push(e);}}return r;}function d(e,t,r,i="master"){return R(this,void 0,void 0,function*(){let n=[],s=`https://api.github.com/repos/${e}/${t}/git/trees/${i}`,o=new U.HttpClient("tool-cache"),a={};r&&(C.debug("set auth"),a.authorization=r);let h=yield o.getJson(s,a);if(!h.result)return n;let c="";for(let e of h.result.tree)if("versions-manifest.json"===e.path){c=e.url;break;}a.accept="application/vnd.github.VERSION.raw";let l=yield(yield o.get(c,a)).readBody();if(l){l=l.replace(/^\uFEFF/,"");try{n=JSON.parse(l);}catch(e){C.debug("Invalid json");}}return n;});}function m(e,t,r,i=F.arch()){return R(this,void 0,void 0,function*(){return yield $._findMatch(e,t,r,i);});}function y(e){return R(this,void 0,void 0,function*(){return e||(e=j.join(I(),H.default())),yield D.mkdirP(e),e;});}function E(e,t,r){return R(this,void 0,void 0,function*(){let i=j.join(v(),e,V.clean(t)||t,r||"");C.debug("destination "+i);let n=`${i}.complete`;return yield D.rmRF(i),yield D.rmRF(n),yield D.mkdirP(i),i;});}function g(e,t,r){let i=j.join(v(),e,V.clean(t)||t,r||""),n=`${i}.complete`;M.writeFileSync(n,""),C.debug("finished caching tool");}function w(e){let t=V.clean(e)||"";C.debug("isExplicit: "+t);let r=null!=V.valid(t);return C.debug("explicit? "+r),r;}function x(e,t){let r="";C.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>V.gt(e,t)?1:-1);for(let i=e.length-1;i>=0;i--){let n=e[i];if(V.satisfies(n,t)){r=n;break;}}return r?C.debug("matched: "+r):C.debug("match not found"),r;}function v(){let e=process.env.RUNNER_TOOL_CACHE||"";return $k14yv$assert.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function I(){let e=process.env.RUNNER_TEMP||"";return $k14yv$assert.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function b(e,t){let r=$parcel$global[e];return void 0!==r?r:t;}function O(e){return Array.from(new Set(e));}var N,S,T,R,P,L,A,_=$k14yv$path.resolve(__dirname,"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib");N=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),S=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),T=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&N(t,e,r);return S(t,e),t;},R=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},P=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.evaluateVersions=e.exports.isExplicitVersion=e.exports.findFromManifest=e.exports.getManifestFromRepo=e.exports.findAllVersions=e.exports.find=e.exports.cacheFile=e.exports.cacheDir=e.exports.extractZip=e.exports.extractXar=e.exports.extractTar=e.exports.extract7z=e.exports.downloadTool=e.exports.HTTPError=void 0;let C=T(parcelRequire("4t50X")),D=T(parcelRequire("hZdK0")),M=T($k14yv$fs),$=T(parcelRequire("8rRFf")),F=T($k14yv$os),j=T($k14yv$path),U=T(parcelRequire("a7JAS")),V=T(parcelRequire("lIb6h")),k=T($k14yv$stream),G=T($k14yv$util),H=P(parcelRequire("cdVym"));L=parcelRequire("1f6JF"),A=parcelRequire("lI4Zo");class W extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}e.exports.HTTPError=W;let B="win32"===process.platform,X="darwin"===process.platform,q="actions/tool-cache";e.exports.downloadTool=r,e.exports.extract7z=n,e.exports.extractTar=s,e.exports.extractXar=o,e.exports.extractZip=a,e.exports.cacheDir=l,e.exports.cacheFile=u,e.exports.find=p,e.exports.findAllVersions=f,e.exports.getManifestFromRepo=d,e.exports.findFromManifest=m,e.exports.isExplicitVersion=w,e.exports.evaluateVersions=x;}),parcelRegister("8rRFf",function(e,t){var r,i,n,s,o;function a(t,r,i,n){return s(this,void 0,void 0,function*(){let s,a,h;let c=$k14yv$os.platform();for(let s of i){let i=s.version;if(o.debug(`check ${i} satisfies ${t}`),l.satisfies(i,t)&&(!r||s.stable===r)&&(h=s.files.find(t=>{o.debug(`${t.arch}===${n} && ${t.platform}===${c}`);let r=t.arch===n&&t.platform===c;if(r&&t.platform_version){let i=e.exports._getOsVersion();r=i===t.platform_version||l.satisfies(i,t.platform_version);}return r;}))){o.debug("matched "+s.version),a=s;break;}}return a&&h&&((s=Object.assign({},a)).files=[h]),s;});}function h(){let t=$k14yv$os.platform(),r="";if("darwin"===t)r=$k14yv$child_process.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;}function c(){let e="/etc/lsb-release",t="/etc/os-release",r="";return $k14yv$fs.existsSync(e)?r=$k14yv$fs.readFileSync(e).toString():$k14yv$fs.existsSync(t)&&(r=$k14yv$fs.readFileSync(t).toString()),r;}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r];}),i=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t;},s=e.exports&&e.exports.__awaiter||function(e,t,r,i){function n(e){return e instanceof r?e:new r(function(t){t(e);});}return new(r||(r=Promise))(function(r,s){function o(e){try{h(i.next(e));}catch(e){s(e);}}function a(e){try{h(i.throw(e));}catch(e){s(e);}}function h(e){e.done?r(e.value):n(e.value).then(o,a);}h((i=i.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let l=n(parcelRequire("lIb6h"));o=parcelRequire("4t50X"),e.exports._findMatch=a,e.exports._getOsVersion=h,e.exports._readLinuxVersionFile=c;}),parcelRegister("lIb6h",function(e,t){function r(e){eh[e]=ec++;}function i(e){for(var t=0;tet||!(t.loose?eo[eh.LOOSE]:eo[eh.FULL]).test(e))return null;try{return new a(e,t);}catch(e){return null;}}function s(e,t){var r=n(e,t);return r?r.version:null;}function o(e,t){var r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null;}function a(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof a){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>et)throw TypeError("version is longer than "+et+" characters");if(!(this instanceof a))return new a(e,t);ee("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?eo[eh.LOOSE]:eo[eh.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>er||this.major<0)throw TypeError("Invalid major version");if(this.minor>er||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>er||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function u(e,t){return l(t,e);}function p(e,t){return new a(e,t).major;}function f(e,t){return new a(e,t).minor;}function d(e,t){return new a(e,t).patch;}function m(e,t,r){return new a(e,r).compare(new a(t,r));}function y(e,t){return m(e,t,!0);}function E(e,t,r){var i=new a(e,r),n=new a(t,r);return i.compare(n)||i.compareBuild(n);}function g(e,t,r){return m(t,e,r);}function w(e,r){return e.sort(function(e,i){return t.compareBuild(e,i,r);});}function x(e,r){return e.sort(function(e,i){return t.compareBuild(i,e,r);});}function v(e,t,r){return m(e,t,r)>0;}function I(e,t,r){return 0>m(e,t,r);}function b(e,t,r){return 0===m(e,t,r);}function O(e,t,r){return 0!==m(e,t,r);}function N(e,t,r){return m(e,t,r)>=0;}function S(e,t,r){return 0>=m(e,t,r);}function T(e,t,r,i){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return b(e,r,i);case"!=":return O(e,r,i);case">":return v(e,r,i);case">=":return N(e,r,i);case"<":return I(e,r,i);case"<=":return S(e,r,i);default:throw TypeError("Invalid operator: "+t);}}function R(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof R){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof R))return new R(e,t);e=e.trim().split(/\s+/).join(" "),ee("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ey?this.value="":this.value=this.operator+this.semver.version,ee("comp",this);}function P(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof P)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new P(e.raw,t);if(e instanceof R)return new P(e.value,t);if(!(this instanceof P))return new P(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function L(e,t){for(var r=!0,i=e.slice(),n=i.pop();r&&i.length;)r=i.every(function(e){return n.intersects(e,t);}),n=i.pop();return r;}function A(e,t){return new P(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});}function _(e,t){return ee("comp",e,t),e=$(e,t),ee("caret",e),e=D(e,t),ee("tildes",e),e=j(e,t),ee("xrange",e),e=V(e,t),ee("stars",e),e;}function C(e){return!e||"x"===e.toLowerCase()||"*"===e;}function D(e,t){return e.trim().split(/\s+/).map(function(e){return M(e,t);}).join(" ");}function M(e,t){var r=t.loose?eo[eh.TILDELOOSE]:eo[eh.TILDE];return e.replace(r,function(t,r,i,n,s){var o;return ee("tilde",e,t,r,i,n,s),C(r)?o="":C(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":C(n)?o=">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":s?(ee("replaceTilde pr",s),o=">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0"):o=">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0",ee("tilde return",o),o;});}function $(e,t){return e.trim().split(/\s+/).map(function(e){return F(e,t);}).join(" ");}function F(e,t){ee("caret",e,t);var r=t.loose?eo[eh.CARETLOOSE]:eo[eh.CARET];return e.replace(r,function(t,r,i,n,s){var o;return ee("caret",e,t,r,i,n,s),C(r)?o="":C(i)?o=">="+r+".0.0 <"+(+r+1)+".0.0":C(n)?o="0"===r?">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":">="+r+"."+i+".0 <"+(+r+1)+".0.0":s?(ee("replaceCaret pr",s),o="0"===r?"0"===i?">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+"-"+s+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+"-"+s+" <"+(+r+1)+".0.0"):(ee("no pr"),o="0"===r?"0"===i?">="+r+"."+i+"."+n+" <"+r+"."+i+"."+(+n+1):">="+r+"."+i+"."+n+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+n+" <"+(+r+1)+".0.0"),ee("caret return",o),o;});}function j(e,t){return ee("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return U(e,t);}).join(" ");}function U(e,t){e=e.trim();var r=t.loose?eo[eh.XRANGELOOSE]:eo[eh.XRANGE];return e.replace(r,function(r,i,n,s,o,a){ee("xRange",e,r,i,n,s,o,a);var h=C(n),c=h||C(s),l=c||C(o),u=l;return"="===i&&u&&(i=""),a=t.includePrerelease?"-0":"",h?r=">"===i||"<"===i?"<0.0.0-0":"*":i&&u?(c&&(s=0),o=0,">"===i?(i=">=",c?(n=+n+1,s=0):s=+s+1,o=0):"<="===i&&(i="<",c?n=+n+1:s=+s+1),r=i+n+"."+s+"."+o+a):c?r=">="+n+".0.0"+a+" <"+(+n+1)+".0.0"+a:l&&(r=">="+n+"."+s+".0"+a+" <"+n+"."+(+s+1)+".0"+a),ee("xRange return",r),r;});}function V(e,t){return ee("replaceStars",e,t),e.trim().replace(eo[eh.STAR],"");}function k(e,t,r,i,n,s,o,a,h,c,l,u,p){return((t=C(r)?"":C(i)?">="+r+".0.0":C(n)?">="+r+"."+i+".0":">="+t)+" "+(a=C(h)?"":C(c)?"<"+(+h+1)+".0.0":C(l)?"<"+h+"."+(+c+1)+".0":u?"<="+h+"."+c+"."+l+"-"+u:"<="+a)).trim();}function G(e,t,r){for(var i=0;i0){var n=e[i].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;}function H(e,t,r){try{t=new P(t,r);}catch(e){return!1;}return t.test(e);}function W(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||-1===n.compare(e))&&(n=new a(i=e,r));}),i;}function B(e,t,r){var i=null,n=null;try{var s=new P(t,r);}catch(e){return null;}return e.forEach(function(e){s.test(e)&&(!i||1===n.compare(e))&&(n=new a(i=e,r));}),i;}function X(e,t){e=new P(e,t);var r=new a("0.0.0");if(e.test(r)||(r=new a("0.0.0-0"),e.test(r)))return r;r=null;for(var i=0;i":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||v(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;}function q(e,t){try{return new P(e,t).range||"*";}catch(e){return null;}}function Z(e,t,r){return K(e,t,"<",r);}function Y(e,t,r){return K(e,t,">",r);}function K(e,t,r,i){switch(e=new a(e,i),t=new P(t,i),r){case">":n=v,s=S,o=I,h=">",c=">=";break;case"<":n=I,s=N,o=v,h="<",c="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(H(e,t,i))return!1;for(var n,s,o,h,c,l=0;l=0.0.0")),p=p||e,f=f||e,n(e.semver,p.semver,i)?p=e:o(e.semver,f.semver,i)&&(f=e);}),p.operator===h||p.operator===c||(!f.operator||f.operator===h)&&s(e,f.semver)||f.operator===c&&o(e,f.semver))return!1;}return!0;}function z(e,t){var r=n(e,t);return r&&r.prerelease.length?r.prerelease:null;}function J(e,t,r){return e=new P(e,r),t=new P(t,r),e.intersects(t);}function Q(e,t){if(e instanceof a)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,i=null;if((t=t||{}).rtl){for(;(r=eo[eh.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),eo[eh.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;eo[eh.COERCERTL].lastIndex=-1;}else i=e.match(eo[eh.COERCE]);return null===i?null:n(i[2]+"."+(i[3]||"0")+"."+(i[4]||"0"),t);}t=e.exports=a,ee="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",et=256,er=Number.MAX_SAFE_INTEGER||9007199254740991,ei=16,en=et-6,es=t.re=[],eo=t.safeRe=[],ea=t.src=[],eh=t.tokens={},ec=0,eu=[["\\s",1],["\\d",et],[el="[a-zA-Z0-9-]",en]],r("NUMERICIDENTIFIER"),ea[eh.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),ea[eh.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),ea[eh.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+el+"*",r("MAINVERSION"),ea[eh.MAINVERSION]="("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")\\.("+ea[eh.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),ea[eh.MAINVERSIONLOOSE]="("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")\\.("+ea[eh.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),ea[eh.PRERELEASEIDENTIFIER]="(?:"+ea[eh.NUMERICIDENTIFIER]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),ea[eh.PRERELEASEIDENTIFIERLOOSE]="(?:"+ea[eh.NUMERICIDENTIFIERLOOSE]+"|"+ea[eh.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),ea[eh.PRERELEASE]="(?:-("+ea[eh.PRERELEASEIDENTIFIER]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),ea[eh.PRERELEASELOOSE]="(?:-?("+ea[eh.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+ea[eh.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),ea[eh.BUILDIDENTIFIER]=el+"+",r("BUILD"),ea[eh.BUILD]="(?:\\+("+ea[eh.BUILDIDENTIFIER]+"(?:\\."+ea[eh.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),ea[eh.FULLPLAIN]="v?"+ea[eh.MAINVERSION]+ea[eh.PRERELEASE]+"?"+ea[eh.BUILD]+"?",ea[eh.FULL]="^"+ea[eh.FULLPLAIN]+"$",r("LOOSEPLAIN"),ea[eh.LOOSEPLAIN]="[v=\\s]*"+ea[eh.MAINVERSIONLOOSE]+ea[eh.PRERELEASELOOSE]+"?"+ea[eh.BUILD]+"?",r("LOOSE"),ea[eh.LOOSE]="^"+ea[eh.LOOSEPLAIN]+"$",r("GTLT"),ea[eh.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),ea[eh.XRANGEIDENTIFIERLOOSE]=ea[eh.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),ea[eh.XRANGEIDENTIFIER]=ea[eh.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),ea[eh.XRANGEPLAIN]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:\\.("+ea[eh.XRANGEIDENTIFIER]+")(?:"+ea[eh.PRERELEASE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),ea[eh.XRANGEPLAINLOOSE]="[v=\\s]*("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ea[eh.XRANGEIDENTIFIERLOOSE]+")(?:"+ea[eh.PRERELEASELOOSE]+")?"+ea[eh.BUILD]+"?)?)?",r("XRANGE"),ea[eh.XRANGE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAIN]+"$",r("XRANGELOOSE"),ea[eh.XRANGELOOSE]="^"+ea[eh.GTLT]+"\\s*"+ea[eh.XRANGEPLAINLOOSE]+"$",r("COERCE"),ea[eh.COERCE]="(^|[^\\d])(\\d{1,"+ei+"})(?:\\.(\\d{1,"+ei+"}))?(?:\\.(\\d{1,"+ei+"}))?(?:$|[^\\d])",r("COERCERTL"),es[eh.COERCERTL]=RegExp(ea[eh.COERCE],"g"),eo[eh.COERCERTL]=RegExp(i(ea[eh.COERCE]),"g"),r("LONETILDE"),ea[eh.LONETILDE]="(?:~>?)",r("TILDETRIM"),ea[eh.TILDETRIM]="(\\s*)"+ea[eh.LONETILDE]+"\\s+",es[eh.TILDETRIM]=RegExp(ea[eh.TILDETRIM],"g"),eo[eh.TILDETRIM]=RegExp(i(ea[eh.TILDETRIM]),"g"),ep="$1~",r("TILDE"),ea[eh.TILDE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAIN]+"$",r("TILDELOOSE"),ea[eh.TILDELOOSE]="^"+ea[eh.LONETILDE]+ea[eh.XRANGEPLAINLOOSE]+"$",r("LONECARET"),ea[eh.LONECARET]="(?:\\^)",r("CARETTRIM"),ea[eh.CARETTRIM]="(\\s*)"+ea[eh.LONECARET]+"\\s+",es[eh.CARETTRIM]=RegExp(ea[eh.CARETTRIM],"g"),eo[eh.CARETTRIM]=RegExp(i(ea[eh.CARETTRIM]),"g"),ef="$1^",r("CARET"),ea[eh.CARET]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAIN]+"$",r("CARETLOOSE"),ea[eh.CARETLOOSE]="^"+ea[eh.LONECARET]+ea[eh.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),ea[eh.COMPARATORLOOSE]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),ea[eh.COMPARATOR]="^"+ea[eh.GTLT]+"\\s*("+ea[eh.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),ea[eh.COMPARATORTRIM]="(\\s*)"+ea[eh.GTLT]+"\\s*("+ea[eh.LOOSEPLAIN]+"|"+ea[eh.XRANGEPLAIN]+")",es[eh.COMPARATORTRIM]=RegExp(ea[eh.COMPARATORTRIM],"g"),eo[eh.COMPARATORTRIM]=RegExp(i(ea[eh.COMPARATORTRIM]),"g"),ed="$1$2$3",r("HYPHENRANGE"),ea[eh.HYPHENRANGE]="^\\s*("+ea[eh.XRANGEPLAIN]+")\\s+-\\s+("+ea[eh.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),ea[eh.HYPHENRANGELOOSE]="^\\s*("+ea[eh.XRANGEPLAINLOOSE]+")\\s+-\\s+("+ea[eh.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),ea[eh.STAR]="(<|>)?=?\\s*\\*";for(var ee,et,er,ei,en,es,eo,ea,eh,ec,el,eu,ep,ef,ed,em,ey,eE=0;eE=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=h,t.diff=c,t.compareIdentifiers=l,em=/^[0-9]+$/,t.rcompareIdentifiers=u,t.major=p,t.minor=f,t.patch=d,t.compare=m,t.compareLoose=y,t.compareBuild=E,t.rcompare=g,t.sort=w,t.rsort=x,t.gt=v,t.lt=I,t.eq=b,t.neq=O,t.gte=N,t.lte=S,t.cmp=T,t.Comparator=R,ey={},R.prototype.parse=function(e){var t=this.options.loose?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new a(r[2],this.options.loose):this.semver=ey;},R.prototype.toString=function(){return this.value;},R.prototype.test=function(e){if(ee("Comparator.test",e,this.options.loose),this.semver===ey||e===ey)return!0;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}return T(e,this.operator,this.semver,this.options);},R.prototype.intersects=function(e,t){if(!(e instanceof R))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new P(e.value,t),H(this.value,r,t));if(""===e.operator)return""===e.value||(r=new P(this.value,t),H(e.semver,r,t));var r,i=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),n=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),s=this.semver.version===e.semver.version,o=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),a=T(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),h=T(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||n||s&&o||a||h;},t.Range=P,P.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},P.prototype.toString=function(){return this.range;},P.prototype.parseRange=function(e){var t=this.options.loose,r=t?eo[eh.HYPHENRANGELOOSE]:eo[eh.HYPHENRANGE];e=e.replace(r,k),ee("hyphen replace",e),e=e.replace(eo[eh.COMPARATORTRIM],ed),ee("comparator trim",e,eo[eh.COMPARATORTRIM]),e=(e=(e=e.replace(eo[eh.TILDETRIM],ep)).replace(eo[eh.CARETTRIM],ef)).split(/\s+/).join(" ");var i=t?eo[eh.COMPARATORLOOSE]:eo[eh.COMPARATOR],n=e.split(" ").map(function(e){return _(e,this.options);},this).join(" ").split(/\s+/);return this.options.loose&&(n=n.filter(function(e){return!!e.match(i);})),n=n.map(function(e){return new R(e,this.options);},this);},P.prototype.intersects=function(e,t){if(!(e instanceof P))throw TypeError("a Range is required");return this.set.some(function(r){return L(r,t)&&e.set.some(function(e){return L(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=A,P.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new a(e,this.options);}catch(e){return!1;}for(var t=0;tthis.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return s(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}}e.exports.RetryHelper=a;}),parcelRegister("9q7Zq",function(e,t){var r,i,n,s,o;async function a(e,t,n,o,a){let l,u,p="",f="",d=c(e);if(o&&(u=await r.getAvailablePyPyVersions())&&u.length>0){let e=r.findRelease(u,d.pythonVersion,d.pypyVersion,t,!1);e?(s.info(`Resolved as PyPy ${e.resolvedPyPyVersion} with Python (${e.resolvedPythonVersion})`),d.pythonVersion=e.resolvedPythonVersion,d.pypyVersion=e.resolvedPyPyVersion):s.info(`Failed to resolve PyPy ${d.pypyVersion} with Python (${d.pythonVersion}) from manifest`);}({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=h(d.pythonVersion,d.pypyVersion,t)),l||({installDir:l,resolvedPythonVersion:f,resolvedPyPyVersion:p}=await r.installPyPy(d.pypyVersion,d.pythonVersion,t,a,u));let m=i.IS_WINDOWS?"Scripts":"bin",y=$k14yv$path.join(l,m),E=i.IS_WINDOWS?".exe":"",g=$k14yv$path.join(i.IS_WINDOWS?l:y,"python"+E),w=r.getPyPyBinaryPath(l);return n&&(s.exportVariable("pythonLocation",l),s.exportVariable("Python_ROOT_DIR",l),s.exportVariable("Python2_ROOT_DIR",l),s.exportVariable("Python3_ROOT_DIR",l),s.exportVariable("PKG_CONFIG_PATH",w+"/lib/pkgconfig"),s.addPath(w),s.addPath(y)),s.setOutput("python-version","pypy"+p),s.setOutput("python-path",g),{resolvedPyPyVersion:p,resolvedPythonVersion:f};}function h(e,t,r){let a="",h="",c=i.IS_WINDOWS?l(e):o.find("PyPy",e,r);return c&&(h=(0,i.getPyPyVersionFromPath)(c),a=(0,i.readExactPyPyVersionFile)(c),n.satisfies(a,t)||(c=null,a="",h="")),c||s.info(`PyPy version ${e} (${t}) was not found in the local cache`),{installDir:c,resolvedPythonVersion:h,resolvedPyPyVersion:a};}function c(e){let t;let n=e.split("-").filter(e=>!!e);if(/^(pypy)(.+)/.test(n[0])){let e=n[0].replace("pypy","");n.splice(0,1,"pypy",e);}if(n.length<2||"pypy"!=n[0])throw Error("Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.");let s=n[1];if(t=n.length>2?r.pypyVersionToSemantic(n[2]):"x",!(0,i.validateVersion)(s)||!(0,i.validateVersion)(t))throw Error("Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.");if(!(0,i.validatePythonVersionFormatForPyPy)(s))throw Error("Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.");return{pypyVersion:t,pythonVersion:s};}function l(e){let t="";return(0,i.WINDOWS_ARCHS).forEach(r=>t=t||o.find("PyPy",e,r)),t;}$parcel$export(e.exports,"findPyPyVersion",()=>a),r=parcelRequire("3Fegg"),i=parcelRequire("dm0eT"),n=parcelRequire("bSUdl"),s=parcelRequire("4t50X"),o=parcelRequire("bG0ld");}),parcelRegister("3Fegg",function(e,t){var r,i,n,s,o,a;async function h(e,t,n,s,o){let h;if(!(o=o??(await c()))||0===o.length)throw Error("No release was found in PyPy version.json");let d=p(o,t,e,n,!1);if(!s||d&&d.foundAsset||(r.info([`Stable PyPy version ${t} (${e}) with arch ${n} not found`,"Trying pre-release versions"].join($k14yv$os.EOL)),d=p(o,t,e,n,!0)),!d||!d.foundAsset)throw Error(`PyPy version ${t} (${e}) with arch ${n} not found`);let{foundAsset:m,resolvedPythonVersion:y,resolvedPyPyVersion:E}=d,g=""+m.download_url;r.info(`Downloading PyPy from "${g}" ...`);try{let e=await i.downloadTool(g);r.info("Extracting downloaded archive..."),h=a.IS_WINDOWS?await i.extractZip(e):await i.extractTar(e,void 0,"x");let t=$parcel$interopDefault($k14yv$fs).readdirSync(h)[0],s=$k14yv$path.join(h,t),o=s;(0,a.isNightlyKeyword)(E)||(o=await i.cacheDir(s,"PyPy",y,n)),(0,a.writeExactPyPyVersionFile)(o,E);let c=f(o);return await l(c,y),await u(c),{installDir:o,resolvedPythonVersion:y,resolvedPyPyVersion:E};}catch(e){throw e instanceof Error&&(e instanceof i.HTTPError&&(403===e.httpStatusCode||429===e.httpStatusCode)?r.info(`Received HTTP status code ${e.httpStatusCode}. This usually indicates the rate limit has been exceeded`):r.info(e.message),void 0!==e.stack&&r.debug(e.stack)),e;}}async function c(){let e="https://downloads.python.org/pypy/versions.json",t=new s.HttpClient("tool-cache"),r=await t.getJson(e);if(!r.result)throw Error(`Unable to retrieve the list of available PyPy versions from '${e}'`);return r.result;}async function l(e,t){let i=n.coerce(t),s=n.major(i),o=n.minor(i),h=2===s?"":"3",c=`${s}.${o}`,l=a.IS_WINDOWS?".exe":"";r.info("Creating symlinks..."),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`python${s}${l}`,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,"python"+l,!0),(0,a.createSymlinkInFolder)(e,`pypy${h}${l}`,`pypy${c}${l}`,!0);}async function u(e){r.info("Installing and updating pip");let t=$k14yv$path.join(e,"python");await o.exec(`${t} -m ensurepip`),await o.exec(`${e}/python -m pip install --ignore-installed pip`);}function p(e,t,r,i,s){let o={includePrerelease:s},h=e.filter(e=>{let s=n.satisfies(n.coerce(e.python_version),t),h=(0,a.isNightlyKeyword)(r)&&(0,a.isNightlyKeyword)(e.pypy_version)||n.satisfies(d(e.pypy_version),r,o),c=e.files&&(a.IS_WINDOWS?m(e,i):y(e,i,process.platform));return s&&h&&c;});if(0===h.length)return null;let c=h.sort((e,t)=>n.compare(n.coerce(d(t.pypy_version)),n.coerce(d(e.pypy_version)))||n.compare(n.coerce(t.python_version),n.coerce(e.python_version)))[0];return{foundAsset:a.IS_WINDOWS?E(c,i):g(c,i,process.platform),resolvedPythonVersion:c.python_version,resolvedPyPyVersion:c.pypy_version.trim()};}function f(e){let t=$k14yv$path.join(e,"bin");return a.IS_WINDOWS?e:t;}function d(e){let t=/(\d+\.\d+\.\d+)((?:a|b|rc))(\d*)/g;return e.replace(t,"$1-$2.$3");}function m(e,t){return t=w(t),e.files.some(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function y(e,t,r){return e.files.some(e=>e.arch===t&&e.platform===r);}function E(e,t){return t=w(t),e.files.find(e=>(0,a.WINDOWS_PLATFORMS).includes(e.platform)&&e.arch===t);}function g(e,t,r){return e.files.find(e=>e.arch===t&&e.platform===r);}function w(e){return"x32"===e&&(e="x86"),e;}$parcel$export(e.exports,"installPyPy",()=>h),$parcel$export(e.exports,"getAvailablePyPyVersions",()=>c),$parcel$export(e.exports,"findRelease",()=>p),$parcel$export(e.exports,"getPyPyBinaryPath",()=>f),$parcel$export(e.exports,"pypyVersionToSemantic",()=>d),r=parcelRequire("4t50X"),i=parcelRequire("bG0ld"),n=parcelRequire("bSUdl"),s=parcelRequire("a7JAS"),o=parcelRequire("1f6JF"),a=parcelRequire("dm0eT");}); -//# sourceMappingURL=actions_python.6be0dfa4.js.map \ No newline at end of file diff --git a/dist/modern/actions_python.6be0dfa4.js.map b/dist/modern/actions_python.6be0dfa4.js.map deleted file mode 100644 index 886e038a..00000000 --- a/dist/modern/actions_python.6be0dfa4.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"actions_python.6be0dfa4.js","names":["u","e","startsWith","p","t","o","h","IS_MAC","process","env","AGENT_TOOLSDIRECTORY","c","trim","RUNNER_TOOL_CACHE","s","debug","r","i","findPyPyVersion","d","resolvedPyPyVersion","resolvedPythonVersion","n","info","useCpythonVersion","version","impl","a","GITHUB_ACTIONS","f","join","l","pathExists","warning","IS_WINDOWS","$k14yv$path","m","getManifest","findReleaseFromManifest","y","find","files","length","installCpythonFromRelease","getOSInfo","Error","osName","osVersion","MANIFEST_URL","$k14yv$os","EOL","E","g","w","exportVariable","IS_LINUX","LD_LIBRARY_PATH","split","includes","addPath","basename","dirname","major","minor","APPDATA","x","setOutput","replace","sep","findIndex","$parcel$interopDefault","$k14yv$fs","existsSync","symlinkSync","chmodSync","validRange","v","readFileSync","toString","writeFileSync","test","stdout","getExecOutput","silent","message","parcelRequire","platform","exports","async","stream","prettyError","$parcel$global","Buffer","isBuffer","parse","finish","_custom","isDigit","CHAR_0","CHAR_9","isHexit","CHAR_A","CHAR_F","CHAR_a","CHAR_f","isBit","CHAR_1","isOctit","CHAR_7","isAlphaNumQuoteHyphen","CHAR_Z","CHAR_z","CHAR_APOS","CHAR_QUOT","CHAR_LOWBAR","CHAR_HYPHEN","isAlphaNumHyphen","hasKey","hasOwnProperty","call","defineProperty","descriptor","InlineTable","Object","defineProperties","_type","value","INLINE_TABLE","isInlineTable","Table","TABLE","_declared","writable","isTable","InlineList","INLINE_LIST","_contentType","isInlineList","List","LIST","isList","Integer","is","BigInt","Number","isSafeInteger","BoxedBigInt","isNaN","INTEGER","_inspect","isInteger","Float","FLOAT","isFloat","tomlType","Date","makeParserClass","constructor","ctx","obj","atEndOfWord","char","CHAR_NUM","CTRL_I","CHAR_SP","atEndOfLine","END","CTRL_J","CTRL_M","parseStart","CHAR_LSQB","parseTableOrList","parseComment","callNow","parseAssignStatement","error","TomlError","parseWhitespaceToEOL","goto","return","parseAssign","recordAssignStatement","key","pop","valueOf","parseKeyword","recordAssignKeyword","state","resultTable","push","parseAssignKeywordPreDot","CHAR_PERIOD","next","parseAssignKeywordPostDot","parseAssignEqual","CHAR_EQUALS","parseAssignPreValue","parseValue","recordAssignValue","returnNow","nextChar","parseTable","parseList","parseTableNext","parseTableMore","CHAR_RSQB","parseListNext","parseListMore","parseListEnd","parseDoubleString","parseSingleString","CHAR_PLUS","parseNumberSign","CHAR_i","parseInf","CHAR_n","parseNan","parseNumberOrDateTime","CHAR_t","parseBoolean","parseInlineList","recordValue","CHAR_LCUB","parseInlineTable","parseInf2","buf","parseNan2","NaN","parseBasicString","parseLiteralString","parseBareKey","consume","parseLiteralMultiStringMaybe","CHAR_DEL","CTRL_CHAR_BOUNDARY","errorControlCharInString","parseLiteralMultiString","parseLiteralMultiStringContent","parseLiteralMultiEnd","parseLiteralMultiEnd2","parseMultiStringMaybe","CHAR_BSOL","parseEscape","recordEscapeReplacement","parseMultiString","parseMultiStringContent","parseMultiEscape","recordMultiEscapeReplacement","parseMultiEnd","parseMultiEnd2","parseMultiTrim","parsePreMultiTrim","escapes","CHAR_u","parseSmallUnicode","parseUnicodeReturn","CHAR_U","parseLargeUnicode","parseInt","SURROGATE_FIRST","SURROGATE_LAST","String","fromCodePoint","wrap","parseMaybeSignedInfOrNan","parseNoUnder","parseNumberIntegerStart","parseNumberIntegerExponentOrDecimal","parseNumberInteger","parseNumberFloat","CHAR_E","CHAR_e","parseNumberExponentSign","parseNoUnderHexOctBinLiteral","parseNumberExponent","parseNumberBaseOrDateTime","parseNumberOrDateTimeOnly","parseDateTime","CHAR_COLON","parseOnlyTimeHour","parseDateTimeOnly","CHAR_b","parseIntegerBin","CHAR_o","parseIntegerOct","CHAR_x","parseIntegerHex","result","parseDateMonth","parseDateDay","CHAR_T","parseStartTimeHour","$4xjP6","parseTimeHour","parseTimeMin","parseTimeSec","parseTimeZoneOrFraction","parseOnlyTimeMin","parseOnlyTimeSec","parseOnlyTimeFractionMaybe","$3wXZs","parseOnlyTimeFraction","parseDateTimeFraction","parseTimeZoneHour","$9FJkb","$90qfX","parseTimeZoneSep","parseTimeZoneMin","parseTrue_r","parseFalse_a","CHAR_r","parseTrue_u","parseTrue_e","parseFalse_l","CHAR_l","parseFalse_s","CHAR_s","parseFalse_e","resultArr","recordInlineListValue","parseInlineListNext","CHAR_COMMA","CHAR_RCUB","recordInlineTableValue","parseInlineTableNext","module","name","captureStackTrace","fromTOML","wrapped","code","Symbol","prototype","configurable","enumerable","utilInspect","eval","custom","_","asIntN","parser","returned","pos","col","line","stack","_buf","ii","runOne","codePointAt","haveBuffer","JSON","stringify","TypeError","isFloating","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","isDate","isTime","Math","min","max","slice","setImmediate","blocksize","Promise","setEncoding","read","once","$k14yv$stream","Transform","objectMode","transform","emit","flush","toJSON","keys","filter","Array","isArray","forEach","R","map","I","S","T","b","O","every","N","P","L","findFromManifest","getManifestFromRepo","cwd","listeners","stderr","exec","download_url","downloadTool","extractZip","extractTar","HTTPError","httpStatusCode","getInput","j","H","default","D","mkdirP","C","A","RetryHelper","execute","W","M","U","HttpClient","q","allowRetries","authorization","get","statusCode","statusMessage","G","promisify","k","pipeline","createWriteStream","rmRF","$k14yv$assert","ok","B","chdir","isDebug","which","ignoreReturnCode","toUpperCase","X","unshift","V","clean","F","arch","statSync","isDirectory","readdirSync","cp","recursive","isFile","getJson","tree","path","url","accept","readBody","$","_findMatch","valid","sort","gt","satisfies","RUNNER_TEMP","from","Set","$k14yv$util","setPrototypeOf","new","target","extract7z","extractXar","cacheDir","cacheFile","findAllVersions","isExplicitVersion","evaluateVersions","stable","platform_version","_getOsVersion","assign","$k14yv$child_process","execSync","_readLinuxVersionFile","eh","ec","eu","loose","includePrerelease","et","eo","LOOSE","FULL","ee","options","match","raw","patch","er","prerelease","build","format","inc","em","compare","compareBuild","semver","ey","operator","set","parseRange","intersects","toLowerCase","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","range","Z","K","Y","z","J","Q","rtl","COERCERTL","index","lastIndex","COERCE","NODE_DEBUG","arguments","console","log","apply","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","ei","en","es","re","safeRe","ea","src","tokens","el","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","LOOSEPLAIN","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","RegExp","LONETILDE","TILDETRIM","ep","LONECARET","CARETTRIM","ef","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","ed","HYPHENRANGE","HYPHENRANGELOOSE","eE","SemVer","compareMain","comparePre","diff","compareIdentifiers","rcompareIdentifiers","compareLoose","rcompare","rsort","lt","eq","neq","gte","lte","cmp","Comparator","Range","some","toComparators","maxSatisfying","minSatisfying","minVersion","ltr","gtr","outside","coerce","random","rng","$k14yv$crypto","randomBytes","substr","maxAttempts","minSeconds","floor","maxSeconds","getSleepAmount","sleep","setTimeout","getAvailablePyPyVersions","findRelease","pythonVersion","pypyVersion","installDir","installPyPy","getPyPyBinaryPath","getPyPyVersionFromPath","readExactPyPyVersionFile","splice","pypyVersionToSemantic","validateVersion","validatePythonVersionFormatForPyPy","WINDOWS_ARCHS","foundAsset","isNightlyKeyword","writeExactPyPyVersionFile","createSymlinkInFolder","python_version","pypy_version","WINDOWS_PLATFORMS"],"sources":["../../","../../src/python/actions_python.ts","../../node_modules/setup-python/src/find-python.ts","../../node_modules/setup-python/src/utils.ts","../../node_modules/@iarna/toml/toml.js","../../node_modules/@iarna/toml/parse.js","../../node_modules/@iarna/toml/parse-string.js","../../node_modules/@iarna/toml/lib/toml-parser.js","../../node_modules/@iarna/toml/lib/parser.js","../../node_modules/@iarna/toml/lib/create-datetime.js","../../node_modules/@iarna/toml/lib/create-datetime-float.js","../../node_modules/@iarna/toml/lib/format-num.js","../../node_modules/@iarna/toml/lib/create-date.js","../../node_modules/@iarna/toml/lib/create-time.js","../../node_modules/@iarna/toml/parse-pretty-error.js","../../node_modules/@iarna/toml/parse-async.js","../../node_modules/@iarna/toml/parse-stream.js","../../node_modules/@iarna/toml/stringify.js","../../node_modules/setup-python/src/install-python.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/setup-python/node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/setup-python/node_modules/uuid/v4.js","../../node_modules/setup-python/node_modules/uuid/lib/rng.js","../../node_modules/setup-python/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/setup-python/node_modules/@actions/tool-cache/src/retry-helper.ts","../../node_modules/setup-python/src/find-pypy.ts","../../node_modules/setup-python/src/install-pypy.ts"],"sourcesContent":["var $k14yv$path = require(\"path\");\nvar $k14yv$os = require(\"os\");\nvar $k14yv$fs = require(\"fs\");\nvar $k14yv$stream = require(\"stream\");\nvar $k14yv$util = require(\"util\");\nvar $k14yv$assert = require(\"assert\");\nvar $k14yv$child_process = require(\"child_process\");\nvar $k14yv$crypto = require(\"crypto\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire810d\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"4kQHk\", function(module, exports) {\n\n$parcel$export(module.exports, \"setupActionsPython\", () => $e56abd13265dde94$export$5655ebf4048b68d5);\n\nvar $66RQi = parcelRequire(\"66RQi\");\n\nvar $9q7Zq = parcelRequire(\"9q7Zq\");\n\nvar $ER74K = parcelRequire(\"ER74K\");\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bzNgi = parcelRequire(\"bzNgi\");\n\nvar $52cQ1 = parcelRequire(\"52cQ1\");\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\n\nvar $kY0n1 = parcelRequire(\"kY0n1\");\n\nvar $e56abd13265dde94$var$$parcel$__dirname = $k14yv$path.resolve(__dirname, \"../../src/python\");\nfunction $e56abd13265dde94$var$isPyPyVersion(versionSpec) {\n return versionSpec.startsWith(\"pypy\");\n}\nconst $e56abd13265dde94$var$checkLatest = false;\nasync function $e56abd13265dde94$export$5655ebf4048b68d5(version, _setupDir, arch) {\n if (0, $dm0eT.IS_MAC) process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\";\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim();\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY;\n (0, $4t50X.debug)(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`);\n if (version) {\n let pythonVersion;\n if ($e56abd13265dde94$var$isPyPyVersion(version)) {\n const installed = await (0, $9q7Zq.findPyPyVersion)(version, arch, true, $e56abd13265dde94$var$checkLatest, false);\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;\n (0, $ER74K.info)(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`);\n } else {\n const installed = await (0, $66RQi.useCpythonVersion)(version, arch, true, $e56abd13265dde94$var$checkLatest, false);\n pythonVersion = installed.version;\n (0, $ER74K.info)(`Successfully set up ${installed.impl} (${pythonVersion})`);\n }\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n if (0, $52cQ1.GITHUB_ACTIONS) await $e56abd13265dde94$var$addPythonLoggingMatcher();\n return undefined;\n}\nasync function $e56abd13265dde94$var$addPythonLoggingMatcher() {\n const matcherPath = (0, $bzNgi.join)($e56abd13265dde94$var$$parcel$__dirname, \"python_matcher.json\");\n if (!await (0, $kY0n1.pathExists)(matcherPath)) return (0, $ER74K.warning)(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\");\n (0, $ER74K.info)(`::add-matcher::${matcherPath}`);\n}\n\n});\nparcelRegister(\"66RQi\", function(module, exports) {\n\n$parcel$export(module.exports, \"useCpythonVersion\", () => $2e59ba5298c73fa8$export$c90655100676e173);\n\n\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $2kmVU = parcelRequire(\"2kmVU\");\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\nfunction $2e59ba5298c73fa8$var$binDir(installDir) {\n if (0, $dm0eT.IS_WINDOWS) return $k14yv$path.join(installDir, \"Scripts\");\n else return $k14yv$path.join(installDir, \"bin\");\n}\nasync function $2e59ba5298c73fa8$export$c90655100676e173(version, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let manifest = null;\n const desugaredVersionSpec = $2e59ba5298c73fa8$var$desugarDevVersion(version);\n let semanticVersionSpec = $2e59ba5298c73fa8$export$2630b06843feee21(desugaredVersionSpec, allowPreReleases);\n $4t50X.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n if (checkLatest) {\n manifest = await $2kmVU.getManifest();\n const resolvedVersion = (await $2kmVU.findReleaseFromManifest(semanticVersionSpec, architecture, manifest))?.version;\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n $4t50X.info(`Resolved as '${semanticVersionSpec}'`);\n } else $4t50X.info(`Failed to resolve version ${semanticVersionSpec} from manifest`);\n }\n let installDir = $bG0ld.find(\"Python\", semanticVersionSpec, architecture);\n if (!installDir) {\n $4t50X.info(`Version ${semanticVersionSpec} was not found in the local cache`);\n const foundRelease = await $2kmVU.findReleaseFromManifest(semanticVersionSpec, architecture, manifest);\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n $4t50X.info(`Version ${semanticVersionSpec} is available for downloading`);\n await $2kmVU.installCpythonFromRelease(foundRelease);\n installDir = $bG0ld.find(\"Python\", semanticVersionSpec, architecture);\n }\n }\n if (!installDir) {\n const osInfo = await (0, $dm0eT.getOSInfo)();\n throw new Error([\n `The version '${version}' with architecture '${architecture}' was not found for ${osInfo ? `${osInfo.osName} ${osInfo.osVersion}` : \"this operating system\"}.`,\n `The list of all available versions can be found here: ${$2kmVU.MANIFEST_URL}`\n ].join($k14yv$os.EOL));\n }\n const _binDir = $2e59ba5298c73fa8$var$binDir(installDir);\n const binaryExtension = (0, $dm0eT.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $k14yv$path.join((0, $dm0eT.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n if (updateEnvironment) {\n $4t50X.exportVariable(\"pythonLocation\", installDir);\n $4t50X.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n $4t50X.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $4t50X.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $4t50X.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $4t50X.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $4t50X.exportVariable(\"PKG_CONFIG_PATH\", installDir + \"/lib/pkgconfig\");\n if (0, $dm0eT.IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH ? `:${process.env.LD_LIBRARY_PATH}` : \"\";\n const pyLibPath = $k14yv$path.join(installDir, \"lib\");\n if (!libPath.split(\":\").includes(pyLibPath)) $4t50X.exportVariable(\"LD_LIBRARY_PATH\", pyLibPath + libPath);\n }\n $4t50X.addPath(installDir);\n $4t50X.addPath(_binDir);\n if (0, $dm0eT.IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = $k14yv$path.basename($k14yv$path.dirname(installDir));\n const major = $bSUdl.major(version);\n const minor = $bSUdl.minor(version);\n const userScriptsDir = $k14yv$path.join(process.env[\"APPDATA\"] || \"\", \"Python\", `Python${major}${minor}`, \"Scripts\");\n $4t50X.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n const installed = $2e59ba5298c73fa8$var$versionFromPath(installDir);\n $4t50X.setOutput(\"python-version\", installed);\n $4t50X.setOutput(\"python-path\", pythonPath);\n return {\n impl: \"CPython\",\n version: installed\n };\n}\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */ function $2e59ba5298c73fa8$var$desugarDevVersion(versionSpec) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, \"~$1.$2.0-0\");\n}\n/** Extracts python version from install path from hosted tool cache as described in README.md */ function $2e59ba5298c73fa8$var$versionFromPath(installDir) {\n const parts = installDir.split($k14yv$path.sep);\n const idx = parts.findIndex((part)=>part === \"PyPy\" || part === \"Python\");\n return parts[idx + 1] || \"\";\n}\nfunction $2e59ba5298c73fa8$export$2630b06843feee21(versionSpec, allowPreReleases) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, \"$1-$2\");\n if (allowPreReleases) result = result.replace(majorMinor, \"~$1.$2.0-0\");\n return result;\n}\n\n});\nparcelRegister(\"dm0eT\", function(module, exports) {\n\n$parcel$export(module.exports, \"IS_WINDOWS\", () => $97c3ffdc9209f441$export$82633ee808573685);\n$parcel$export(module.exports, \"IS_LINUX\", () => $97c3ffdc9209f441$export$25e95d65b6faeb9a);\n$parcel$export(module.exports, \"IS_MAC\", () => $97c3ffdc9209f441$export$ff23e6b4c4401383);\n$parcel$export(module.exports, \"WINDOWS_ARCHS\", () => $97c3ffdc9209f441$export$175751bac16078cf);\n$parcel$export(module.exports, \"WINDOWS_PLATFORMS\", () => $97c3ffdc9209f441$export$da6ba390a22488d5);\n$parcel$export(module.exports, \"createSymlinkInFolder\", () => $97c3ffdc9209f441$export$b0a6cbd0a3e3c63a);\n$parcel$export(module.exports, \"validateVersion\", () => $97c3ffdc9209f441$export$7880c8f0bb8a6afd);\n$parcel$export(module.exports, \"isNightlyKeyword\", () => $97c3ffdc9209f441$export$ea46fc8abcf9f209);\n$parcel$export(module.exports, \"getPyPyVersionFromPath\", () => $97c3ffdc9209f441$export$8a23ea91582cecbc);\n$parcel$export(module.exports, \"readExactPyPyVersionFile\", () => $97c3ffdc9209f441$export$15e4ce4ad93c8c8a);\n$parcel$export(module.exports, \"writeExactPyPyVersionFile\", () => $97c3ffdc9209f441$export$8fb7815f538587a8);\n$parcel$export(module.exports, \"validatePythonVersionFormatForPyPy\", () => $97c3ffdc9209f441$export$3dc910628be7a364);\n$parcel$export(module.exports, \"getOSInfo\", () => $97c3ffdc9209f441$export$471d7e4c229dedf);\n/* eslint no-unsafe-finally: \"off\" */ \nvar $4t50X = parcelRequire(\"4t50X\");\n\n\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $asWrE = parcelRequire(\"asWrE\");\n\nvar $1f6JF = parcelRequire(\"1f6JF\");\nconst $97c3ffdc9209f441$export$82633ee808573685 = process.platform === \"win32\";\nconst $97c3ffdc9209f441$export$25e95d65b6faeb9a = process.platform === \"linux\";\nconst $97c3ffdc9209f441$export$ff23e6b4c4401383 = process.platform === \"darwin\";\nconst $97c3ffdc9209f441$export$175751bac16078cf = [\n \"x86\",\n \"x64\"\n];\nconst $97c3ffdc9209f441$export$da6ba390a22488d5 = [\n \"win32\",\n \"win64\"\n];\nconst $97c3ffdc9209f441$var$PYPY_VERSION_FILE = \"PYPY_VERSION\";\nfunction $97c3ffdc9209f441$export$b0a6cbd0a3e3c63a(folderPath, sourceName, targetName, setExecutable = false) {\n const sourcePath = $k14yv$path.join(folderPath, sourceName);\n const targetPath = $k14yv$path.join(folderPath, targetName);\n if ((0, ($parcel$interopDefault($k14yv$fs))).existsSync(targetPath)) return;\n (0, ($parcel$interopDefault($k14yv$fs))).symlinkSync(sourcePath, targetPath);\n if (!$97c3ffdc9209f441$export$82633ee808573685 && setExecutable) (0, ($parcel$interopDefault($k14yv$fs))).chmodSync(targetPath, \"755\");\n}\nfunction $97c3ffdc9209f441$export$7880c8f0bb8a6afd(version) {\n return $97c3ffdc9209f441$export$ea46fc8abcf9f209(version) || Boolean($bSUdl.validRange(version));\n}\nfunction $97c3ffdc9209f441$export$ea46fc8abcf9f209(pypyVersion) {\n return pypyVersion === \"nightly\";\n}\nfunction $97c3ffdc9209f441$export$8a23ea91582cecbc(installDir) {\n return $k14yv$path.basename($k14yv$path.dirname(installDir));\n}\nfunction $97c3ffdc9209f441$export$15e4ce4ad93c8c8a(installDir) {\n let pypyVersion = \"\";\n const fileVersion = $k14yv$path.join(installDir, $97c3ffdc9209f441$var$PYPY_VERSION_FILE);\n if ((0, ($parcel$interopDefault($k14yv$fs))).existsSync(fileVersion)) pypyVersion = (0, ($parcel$interopDefault($k14yv$fs))).readFileSync(fileVersion).toString().trim();\n return pypyVersion;\n}\nfunction $97c3ffdc9209f441$export$8fb7815f538587a8(installDir, resolvedPyPyVersion) {\n const pypyFilePath = $k14yv$path.join(installDir, $97c3ffdc9209f441$var$PYPY_VERSION_FILE);\n (0, ($parcel$interopDefault($k14yv$fs))).writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\nfunction $97c3ffdc9209f441$export$3dc910628be7a364(version) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\nfunction $97c3ffdc9209f441$export$ebd6064652549ce9(message) {\n const warningPrefix = \"[warning]\";\n $4t50X.info(`${warningPrefix}${message}`);\n}\nasync function $97c3ffdc9209f441$var$getWindowsInfo() {\n const { stdout: stdout } = await $1f6JF.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n const windowsVersion = stdout.trim().split(\" \")[3];\n return {\n osName: \"Windows\",\n osVersion: windowsVersion\n };\n}\nasync function $97c3ffdc9209f441$var$getMacOSInfo() {\n const { stdout: stdout } = await $1f6JF.getExecOutput(\"sw_vers\", [\n \"-productVersion\"\n ], {\n silent: true\n });\n const macOSVersion = stdout.trim();\n return {\n osName: \"macOS\",\n osVersion: macOSVersion\n };\n}\nasync function $97c3ffdc9209f441$export$734019fa9b4b8da() {\n const { stdout: stdout } = await $1f6JF.getExecOutput(\"lsb_release\", [\n \"-i\",\n \"-r\",\n \"-s\"\n ], {\n silent: true\n });\n const [osName, osVersion] = stdout.trim().split(\"\\n\");\n $4t50X.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n return {\n osName: osName,\n osVersion: osVersion\n };\n}\nasync function $97c3ffdc9209f441$export$471d7e4c229dedf() {\n let osInfo;\n try {\n if ($97c3ffdc9209f441$export$82633ee808573685) osInfo = await $97c3ffdc9209f441$var$getWindowsInfo();\n else if ($97c3ffdc9209f441$export$25e95d65b6faeb9a) osInfo = await $97c3ffdc9209f441$export$734019fa9b4b8da();\n else if ($97c3ffdc9209f441$export$ff23e6b4c4401383) osInfo = await $97c3ffdc9209f441$var$getMacOSInfo();\n } catch (err) {\n const error = err;\n $4t50X.debug(error.message);\n } finally{\n return osInfo;\n }\n}\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */ function $97c3ffdc9209f441$var$extractValue(obj, keys) {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) return $97c3ffdc9209f441$var$extractValue(value, keys.slice(1));\n else return value;\n } else return;\n}\nfunction $97c3ffdc9209f441$export$62b63db2b7d00b3a(versionFile) {\n $4t50X.debug(`Trying to resolve version form ${versionFile}`);\n const pyprojectFile = (0, ($parcel$interopDefault($k14yv$fs))).readFileSync(versionFile, \"utf8\");\n const pyprojectConfig = $asWrE.parse(pyprojectFile);\n let keys = [];\n if (\"project\" in pyprojectConfig) // standard project metadata (PEP 621)\n keys = [\n \"project\",\n \"requires-python\"\n ];\n else // python poetry\n keys = [\n \"tool\",\n \"poetry\",\n \"dependencies\",\n \"python\"\n ];\n const versions = [];\n const version = $97c3ffdc9209f441$var$extractValue(pyprojectConfig, keys);\n if (version !== undefined) versions.push(version);\n $4t50X.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, (version)=>version.split(\",\").join(\" \"));\n const validatedVersions = rawVersions.map((item)=>$bSUdl.validRange(item, true)).filter((versionRange, index)=>{\n if (!versionRange) $4t50X.debug(`The version ${rawVersions[index]} is not valid SemVer range`);\n return !!versionRange;\n });\n return validatedVersions;\n}\nfunction $97c3ffdc9209f441$export$6bdea68547837ebb(versionFile) {\n $4t50X.debug(`Trying to resolve version form ${versionFile}`);\n const version = (0, ($parcel$interopDefault($k14yv$fs))).readFileSync(versionFile, \"utf8\");\n $4t50X.info(`Resolved ${versionFile} as ${version}`);\n return [\n version\n ];\n}\nfunction $97c3ffdc9209f441$export$7ffda0a4baa8880a(versionFile) {\n if (versionFile.endsWith(\".toml\")) return $97c3ffdc9209f441$export$62b63db2b7d00b3a(versionFile);\n else return $97c3ffdc9209f441$export$6bdea68547837ebb(versionFile);\n}\n\n});\nparcelRegister(\"asWrE\", function(module, exports) {\n\n$parcel$export(module.exports, \"parse\", () => $79e9dadf76002ef6$export$98e6a39c04603d36, (v) => $79e9dadf76002ef6$export$98e6a39c04603d36 = v);\nvar $79e9dadf76002ef6$export$98e6a39c04603d36;\nvar $79e9dadf76002ef6$export$fac44ee5b035f737;\n\"use strict\";\n\n$79e9dadf76002ef6$export$98e6a39c04603d36 = (parcelRequire(\"9ra5j\"));\n\n$79e9dadf76002ef6$export$fac44ee5b035f737 = (parcelRequire(\"erM83\"));\n\n});\nparcelRegister(\"9ra5j\", function(module, exports) {\n\"use strict\";\n\nmodule.exports = (parcelRequire(\"k9zRI\"));\n\nmodule.exports.async = (parcelRequire(\"iO4Tr\"));\n\nmodule.exports.stream = (parcelRequire(\"ddYPD\"));\n\nmodule.exports.prettyError = (parcelRequire(\"c4Fk1\"));\n\n});\nparcelRegister(\"k9zRI\", function(module, exports) {\n\"use strict\";\nmodule.exports = $eac0780572f98cdf$var$parseString;\n\nvar $16AyQ = parcelRequire(\"16AyQ\");\n\nvar $c4Fk1 = parcelRequire(\"c4Fk1\");\nfunction $eac0780572f98cdf$var$parseString(str) {\n if ($parcel$global.Buffer && $parcel$global.Buffer.isBuffer(str)) str = str.toString(\"utf8\");\n const parser = new $16AyQ();\n try {\n parser.parse(str);\n return parser.finish();\n } catch (err) {\n throw $c4Fk1(err, str);\n }\n}\n\n});\nparcelRegister(\"16AyQ\", function(module, exports) {\n\"use strict\";\n\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ module.exports = makeParserClass((parcelRequire(\"liZiS\")));\nmodule.exports.makeParserClass = makeParserClass;\nclass TomlError extends Error {\n constructor(msg){\n super(msg);\n this.name = \"TomlError\";\n /* istanbul ignore next */ if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError);\n this.fromTOML = true;\n this.wrapped = null;\n }\n}\nTomlError.wrap = (err)=>{\n const terr = new TomlError(err.message);\n terr.code = err.code;\n terr.wrapped = err;\n return terr;\n};\nmodule.exports.TomlError = TomlError;\n\nvar $9FJkb = parcelRequire(\"9FJkb\");\n\nvar $90qfX = parcelRequire(\"90qfX\");\n\nvar $4xjP6 = parcelRequire(\"4xjP6\");\n\nvar $3wXZs = parcelRequire(\"3wXZs\");\nconst CTRL_I = 0x09;\nconst CTRL_J = 0x0A;\nconst CTRL_M = 0x0D;\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\n;\nconst CHAR_SP = 0x20;\nconst CHAR_QUOT = 0x22;\nconst CHAR_NUM = 0x23;\nconst CHAR_APOS = 0x27;\nconst CHAR_PLUS = 0x2B;\nconst CHAR_COMMA = 0x2C;\nconst CHAR_HYPHEN = 0x2D;\nconst CHAR_PERIOD = 0x2E;\nconst CHAR_0 = 0x30;\nconst CHAR_1 = 0x31;\nconst CHAR_7 = 0x37;\nconst CHAR_9 = 0x39;\nconst CHAR_COLON = 0x3A;\nconst CHAR_EQUALS = 0x3D;\nconst CHAR_A = 0x41;\nconst CHAR_E = 0x45;\nconst CHAR_F = 0x46;\nconst CHAR_T = 0x54;\nconst CHAR_U = 0x55;\nconst CHAR_Z = 0x5A;\nconst CHAR_LOWBAR = 0x5F;\nconst CHAR_a = 0x61;\nconst CHAR_b = 0x62;\nconst CHAR_e = 0x65;\nconst CHAR_f = 0x66;\nconst CHAR_i = 0x69;\nconst CHAR_l = 0x6C;\nconst CHAR_n = 0x6E;\nconst CHAR_o = 0x6F;\nconst CHAR_r = 0x72;\nconst CHAR_s = 0x73;\nconst CHAR_t = 0x74;\nconst CHAR_u = 0x75;\nconst CHAR_x = 0x78;\nconst CHAR_z = 0x7A;\nconst CHAR_LCUB = 0x7B;\nconst CHAR_RCUB = 0x7D;\nconst CHAR_LSQB = 0x5B;\nconst CHAR_BSOL = 0x5C;\nconst CHAR_RSQB = 0x5D;\nconst CHAR_DEL = 0x7F;\nconst SURROGATE_FIRST = 0xD800;\nconst SURROGATE_LAST = 0xDFFF;\nconst escapes = {\n [CHAR_b]: \"\\b\",\n [CHAR_t]: \"\t\",\n [CHAR_n]: \"\\n\",\n [CHAR_f]: \"\\f\",\n [CHAR_r]: \"\\r\",\n [CHAR_QUOT]: '\"',\n [CHAR_BSOL]: \"\\\\\"\n};\nfunction isDigit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isHexit(cp) {\n return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9;\n}\nfunction isBit(cp) {\n return cp === CHAR_1 || cp === CHAR_0;\n}\nfunction isOctit(cp) {\n return cp >= CHAR_0 && cp <= CHAR_7;\n}\nfunction isAlphaNumQuoteHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nfunction isAlphaNumHyphen(cp) {\n return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN;\n}\nconst _type = Symbol(\"type\");\nconst _declared = Symbol(\"declared\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defineProperty = Object.defineProperty;\nconst descriptor = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: undefined\n};\nfunction hasKey(obj, key) {\n if (hasOwnProperty.call(obj, key)) return true;\n if (key === \"__proto__\") defineProperty(obj, \"__proto__\", descriptor);\n return false;\n}\nconst INLINE_TABLE = Symbol(\"inline-table\");\nfunction InlineTable() {\n return Object.defineProperties({}, {\n [_type]: {\n value: INLINE_TABLE\n }\n });\n}\nfunction isInlineTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_TABLE;\n}\nconst TABLE = Symbol(\"table\");\nfunction Table() {\n return Object.defineProperties({}, {\n [_type]: {\n value: TABLE\n },\n [_declared]: {\n value: false,\n writable: true\n }\n });\n}\nfunction isTable(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === TABLE;\n}\nconst _contentType = Symbol(\"content-type\");\nconst INLINE_LIST = Symbol(\"inline-list\");\nfunction InlineList(type) {\n return Object.defineProperties([], {\n [_type]: {\n value: INLINE_LIST\n },\n [_contentType]: {\n value: type\n }\n });\n}\nfunction isInlineList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INLINE_LIST;\n}\nconst LIST = Symbol(\"list\");\nfunction List() {\n return Object.defineProperties([], {\n [_type]: {\n value: LIST\n }\n });\n}\nfunction isList(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === LIST;\n}\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom;\ntry {\n const utilInspect = eval(\"require('util').inspect\");\n _custom = utilInspect.custom;\n} catch (_) {\n/* eval require not available in transpiled bundle */ }\n/* istanbul ignore next */ const _inspect = _custom || \"inspect\";\nclass BoxedBigInt {\n constructor(value){\n try {\n this.value = $parcel$global.BigInt.asIntN(64, value);\n } catch (_) {\n /* istanbul ignore next */ this.value = null;\n }\n Object.defineProperty(this, _type, {\n value: INTEGER\n });\n }\n isNaN() {\n return this.value === null;\n }\n /* istanbul ignore next */ toString() {\n return String(this.value);\n }\n /* istanbul ignore next */ [_inspect]() {\n return `[BigInt: ${this.toString()}]}`;\n }\n valueOf() {\n return this.value;\n }\n}\nconst INTEGER = Symbol(\"integer\");\nfunction Integer(value) {\n let num = Number(value);\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0;\n /* istanbul ignore else */ if ($parcel$global.BigInt && !Number.isSafeInteger(num)) return new BoxedBigInt(value);\n else /* istanbul ignore next */ return Object.defineProperties(new Number(num), {\n isNaN: {\n value: function() {\n return isNaN(this);\n }\n },\n [_type]: {\n value: INTEGER\n },\n [_inspect]: {\n value: ()=>`[Integer: ${value}]`\n }\n });\n}\nfunction isInteger(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === INTEGER;\n}\nconst FLOAT = Symbol(\"float\");\nfunction Float(value) {\n /* istanbul ignore next */ return Object.defineProperties(new Number(value), {\n [_type]: {\n value: FLOAT\n },\n [_inspect]: {\n value: ()=>`[Float: ${value}]`\n }\n });\n}\nfunction isFloat(obj) {\n if (obj === null || typeof obj !== \"object\") return false;\n return obj[_type] === FLOAT;\n}\nfunction tomlType(value) {\n const type = typeof value;\n if (type === \"object\") {\n /* istanbul ignore if */ if (value === null) return \"null\";\n if (value instanceof Date) return \"datetime\";\n /* istanbul ignore else */ if (_type in value) switch(value[_type]){\n case INLINE_TABLE:\n return \"inline-table\";\n case INLINE_LIST:\n return \"inline-list\";\n /* istanbul ignore next */ case TABLE:\n return \"table\";\n /* istanbul ignore next */ case LIST:\n return \"list\";\n case FLOAT:\n return \"float\";\n case INTEGER:\n return \"integer\";\n }\n }\n return type;\n}\nfunction makeParserClass(Parser) {\n class TOMLParser extends Parser {\n constructor(){\n super();\n this.ctx = this.obj = Table();\n }\n /* MATCH HELPER */ atEndOfWord() {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine();\n }\n atEndOfLine() {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M;\n }\n parseStart() {\n if (this.char === Parser.END) return null;\n else if (this.char === CHAR_LSQB) return this.call(this.parseTableOrList);\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (isAlphaNumQuoteHyphen(this.char)) return this.callNow(this.parseAssignStatement);\n else throw this.error(new TomlError(`Unknown character \"${this.char}\"`));\n }\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else if (this.char === CHAR_NUM) return this.goto(this.parseComment);\n else if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n else throw this.error(new TomlError(\"Unexpected character, expected only whitespace or comments till end of line\"));\n }\n /* ASSIGNMENT: key = value */ parseAssignStatement() {\n return this.callNow(this.parseAssign, this.recordAssignStatement);\n }\n recordAssignStatement(kv) {\n let target = this.ctx;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseWhitespaceToEOL);\n }\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */ parseAssign() {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n recordAssignKeyword(key) {\n if (this.state.resultTable) this.state.resultTable.push(key);\n else this.state.resultTable = [\n key\n ];\n return this.goto(this.parseAssignKeywordPreDot);\n }\n parseAssignKeywordPreDot() {\n if (this.char === CHAR_PERIOD) return this.next(this.parseAssignKeywordPostDot);\n else if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.goto(this.parseAssignEqual);\n }\n parseAssignKeywordPostDot() {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) return this.callNow(this.parseKeyword, this.recordAssignKeyword);\n }\n parseAssignEqual() {\n if (this.char === CHAR_EQUALS) return this.next(this.parseAssignPreValue);\n else throw this.error(new TomlError('Invalid character, expected \"=\"'));\n }\n parseAssignPreValue() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseValue, this.recordAssignValue);\n }\n recordAssignValue(value) {\n return this.returnNow({\n key: this.state.resultTable,\n value: value\n });\n }\n /* COMMENTS: #...eol */ parseComment() {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) return this.return();\n }while (this.nextChar());\n }\n /* TABLES AND LISTS, [foo] and [[foo]] */ parseTableOrList() {\n if (this.char === CHAR_LSQB) this.next(this.parseList);\n else return this.goto(this.parseTable);\n }\n /* TABLE [foo.bar.baz] */ parseTable() {\n this.ctx = this.obj;\n return this.goto(this.parseTableNext);\n }\n parseTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseTableMore);\n }\n parseTableMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table();\n this.ctx[_declared] = true;\n }\n return this.next(this.parseWhitespaceToEOL);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else throw this.error(new TomlError(\"Can't redefine existing key\"));\n return this.next(this.parseTableNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* LIST [[a.b.c]] */ parseList() {\n this.ctx = this.obj;\n return this.goto(this.parseListNext);\n }\n parseListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else return this.callNow(this.parseKeyword, this.parseListMore);\n }\n parseListMore(keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) this.ctx[keyword] = List();\n if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isList(this.ctx[keyword])) {\n const next = Table();\n this.ctx[keyword].push(next);\n this.ctx = next;\n } else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListEnd);\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) this.ctx = this.ctx[keyword] = Table();\n else if (isInlineList(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline array\"));\n else if (isInlineTable(this.ctx[keyword])) throw this.error(new TomlError(\"Can't extend an inline table\"));\n else if (isList(this.ctx[keyword])) this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1];\n else if (isTable(this.ctx[keyword])) this.ctx = this.ctx[keyword];\n else throw this.error(new TomlError(\"Can't redefine an existing key\"));\n return this.next(this.parseListNext);\n } else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n parseListEnd(keyword) {\n if (this.char === CHAR_RSQB) return this.next(this.parseWhitespaceToEOL);\n else throw this.error(new TomlError(\"Unexpected character, expected whitespace, . or ]\"));\n }\n /* VALUE string, number, boolean, inline list, inline object */ parseValue() {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key without value\"));\n else if (this.char === CHAR_QUOT) return this.next(this.parseDoubleString);\n if (this.char === CHAR_APOS) return this.next(this.parseSingleString);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) return this.goto(this.parseNumberSign);\n else if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else if (isDigit(this.char)) return this.goto(this.parseNumberOrDateTime);\n else if (this.char === CHAR_t || this.char === CHAR_f) return this.goto(this.parseBoolean);\n else if (this.char === CHAR_LSQB) return this.call(this.parseInlineList, this.recordValue);\n else if (this.char === CHAR_LCUB) return this.call(this.parseInlineTable, this.recordValue);\n else throw this.error(new TomlError(\"Unexpected character, expecting string, number, datetime, boolean, inline array or inline table\"));\n }\n recordValue(value) {\n return this.returnNow(value);\n }\n parseInf() {\n if (this.char === CHAR_n) return this.next(this.parseInf2);\n else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseInf2() {\n if (this.char === CHAR_f) {\n if (this.state.buf === \"-\") return this.return(-Infinity);\n else return this.return(Infinity);\n } else throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'));\n }\n parseNan() {\n if (this.char === CHAR_a) return this.next(this.parseNan2);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n parseNan2() {\n if (this.char === CHAR_n) return this.return(NaN);\n else throw this.error(new TomlError('Unexpected character, expected \"nan\"'));\n }\n /* KEYS, barewords or basic, literal, or dotted */ parseKeyword() {\n if (this.char === CHAR_QUOT) return this.next(this.parseBasicString);\n else if (this.char === CHAR_APOS) return this.next(this.parseLiteralString);\n else return this.goto(this.parseBareKey);\n }\n /* KEYS: barewords */ parseBareKey() {\n do {\n if (this.char === Parser.END) throw this.error(new TomlError(\"Key ended without value\"));\n else if (isAlphaNumHyphen(this.char)) this.consume();\n else if (this.state.buf.length === 0) throw this.error(new TomlError(\"Empty bare keys are not allowed\"));\n else return this.returnNow();\n }while (this.nextChar());\n }\n /* STRINGS, single quoted (literal) */ parseSingleString() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiStringMaybe);\n else return this.goto(this.parseLiteralString);\n }\n parseLiteralString() {\n do {\n if (this.char === CHAR_APOS) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiStringMaybe() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiString);\n else return this.returnNow();\n }\n parseLiteralMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseLiteralMultiStringContent);\n else return this.goto(this.parseLiteralMultiStringContent);\n }\n parseLiteralMultiStringContent() {\n do {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n parseLiteralMultiEnd() {\n if (this.char === CHAR_APOS) return this.next(this.parseLiteralMultiEnd2);\n else {\n this.state.buf += \"'\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n parseLiteralMultiEnd2() {\n if (this.char === CHAR_APOS) return this.return();\n else {\n this.state.buf += \"''\";\n return this.goto(this.parseLiteralMultiStringContent);\n }\n }\n /* STRINGS double quoted */ parseDoubleString() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiStringMaybe);\n else return this.goto(this.parseBasicString);\n }\n parseBasicString() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseEscape, this.recordEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.return();\n else if (this.atEndOfLine()) throw this.error(new TomlError(\"Unterminated string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n recordEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseBasicString);\n }\n parseMultiStringMaybe() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiString);\n else return this.returnNow();\n }\n parseMultiString() {\n if (this.char === CTRL_M) return null;\n else if (this.char === CTRL_J) return this.next(this.parseMultiStringContent);\n else return this.goto(this.parseMultiStringContent);\n }\n parseMultiStringContent() {\n do {\n if (this.char === CHAR_BSOL) return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement);\n else if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd);\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated multi-line string\"));\n else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) throw this.errorControlCharInString();\n else this.consume();\n }while (this.nextChar());\n }\n errorControlCharInString() {\n let displayCode = \"\\\\u00\";\n if (this.char < 16) displayCode += \"0\";\n displayCode += this.char.toString(16);\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`));\n }\n recordMultiEscapeReplacement(replacement) {\n this.state.buf += replacement;\n return this.goto(this.parseMultiStringContent);\n }\n parseMultiEnd() {\n if (this.char === CHAR_QUOT) return this.next(this.parseMultiEnd2);\n else {\n this.state.buf += '\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEnd2() {\n if (this.char === CHAR_QUOT) return this.return();\n else {\n this.state.buf += '\"\"';\n return this.goto(this.parseMultiStringContent);\n }\n }\n parseMultiEscape() {\n if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else if (this.char === CHAR_SP || this.char === CTRL_I) return this.next(this.parsePreMultiTrim);\n else return this.goto(this.parseEscape);\n }\n parsePreMultiTrim() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === CTRL_M || this.char === CTRL_J) return this.next(this.parseMultiTrim);\n else throw this.error(new TomlError(\"Can't escape whitespace\"));\n }\n parseMultiTrim() {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) return null;\n else return this.returnNow();\n }\n parseEscape() {\n if (this.char in escapes) return this.return(escapes[this.char]);\n else if (this.char === CHAR_u) return this.call(this.parseSmallUnicode, this.parseUnicodeReturn);\n else if (this.char === CHAR_U) return this.call(this.parseLargeUnicode, this.parseUnicodeReturn);\n else throw this.error(new TomlError(\"Unknown escape character: \" + this.char));\n }\n parseUnicodeReturn(char) {\n try {\n const codePoint = parseInt(char, 16);\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) throw this.error(new TomlError(\"Invalid unicode, character in range 0xD800 - 0xDFFF is reserved\"));\n return this.returnNow(String.fromCodePoint(codePoint));\n } catch (err) {\n throw this.error(TomlError.wrap(err));\n }\n }\n parseSmallUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 4) return this.return();\n }\n }\n parseLargeUnicode() {\n if (!isHexit(this.char)) throw this.error(new TomlError(\"Invalid character in unicode sequence, expected hex\"));\n else {\n this.consume();\n if (this.state.buf.length >= 8) return this.return();\n }\n }\n /* NUMBERS */ parseNumberSign() {\n this.consume();\n return this.next(this.parseMaybeSignedInfOrNan);\n }\n parseMaybeSignedInfOrNan() {\n if (this.char === CHAR_i) return this.next(this.parseInf);\n else if (this.char === CHAR_n) return this.next(this.parseNan);\n else return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart);\n }\n parseNumberIntegerStart() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberIntegerExponentOrDecimal);\n } else return this.goto(this.parseNumberInteger);\n }\n parseNumberIntegerExponentOrDecimal() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Integer(this.state.buf));\n }\n parseNumberInteger() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseNoUnder() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNoUnderHexOctBinLiteral() {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) throw this.error(new TomlError(\"Unexpected character, expected digit\"));\n else if (this.atEndOfWord()) throw this.error(new TomlError(\"Incomplete number\"));\n return this.returnNow();\n }\n parseNumberFloat() {\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberFloat);\n else if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else return this.returnNow(Float(this.state.buf));\n }\n parseNumberExponentSign() {\n if (isDigit(this.char)) return this.goto(this.parseNumberExponent);\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.call(this.parseNoUnder, this.parseNumberExponent);\n } else throw this.error(new TomlError(\"Unexpected character, expected -, + or digit\"));\n }\n parseNumberExponent() {\n if (isDigit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder);\n else return this.returnNow(Float(this.state.buf));\n }\n /* NUMBERS or DATETIMES */ parseNumberOrDateTime() {\n if (this.char === CHAR_0) {\n this.consume();\n return this.next(this.parseNumberBaseOrDateTime);\n } else return this.goto(this.parseNumberOrDateTimeOnly);\n }\n parseNumberOrDateTimeOnly() {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnder, this.parseNumberInteger);\n else if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger);\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume();\n return this.next(this.parseNumberExponentSign);\n } else if (this.char === CHAR_PERIOD) {\n this.consume();\n return this.call(this.parseNoUnder, this.parseNumberFloat);\n } else if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseDateTimeOnly() {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) return this.consume();\n else if (this.char === CHAR_COLON) return this.goto(this.parseOnlyTimeHour);\n else throw this.error(new TomlError(\"Expected digit while parsing year part of a date\"));\n } else {\n if (this.char === CHAR_HYPHEN) return this.goto(this.parseDateTime);\n else throw this.error(new TomlError(\"Expected hyphen (-) while parsing year part of date\"));\n }\n }\n parseNumberBaseOrDateTime() {\n if (this.char === CHAR_b) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin);\n } else if (this.char === CHAR_o) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct);\n } else if (this.char === CHAR_x) {\n this.consume();\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex);\n } else if (this.char === CHAR_PERIOD) return this.goto(this.parseNumberInteger);\n else if (isDigit(this.char)) return this.goto(this.parseDateTimeOnly);\n else return this.returnNow(Integer(this.state.buf));\n }\n parseIntegerHex() {\n if (isHexit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerOct() {\n if (isOctit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n parseIntegerBin() {\n if (isBit(this.char)) this.consume();\n else if (this.char === CHAR_LOWBAR) return this.call(this.parseNoUnderHexOctBinLiteral);\n else {\n const result = Integer(this.state.buf);\n /* istanbul ignore if */ if (result.isNaN()) throw this.error(new TomlError(\"Invalid number\"));\n else return this.returnNow(result);\n }\n }\n /* DATETIME */ parseDateTime() {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) throw this.error(new TomlError(\"Years less than 1000 must be zero padded to four characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateMonth);\n }\n parseDateMonth() {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Months less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseDateDay);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseDateDay() {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Days less than 10 must be zero padded to two characters\"));\n this.state.result += \"-\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseStartTimeHour);\n } else if (this.atEndOfWord()) return this.returnNow($4xjP6(this.state.result + \"-\" + this.state.buf));\n else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseStartTimeHour() {\n if (this.atEndOfWord()) return this.returnNow($4xjP6(this.state.result));\n else return this.goto(this.parseTimeHour);\n }\n parseTimeHour() {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result += \"T\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeMin);\n } else if (isDigit(this.char)) this.consume();\n else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeSec);\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseTimeZoneOrFraction);\n }\n } else throw this.error(new TomlError(\"Incomplete datetime\"));\n }\n parseOnlyTimeHour() {\n /* istanbul ignore else */ if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) throw this.error(new TomlError(\"Hours less than 10 must be zero padded to two characters\"));\n this.state.result = this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeMin);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeMin() {\n if (this.state.buf.length < 2 && isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += \":\" + this.state.buf;\n this.state.buf = \"\";\n return this.next(this.parseOnlyTimeSec);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeSec() {\n if (isDigit(this.char)) {\n this.consume();\n if (this.state.buf.length === 2) return this.next(this.parseOnlyTimeFractionMaybe);\n } else throw this.error(new TomlError(\"Incomplete time\"));\n }\n parseOnlyTimeFractionMaybe() {\n this.state.result += \":\" + this.state.buf;\n if (this.char === CHAR_PERIOD) {\n this.state.buf = \"\";\n this.next(this.parseOnlyTimeFraction);\n } else return this.return($3wXZs(this.state.result));\n }\n parseOnlyTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n return this.returnNow($3wXZs(this.state.result + \".\" + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneOrFraction() {\n if (this.char === CHAR_PERIOD) {\n this.consume();\n this.next(this.parseDateTimeFraction);\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($9FJkb(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($90qfX(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseDateTimeFraction() {\n if (isDigit(this.char)) this.consume();\n else if (this.state.buf.length === 1) throw this.error(new TomlError(\"Expected digit in milliseconds\"));\n else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume();\n this.next(this.parseTimeZoneHour);\n } else if (this.char === CHAR_Z) {\n this.consume();\n return this.return($9FJkb(this.state.result + this.state.buf));\n } else if (this.atEndOfWord()) return this.returnNow($90qfX(this.state.result + this.state.buf));\n else throw this.error(new TomlError(\"Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z\"));\n }\n parseTimeZoneHour() {\n if (isDigit(this.char)) {\n this.consume();\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n parseTimeZoneSep() {\n if (this.char === CHAR_COLON) {\n this.consume();\n this.next(this.parseTimeZoneMin);\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected colon\"));\n }\n parseTimeZoneMin() {\n if (isDigit(this.char)) {\n this.consume();\n if (/\\d\\d$/.test(this.state.buf)) return this.return($9FJkb(this.state.result + this.state.buf));\n } else throw this.error(new TomlError(\"Unexpected character in datetime, expected digit\"));\n }\n /* BOOLEAN */ parseBoolean() {\n /* istanbul ignore else */ if (this.char === CHAR_t) {\n this.consume();\n return this.next(this.parseTrue_r);\n } else if (this.char === CHAR_f) {\n this.consume();\n return this.next(this.parseFalse_a);\n }\n }\n parseTrue_r() {\n if (this.char === CHAR_r) {\n this.consume();\n return this.next(this.parseTrue_u);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_u() {\n if (this.char === CHAR_u) {\n this.consume();\n return this.next(this.parseTrue_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseTrue_e() {\n if (this.char === CHAR_e) return this.return(true);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_a() {\n if (this.char === CHAR_a) {\n this.consume();\n return this.next(this.parseFalse_l);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_l() {\n if (this.char === CHAR_l) {\n this.consume();\n return this.next(this.parseFalse_s);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_s() {\n if (this.char === CHAR_s) {\n this.consume();\n return this.next(this.parseFalse_e);\n } else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n parseFalse_e() {\n if (this.char === CHAR_e) return this.return(false);\n else throw this.error(new TomlError(\"Invalid boolean, expected true or false\"));\n }\n /* INLINE LISTS */ parseInlineList() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === Parser.END) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_RSQB) return this.return(this.state.resultArr || InlineList());\n else return this.callNow(this.parseValue, this.recordInlineListValue);\n }\n recordInlineListValue(value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType];\n const valueType = tomlType(value);\n if (listType !== valueType) throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`));\n } else this.state.resultArr = InlineList(tomlType(value));\n if (isFloat(value) || isInteger(value)) // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf());\n else this.state.resultArr.push(value);\n return this.goto(this.parseInlineListNext);\n }\n parseInlineListNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) return null;\n else if (this.char === CHAR_NUM) return this.call(this.parseComment);\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineList);\n else if (this.char === CHAR_RSQB) return this.goto(this.parseInlineList);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n /* INLINE TABLE */ parseInlineTable() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_RCUB) return this.return(this.state.resultTable || InlineTable());\n else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable();\n return this.callNow(this.parseAssign, this.recordInlineTableValue);\n }\n }\n recordInlineTableValue(kv) {\n let target = this.state.resultTable;\n let finalKey = kv.key.pop();\n for (let kw of kv.key){\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) throw this.error(new TomlError(\"Can't redefine existing key\"));\n target = target[kw] = target[kw] || Table();\n }\n if (hasKey(target, finalKey)) throw this.error(new TomlError(\"Can't redefine existing key\"));\n if (isInteger(kv.value) || isFloat(kv.value)) target[finalKey] = kv.value.valueOf();\n else target[finalKey] = kv.value;\n return this.goto(this.parseInlineTableNext);\n }\n parseInlineTableNext() {\n if (this.char === CHAR_SP || this.char === CTRL_I) return null;\n else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) throw this.error(new TomlError(\"Unterminated inline array\"));\n else if (this.char === CHAR_COMMA) return this.next(this.parseInlineTable);\n else if (this.char === CHAR_RCUB) return this.goto(this.parseInlineTable);\n else throw this.error(new TomlError(\"Invalid character, expected whitespace, comma (,) or close bracket (])\"));\n }\n }\n return TOMLParser;\n}\n\n});\nparcelRegister(\"liZiS\", function(module, exports) {\n\"use strict\";\nconst $f82ad506d7d168e6$var$ParserEND = 0x110000;\nclass $f82ad506d7d168e6$var$ParserError extends Error {\n /* istanbul ignore next */ constructor(msg, filename, linenumber){\n super(\"[ParserError] \" + msg, filename, linenumber);\n this.name = \"ParserError\";\n this.code = \"ParserError\";\n if (Error.captureStackTrace) Error.captureStackTrace(this, $f82ad506d7d168e6$var$ParserError);\n }\n}\nclass $f82ad506d7d168e6$var$State {\n constructor(parser){\n this.parser = parser;\n this.buf = \"\";\n this.returned = null;\n this.result = null;\n this.resultTable = null;\n this.resultArr = null;\n }\n}\nclass $f82ad506d7d168e6$var$Parser {\n constructor(){\n this.pos = 0;\n this.col = 0;\n this.line = 0;\n this.obj = {};\n this.ctx = this.obj;\n this.stack = [];\n this._buf = \"\";\n this.char = null;\n this.ii = 0;\n this.state = new $f82ad506d7d168e6$var$State(this.parseStart);\n }\n parse(str) {\n /* istanbul ignore next */ if (str.length === 0 || str.length == null) return;\n this._buf = String(str);\n this.ii = -1;\n this.char = -1;\n let getNext;\n while(getNext === false || this.nextChar())getNext = this.runOne();\n this._buf = null;\n }\n nextChar() {\n if (this.char === 0x0A) {\n ++this.line;\n this.col = -1;\n }\n ++this.ii;\n this.char = this._buf.codePointAt(this.ii);\n ++this.pos;\n ++this.col;\n return this.haveBuffer();\n }\n haveBuffer() {\n return this.ii < this._buf.length;\n }\n runOne() {\n return this.state.parser.call(this, this.state.returned);\n }\n finish() {\n this.char = $f82ad506d7d168e6$var$ParserEND;\n let last;\n do {\n last = this.state.parser;\n this.runOne();\n }while (this.state.parser !== last);\n this.ctx = null;\n this.state = null;\n this._buf = null;\n return this.obj;\n }\n next(fn) {\n /* istanbul ignore next */ if (typeof fn !== \"function\") throw new $f82ad506d7d168e6$var$ParserError(\"Tried to set state to non-existent state: \" + JSON.stringify(fn));\n this.state.parser = fn;\n }\n goto(fn) {\n this.next(fn);\n return this.runOne();\n }\n call(fn, returnWith) {\n if (returnWith) this.next(returnWith);\n this.stack.push(this.state);\n this.state = new $f82ad506d7d168e6$var$State(fn);\n }\n callNow(fn, returnWith) {\n this.call(fn, returnWith);\n return this.runOne();\n }\n return(value) {\n /* istanbul ignore next */ if (this.stack.length === 0) throw this.error(new $f82ad506d7d168e6$var$ParserError(\"Stack underflow\"));\n if (value === undefined) value = this.state.buf;\n this.state = this.stack.pop();\n this.state.returned = value;\n }\n returnNow(value) {\n this.return(value);\n return this.runOne();\n }\n consume() {\n /* istanbul ignore next */ if (this.char === $f82ad506d7d168e6$var$ParserEND) throw this.error(new $f82ad506d7d168e6$var$ParserError(\"Unexpected end-of-buffer\"));\n this.state.buf += this._buf[this.ii];\n }\n error(err) {\n err.line = this.line;\n err.col = this.col;\n err.pos = this.pos;\n return err;\n }\n /* istanbul ignore next */ parseStart() {\n throw new $f82ad506d7d168e6$var$ParserError(\"Must declare a parseStart method\");\n }\n}\n$f82ad506d7d168e6$var$Parser.END = $f82ad506d7d168e6$var$ParserEND;\n$f82ad506d7d168e6$var$Parser.Error = $f82ad506d7d168e6$var$ParserError;\nmodule.exports = $f82ad506d7d168e6$var$Parser;\n\n});\n\nparcelRegister(\"9FJkb\", function(module, exports) {\n\"use strict\";\nmodule.exports = (value)=>{\n const date = new Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"90qfX\", function(module, exports) {\n\"use strict\";\n\nvar $iV0Sp = parcelRequire(\"iV0Sp\");\nclass $68e87b191f4d757e$var$FloatingDateTime extends Date {\n constructor(value){\n super(value + \"Z\");\n this.isFloating = true;\n }\n toISOString() {\n const date = `${this.getUTCFullYear()}-${$iV0Sp(2, this.getUTCMonth() + 1)}-${$iV0Sp(2, this.getUTCDate())}`;\n const time = `${$iV0Sp(2, this.getUTCHours())}:${$iV0Sp(2, this.getUTCMinutes())}:${$iV0Sp(2, this.getUTCSeconds())}.${$iV0Sp(3, this.getUTCMilliseconds())}`;\n return `${date}T${time}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $68e87b191f4d757e$var$FloatingDateTime(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\nparcelRegister(\"iV0Sp\", function(module, exports) {\n\"use strict\";\nmodule.exports = (d, num)=>{\n num = String(num);\n while(num.length < d)num = \"0\" + num;\n return num;\n};\n\n});\n\n\nparcelRegister(\"4xjP6\", function(module, exports) {\n\"use strict\";\n\nvar $iV0Sp = parcelRequire(\"iV0Sp\");\nconst $34d99efd34f9960e$var$DateTime = $parcel$global.Date;\nclass $34d99efd34f9960e$var$Date extends $34d99efd34f9960e$var$DateTime {\n constructor(value){\n super(value);\n this.isDate = true;\n }\n toISOString() {\n return `${this.getUTCFullYear()}-${$iV0Sp(2, this.getUTCMonth() + 1)}-${$iV0Sp(2, this.getUTCDate())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $34d99efd34f9960e$var$Date(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\nparcelRegister(\"3wXZs\", function(module, exports) {\n\"use strict\";\n\nvar $iV0Sp = parcelRequire(\"iV0Sp\");\nclass $2922e5136a3bd44b$var$Time extends Date {\n constructor(value){\n super(`0000-01-01T${value}Z`);\n this.isTime = true;\n }\n toISOString() {\n return `${$iV0Sp(2, this.getUTCHours())}:${$iV0Sp(2, this.getUTCMinutes())}:${$iV0Sp(2, this.getUTCSeconds())}.${$iV0Sp(3, this.getUTCMilliseconds())}`;\n }\n}\nmodule.exports = (value)=>{\n const date = new $2922e5136a3bd44b$var$Time(value);\n /* istanbul ignore if */ if (isNaN(date)) throw new TypeError(\"Invalid Datetime\");\n else return date;\n};\n\n});\n\n\nparcelRegister(\"c4Fk1\", function(module, exports) {\n\"use strict\";\nmodule.exports = $8ca5e9748e441c69$var$prettyError;\nfunction $8ca5e9748e441c69$var$prettyError(err, buf) {\n /* istanbul ignore if */ if (err.pos == null || err.line == null) return err;\n let msg = err.message;\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`;\n /* istanbul ignore else */ if (buf && buf.split) {\n const lines = buf.split(/\\n/);\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length;\n let linePadding = \" \";\n while(linePadding.length < lineNumWidth)linePadding += \" \";\n for(let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii){\n let lineNum = String(ii + 1);\n if (lineNum.length < lineNumWidth) lineNum = \" \" + lineNum;\n if (err.line === ii) {\n msg += lineNum + \"> \" + lines[ii] + \"\\n\";\n msg += linePadding + \" \";\n for(let hh = 0; hh < err.col; ++hh)msg += \" \";\n msg += \"^\\n\";\n } else msg += lineNum + \": \" + lines[ii] + \"\\n\";\n }\n }\n err.message = msg + \"\\n\";\n return err;\n}\n\n});\n\n\nparcelRegister(\"iO4Tr\", function(module, exports) {\n\"use strict\";\nmodule.exports = $db10b12be78519c6$var$parseAsync;\n\nvar $16AyQ = parcelRequire(\"16AyQ\");\n\nvar $c4Fk1 = parcelRequire(\"c4Fk1\");\nfunction $db10b12be78519c6$var$parseAsync(str, opts) {\n if (!opts) opts = {};\n const index = 0;\n const blocksize = opts.blocksize || 40960;\n const parser = new $16AyQ();\n return new Promise((resolve, reject)=>{\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject);\n });\n function parseAsyncNext(index, blocksize, resolve, reject) {\n if (index >= str.length) try {\n return resolve(parser.finish());\n } catch (err) {\n return reject($c4Fk1(err, str));\n }\n try {\n parser.parse(str.slice(index, index + blocksize));\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject);\n } catch (err) {\n reject($c4Fk1(err, str));\n }\n }\n}\n\n});\n\nparcelRegister(\"ddYPD\", function(module, exports) {\n\"use strict\";\nmodule.exports = $9a0bad2bcc685870$var$parseStream;\n\n\nvar $16AyQ = parcelRequire(\"16AyQ\");\nfunction $9a0bad2bcc685870$var$parseStream(stm) {\n if (stm) return $9a0bad2bcc685870$var$parseReadable(stm);\n else return $9a0bad2bcc685870$var$parseTransform(stm);\n}\nfunction $9a0bad2bcc685870$var$parseReadable(stm) {\n const parser = new $16AyQ();\n stm.setEncoding(\"utf8\");\n return new Promise((resolve, reject)=>{\n let readable;\n let ended = false;\n let errored = false;\n function finish() {\n ended = true;\n if (readable) return;\n try {\n resolve(parser.finish());\n } catch (err) {\n reject(err);\n }\n }\n function error(err) {\n errored = true;\n reject(err);\n }\n stm.once(\"end\", finish);\n stm.once(\"error\", error);\n readNext();\n function readNext() {\n readable = true;\n let data;\n while((data = stm.read()) !== null)try {\n parser.parse(data);\n } catch (err) {\n return error(err);\n }\n readable = false;\n /* istanbul ignore if */ if (ended) return finish();\n /* istanbul ignore if */ if (errored) return;\n stm.once(\"readable\", readNext);\n }\n });\n}\nfunction $9a0bad2bcc685870$var$parseTransform() {\n const parser = new $16AyQ();\n return new $k14yv$stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding));\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n },\n flush (cb) {\n try {\n this.push(parser.finish());\n } catch (err) {\n this.emit(\"error\", err);\n }\n cb();\n }\n });\n}\n\n});\n\n\nparcelRegister(\"erM83\", function(module, exports) {\n\"use strict\";\nmodule.exports = $a848ebb8ba129638$var$stringify;\nmodule.exports.value = $a848ebb8ba129638$var$stringifyInline;\nfunction $a848ebb8ba129638$var$stringify(obj) {\n if (obj === null) throw $a848ebb8ba129638$var$typeError(\"null\");\n if (obj === void 0) throw $a848ebb8ba129638$var$typeError(\"undefined\");\n if (typeof obj !== \"object\") throw $a848ebb8ba129638$var$typeError(typeof obj);\n if (typeof obj.toJSON === \"function\") obj = obj.toJSON();\n if (obj == null) return null;\n const type = $a848ebb8ba129638$var$tomlType(obj);\n if (type !== \"table\") throw $a848ebb8ba129638$var$typeError(type);\n return $a848ebb8ba129638$var$stringifyObject(\"\", \"\", obj);\n}\nfunction $a848ebb8ba129638$var$typeError(type) {\n return new Error(\"Can only stringify objects, not \" + type);\n}\nfunction $a848ebb8ba129638$var$arrayOneTypeError() {\n return new Error(\"Array values can't have mixed types\");\n}\nfunction $a848ebb8ba129638$var$getInlineKeys(obj) {\n return Object.keys(obj).filter((key)=>$a848ebb8ba129638$var$isInline(obj[key]));\n}\nfunction $a848ebb8ba129638$var$getComplexKeys(obj) {\n return Object.keys(obj).filter((key)=>!$a848ebb8ba129638$var$isInline(obj[key]));\n}\nfunction $a848ebb8ba129638$var$toJSON(obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, \"__proto__\") ? {\n [\"__proto__\"]: undefined\n } : {};\n for (let prop of Object.keys(obj))if (obj[prop] && typeof obj[prop].toJSON === \"function\" && !(\"toISOString\" in obj[prop])) nobj[prop] = obj[prop].toJSON();\n else nobj[prop] = obj[prop];\n return nobj;\n}\nfunction $a848ebb8ba129638$var$stringifyObject(prefix, indent, obj) {\n obj = $a848ebb8ba129638$var$toJSON(obj);\n var inlineKeys;\n var complexKeys;\n inlineKeys = $a848ebb8ba129638$var$getInlineKeys(obj);\n complexKeys = $a848ebb8ba129638$var$getComplexKeys(obj);\n var result = [];\n var inlineIndent = indent || \"\";\n inlineKeys.forEach((key)=>{\n var type = $a848ebb8ba129638$var$tomlType(obj[key]);\n if (type !== \"undefined\" && type !== \"null\") result.push(inlineIndent + $a848ebb8ba129638$var$stringifyKey(key) + \" = \" + $a848ebb8ba129638$var$stringifyAnyInline(obj[key], true));\n });\n if (result.length > 0) result.push(\"\");\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + \" \" : \"\";\n complexKeys.forEach((key)=>{\n result.push($a848ebb8ba129638$var$stringifyComplex(prefix, complexIndent, key, obj[key]));\n });\n return result.join(\"\\n\");\n}\nfunction $a848ebb8ba129638$var$isInline(value) {\n switch($a848ebb8ba129638$var$tomlType(value)){\n case \"undefined\":\n case \"null\":\n case \"integer\":\n case \"nan\":\n case \"float\":\n case \"boolean\":\n case \"string\":\n case \"datetime\":\n return true;\n case \"array\":\n return value.length === 0 || $a848ebb8ba129638$var$tomlType(value[0]) !== \"table\";\n case \"table\":\n return Object.keys(value).length === 0;\n /* istanbul ignore next */ default:\n return false;\n }\n}\nfunction $a848ebb8ba129638$var$tomlType(value) {\n if (value === undefined) return \"undefined\";\n else if (value === null) return \"null\";\n else if (typeof value === \"bigint\" || Number.isInteger(value) && !Object.is(value, -0)) return \"integer\";\n else if (typeof value === \"number\") return \"float\";\n else if (typeof value === \"boolean\") return \"boolean\";\n else if (typeof value === \"string\") return \"string\";\n else if (\"toISOString\" in value) return isNaN(value) ? \"undefined\" : \"datetime\";\n else if (Array.isArray(value)) return \"array\";\n else return \"table\";\n}\nfunction $a848ebb8ba129638$var$stringifyKey(key) {\n var keyStr = String(key);\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) return keyStr;\n else return $a848ebb8ba129638$var$stringifyBasicString(keyStr);\n}\nfunction $a848ebb8ba129638$var$stringifyBasicString(str) {\n return '\"' + $a848ebb8ba129638$var$escapeString(str).replace(/\"/g, '\\\\\"') + '\"';\n}\nfunction $a848ebb8ba129638$var$stringifyLiteralString(str) {\n return \"'\" + str + \"'\";\n}\nfunction $a848ebb8ba129638$var$numpad(num, str) {\n while(str.length < num)str = \"0\" + str;\n return str;\n}\nfunction $a848ebb8ba129638$var$escapeString(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/[\\b]/g, \"\\\\b\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\f/g, \"\\\\f\").replace(/\\r/g, \"\\\\r\")/* eslint-disable no-control-regex */ .replace(/([\\u0000-\\u001f\\u007f])/, (c)=>\"\\\\u\" + $a848ebb8ba129638$var$numpad(4, c.codePointAt(0).toString(16)));\n/* eslint-enable no-control-regex */ }\nfunction $a848ebb8ba129638$var$stringifyMultilineString(str) {\n let escaped = str.split(/\\n/).map((str)=>{\n return $a848ebb8ba129638$var$escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"');\n }).join(\"\\n\");\n if (escaped.slice(-1) === '\"') escaped += \"\\\\\\n\";\n return '\"\"\"\\n' + escaped + '\"\"\"';\n}\nfunction $a848ebb8ba129638$var$stringifyAnyInline(value, multilineOk) {\n let type = $a848ebb8ba129638$var$tomlType(value);\n if (type === \"string\") {\n if (multilineOk && /\\n/.test(value)) type = \"string-multiline\";\n else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) type = \"string-literal\";\n }\n return $a848ebb8ba129638$var$stringifyInline(value, type);\n}\nfunction $a848ebb8ba129638$var$stringifyInline(value, type) {\n /* istanbul ignore if */ if (!type) type = $a848ebb8ba129638$var$tomlType(value);\n switch(type){\n case \"string-multiline\":\n return $a848ebb8ba129638$var$stringifyMultilineString(value);\n case \"string\":\n return $a848ebb8ba129638$var$stringifyBasicString(value);\n case \"string-literal\":\n return $a848ebb8ba129638$var$stringifyLiteralString(value);\n case \"integer\":\n return $a848ebb8ba129638$var$stringifyInteger(value);\n case \"float\":\n return $a848ebb8ba129638$var$stringifyFloat(value);\n case \"boolean\":\n return $a848ebb8ba129638$var$stringifyBoolean(value);\n case \"datetime\":\n return $a848ebb8ba129638$var$stringifyDatetime(value);\n case \"array\":\n return $a848ebb8ba129638$var$stringifyInlineArray(value.filter((_)=>$a848ebb8ba129638$var$tomlType(_) !== \"null\" && $a848ebb8ba129638$var$tomlType(_) !== \"undefined\" && $a848ebb8ba129638$var$tomlType(_) !== \"nan\"));\n case \"table\":\n return $a848ebb8ba129638$var$stringifyInlineTable(value);\n /* istanbul ignore next */ default:\n throw $a848ebb8ba129638$var$typeError(type);\n }\n}\nfunction $a848ebb8ba129638$var$stringifyInteger(value) {\n /* eslint-disable security/detect-unsafe-regex */ return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"_\");\n}\nfunction $a848ebb8ba129638$var$stringifyFloat(value) {\n if (value === Infinity) return \"inf\";\n else if (value === -Infinity) return \"-inf\";\n else if (Object.is(value, NaN)) return \"nan\";\n else if (Object.is(value, -0)) return \"-0.0\";\n var chunks = String(value).split(\".\");\n var int = chunks[0];\n var dec = chunks[1] || 0;\n return $a848ebb8ba129638$var$stringifyInteger(int) + \".\" + dec;\n}\nfunction $a848ebb8ba129638$var$stringifyBoolean(value) {\n return String(value);\n}\nfunction $a848ebb8ba129638$var$stringifyDatetime(value) {\n return value.toISOString();\n}\nfunction $a848ebb8ba129638$var$isNumber(type) {\n return type === \"float\" || type === \"integer\";\n}\nfunction $a848ebb8ba129638$var$arrayType(values) {\n var contentType = $a848ebb8ba129638$var$tomlType(values[0]);\n if (values.every((_)=>$a848ebb8ba129638$var$tomlType(_) === contentType)) return contentType;\n // mixed integer/float, emit as floats\n if (values.every((_)=>$a848ebb8ba129638$var$isNumber($a848ebb8ba129638$var$tomlType(_)))) return \"float\";\n return \"mixed\";\n}\nfunction $a848ebb8ba129638$var$validateArray(values) {\n const type = $a848ebb8ba129638$var$arrayType(values);\n if (type === \"mixed\") throw $a848ebb8ba129638$var$arrayOneTypeError();\n return type;\n}\nfunction $a848ebb8ba129638$var$stringifyInlineArray(values) {\n values = $a848ebb8ba129638$var$toJSON(values);\n const type = $a848ebb8ba129638$var$validateArray(values);\n var result = \"[\";\n var stringified = values.map((_)=>$a848ebb8ba129638$var$stringifyInline(_, type));\n if (stringified.join(\", \").length > 60 || /\\n/.test(stringified)) result += \"\\n \" + stringified.join(\",\\n \") + \"\\n\";\n else result += \" \" + stringified.join(\", \") + (stringified.length > 0 ? \" \" : \"\");\n return result + \"]\";\n}\nfunction $a848ebb8ba129638$var$stringifyInlineTable(value) {\n value = $a848ebb8ba129638$var$toJSON(value);\n var result = [];\n Object.keys(value).forEach((key)=>{\n result.push($a848ebb8ba129638$var$stringifyKey(key) + \" = \" + $a848ebb8ba129638$var$stringifyAnyInline(value[key], false));\n });\n return \"{ \" + result.join(\", \") + (result.length > 0 ? \" \" : \"\") + \"}\";\n}\nfunction $a848ebb8ba129638$var$stringifyComplex(prefix, indent, key, value) {\n var valueType = $a848ebb8ba129638$var$tomlType(value);\n /* istanbul ignore else */ if (valueType === \"array\") return $a848ebb8ba129638$var$stringifyArrayOfTables(prefix, indent, key, value);\n else if (valueType === \"table\") return $a848ebb8ba129638$var$stringifyComplexTable(prefix, indent, key, value);\n else throw $a848ebb8ba129638$var$typeError(valueType);\n}\nfunction $a848ebb8ba129638$var$stringifyArrayOfTables(prefix, indent, key, values) {\n values = $a848ebb8ba129638$var$toJSON(values);\n $a848ebb8ba129638$var$validateArray(values);\n var firstValueType = $a848ebb8ba129638$var$tomlType(values[0]);\n /* istanbul ignore if */ if (firstValueType !== \"table\") throw $a848ebb8ba129638$var$typeError(firstValueType);\n var fullKey = prefix + $a848ebb8ba129638$var$stringifyKey(key);\n var result = \"\";\n values.forEach((table)=>{\n if (result.length > 0) result += \"\\n\";\n result += indent + \"[[\" + fullKey + \"]]\\n\";\n result += $a848ebb8ba129638$var$stringifyObject(fullKey + \".\", indent, table);\n });\n return result;\n}\nfunction $a848ebb8ba129638$var$stringifyComplexTable(prefix, indent, key, value) {\n var fullKey = prefix + $a848ebb8ba129638$var$stringifyKey(key);\n var result = \"\";\n if ($a848ebb8ba129638$var$getInlineKeys(value).length > 0) result += indent + \"[\" + fullKey + \"]\\n\";\n return result + $a848ebb8ba129638$var$stringifyObject(fullKey + \".\", indent, value);\n}\n\n});\n\n\n\nparcelRegister(\"2kmVU\", function(module, exports) {\n\n$parcel$export(module.exports, \"MANIFEST_URL\", () => $e72d62d13fef2884$export$f3182c5cb60bb857);\n$parcel$export(module.exports, \"findReleaseFromManifest\", () => $e72d62d13fef2884$export$45bea79befbd9a23);\n$parcel$export(module.exports, \"getManifest\", () => $e72d62d13fef2884$export$39e873de56f329d8);\n$parcel$export(module.exports, \"installCpythonFromRelease\", () => $e72d62d13fef2884$export$e1ffa7cd53152881);\n\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\n\nvar $1f6JF = parcelRequire(\"1f6JF\");\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\nconst $e72d62d13fef2884$var$TOKEN = $4t50X.getInput(\"token\");\nconst $e72d62d13fef2884$var$AUTH = !$e72d62d13fef2884$var$TOKEN ? undefined : `token ${$e72d62d13fef2884$var$TOKEN}`;\nconst $e72d62d13fef2884$var$MANIFEST_REPO_OWNER = \"actions\";\nconst $e72d62d13fef2884$var$MANIFEST_REPO_NAME = \"python-versions\";\nconst $e72d62d13fef2884$var$MANIFEST_REPO_BRANCH = \"main\";\nconst $e72d62d13fef2884$export$f3182c5cb60bb857 = `https://raw.githubusercontent.com/${$e72d62d13fef2884$var$MANIFEST_REPO_OWNER}/${$e72d62d13fef2884$var$MANIFEST_REPO_NAME}/${$e72d62d13fef2884$var$MANIFEST_REPO_BRANCH}/versions-manifest.json`;\nasync function $e72d62d13fef2884$export$45bea79befbd9a23(semanticVersionSpec, architecture, manifest) {\n if (!manifest) manifest = await $e72d62d13fef2884$export$39e873de56f329d8();\n const foundRelease = await $bG0ld.findFromManifest(semanticVersionSpec, false, manifest, architecture);\n return foundRelease;\n}\nfunction $e72d62d13fef2884$export$39e873de56f329d8() {\n $4t50X.debug(`Getting manifest from ${$e72d62d13fef2884$var$MANIFEST_REPO_OWNER}/${$e72d62d13fef2884$var$MANIFEST_REPO_NAME}@${$e72d62d13fef2884$var$MANIFEST_REPO_BRANCH}`);\n return $bG0ld.getManifestFromRepo($e72d62d13fef2884$var$MANIFEST_REPO_OWNER, $e72d62d13fef2884$var$MANIFEST_REPO_NAME, $e72d62d13fef2884$var$AUTH, $e72d62d13fef2884$var$MANIFEST_REPO_BRANCH);\n}\nasync function $e72d62d13fef2884$var$installPython(workingDirectory) {\n const options = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(0, $dm0eT.IS_LINUX) && {\n LD_LIBRARY_PATH: $k14yv$path.join(workingDirectory, \"lib\")\n }\n },\n silent: true,\n listeners: {\n stdout: (data)=>{\n $4t50X.info(data.toString().trim());\n },\n stderr: (data)=>{\n $4t50X.error(data.toString().trim());\n }\n }\n };\n if (0, $dm0eT.IS_WINDOWS) await $1f6JF.exec(\"powershell\", [\n \"./setup.ps1\"\n ], options);\n else await $1f6JF.exec(\"bash\", [\n \"./setup.sh\"\n ], options);\n}\nasync function $e72d62d13fef2884$export$e1ffa7cd53152881(release) {\n const downloadUrl = release.files[0].download_url;\n $4t50X.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = \"\";\n try {\n pythonPath = await $bG0ld.downloadTool(downloadUrl, undefined, $e72d62d13fef2884$var$AUTH);\n $4t50X.info(\"Extract downloaded archive\");\n let pythonExtractedFolder;\n if (0, $dm0eT.IS_WINDOWS) pythonExtractedFolder = await $bG0ld.extractZip(pythonPath);\n else pythonExtractedFolder = await $bG0ld.extractTar(pythonPath);\n $4t50X.info(\"Execute installation script\");\n await $e72d62d13fef2884$var$installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof $bG0ld.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) $4t50X.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $4t50X.info(err.message);\n if (err.stack) $4t50X.debug(err.stack);\n }\n throw err;\n }\n}\n\n});\nparcelRegister(\"bG0ld\", function(module, exports) {\n\nvar $8803e1b53e21bab1$var$$parcel$__dirname = $k14yv$path.resolve(__dirname, \"../../node_modules/setup-python/node_modules/@actions/tool-cache/lib\");\n\"use strict\";\nvar $8803e1b53e21bab1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $8803e1b53e21bab1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $8803e1b53e21bab1$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $8803e1b53e21bab1$var$__createBinding(result, mod, k);\n }\n $8803e1b53e21bab1$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $8803e1b53e21bab1$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $8803e1b53e21bab1$var$__importDefault = module.exports && module.exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.evaluateVersions = module.exports.isExplicitVersion = module.exports.findFromManifest = module.exports.getManifestFromRepo = module.exports.findAllVersions = module.exports.find = module.exports.cacheFile = module.exports.cacheDir = module.exports.extractZip = module.exports.extractXar = module.exports.extractTar = module.exports.extract7z = module.exports.downloadTool = module.exports.HTTPError = void 0;\n\nconst $8803e1b53e21bab1$var$core = $8803e1b53e21bab1$var$__importStar((parcelRequire(\"4t50X\")));\n\nconst $8803e1b53e21bab1$var$io = $8803e1b53e21bab1$var$__importStar((parcelRequire(\"hZdK0\")));\n\nconst $8803e1b53e21bab1$var$fs = $8803e1b53e21bab1$var$__importStar($k14yv$fs);\n\nconst $8803e1b53e21bab1$var$mm = $8803e1b53e21bab1$var$__importStar((parcelRequire(\"8rRFf\")));\n\nconst $8803e1b53e21bab1$var$os = $8803e1b53e21bab1$var$__importStar($k14yv$os);\n\nconst $8803e1b53e21bab1$var$path = $8803e1b53e21bab1$var$__importStar($k14yv$path);\n\nconst $8803e1b53e21bab1$var$httpm = $8803e1b53e21bab1$var$__importStar((parcelRequire(\"a7JAS\")));\n\nconst $8803e1b53e21bab1$var$semver = $8803e1b53e21bab1$var$__importStar((parcelRequire(\"lIb6h\")));\n\nconst $8803e1b53e21bab1$var$stream = $8803e1b53e21bab1$var$__importStar($k14yv$stream);\n\nconst $8803e1b53e21bab1$var$util = $8803e1b53e21bab1$var$__importStar($k14yv$util);\n\nconst $8803e1b53e21bab1$var$v4_1 = $8803e1b53e21bab1$var$__importDefault((parcelRequire(\"cdVym\")));\n\nvar $1f6JF = parcelRequire(\"1f6JF\");\n\n\nvar $lI4Zo = parcelRequire(\"lI4Zo\");\nclass $8803e1b53e21bab1$var$HTTPError extends Error {\n constructor(httpStatusCode){\n super(`Unexpected HTTP response: ${httpStatusCode}`);\n this.httpStatusCode = httpStatusCode;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nmodule.exports.HTTPError = $8803e1b53e21bab1$var$HTTPError;\nconst $8803e1b53e21bab1$var$IS_WINDOWS = process.platform === \"win32\";\nconst $8803e1b53e21bab1$var$IS_MAC = process.platform === \"darwin\";\nconst $8803e1b53e21bab1$var$userAgent = \"actions/tool-cache\";\n/**\n * Download a tool from an url and stream it into a file\n *\n * @param url url of tool to download\n * @param dest path to download tool\n * @param auth authorization header\n * @param headers other headers\n * @returns path to downloaded tool\n */ function $8803e1b53e21bab1$var$downloadTool(url, dest, auth, headers) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n dest = dest || $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getTempDirectory(), $8803e1b53e21bab1$var$v4_1.default());\n yield $8803e1b53e21bab1$var$io.mkdirP($8803e1b53e21bab1$var$path.dirname(dest));\n $8803e1b53e21bab1$var$core.debug(`Downloading ${url}`);\n $8803e1b53e21bab1$var$core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = $8803e1b53e21bab1$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS\", 10);\n const maxSeconds = $8803e1b53e21bab1$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS\", 20);\n const retryHelper = new $lI4Zo.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(()=>$8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n return yield $8803e1b53e21bab1$var$downloadToolAttempt(url, dest || \"\", auth, headers);\n }), (err)=>{\n if (err instanceof $8803e1b53e21bab1$var$HTTPError && err.httpStatusCode) {\n // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests\n if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false;\n }\n // Otherwise retry\n return true;\n });\n });\n}\nmodule.exports.downloadTool = $8803e1b53e21bab1$var$downloadTool;\nfunction $8803e1b53e21bab1$var$downloadToolAttempt(url, dest, auth, headers) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n if ($8803e1b53e21bab1$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`);\n // Get the response headers\n const http = new $8803e1b53e21bab1$var$httpm.HttpClient($8803e1b53e21bab1$var$userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n $8803e1b53e21bab1$var$core.debug(\"set auth\");\n if (headers === undefined) headers = {};\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new $8803e1b53e21bab1$var$HTTPError(response.message.statusCode);\n $8803e1b53e21bab1$var$core.debug(`Failed to download from \"${url}\". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);\n throw err;\n }\n // Download the response body\n const pipeline = $8803e1b53e21bab1$var$util.promisify($8803e1b53e21bab1$var$stream.pipeline);\n const responseMessageFactory = $8803e1b53e21bab1$var$_getGlobal(\"TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY\", ()=>response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, $8803e1b53e21bab1$var$fs.createWriteStream(dest));\n $8803e1b53e21bab1$var$core.debug(\"download complete\");\n succeeded = true;\n return dest;\n } finally{\n // Error, delete dest before retry\n if (!succeeded) {\n $8803e1b53e21bab1$var$core.debug(\"download failed\");\n try {\n yield $8803e1b53e21bab1$var$io.rmRF(dest);\n } catch (err) {\n $8803e1b53e21bab1$var$core.debug(`Failed to delete '${dest}'. ${err.message}`);\n }\n }\n }\n });\n}\n/**\n * Extract a .7z file\n *\n * @param file path to the .7z file\n * @param dest destination directory. Optional.\n * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this\n * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will\n * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is\n * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line\n * interface, it is smaller than the full command line interface, and it does support long paths. At the\n * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.\n * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path\n * to 7zr.exe can be pass to this function.\n * @returns path to the destination directory\n */ function $8803e1b53e21bab1$var$extract7z(file, dest, _7zPath) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n $k14yv$assert.ok($8803e1b53e21bab1$var$IS_WINDOWS, \"extract7z() not supported on current OS\");\n $k14yv$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $8803e1b53e21bab1$var$_createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) try {\n const logLevel = $8803e1b53e21bab1$var$core.isDebug() ? \"-bb1\" : \"-bb0\";\n const args = [\n \"x\",\n logLevel,\n \"-bd\",\n \"-sccUTF-8\",\n file\n ];\n const options = {\n silent: true\n };\n yield $1f6JF.exec(`\"${_7zPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n else {\n const escapedScript = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$$parcel$__dirname, \"..\", \"scripts\", \"Invoke-7zdec.ps1\").replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const escapedTarget = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n command\n ];\n const options = {\n silent: true\n };\n try {\n const powershellPath = yield $8803e1b53e21bab1$var$io.which(\"powershell\", true);\n yield $1f6JF.exec(`\"${powershellPath}\"`, args, options);\n } finally{\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nmodule.exports.extract7z = $8803e1b53e21bab1$var$extract7z;\n/**\n * Extract a compressed tar archive\n *\n * @param file path to the tar\n * @param dest destination directory. Optional.\n * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional.\n * @returns path to the destination directory\n */ function $8803e1b53e21bab1$var$extractTar(file, dest, flags = \"xz\") {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n // Create dest\n dest = yield $8803e1b53e21bab1$var$_createExtractFolder(dest);\n // Determine whether GNU tar\n $8803e1b53e21bab1$var$core.debug(\"Checking tar --version\");\n let versionOutput = \"\";\n yield $1f6JF.exec(\"tar --version\", [], {\n ignoreReturnCode: true,\n silent: true,\n listeners: {\n stdout: (data)=>versionOutput += data.toString(),\n stderr: (data)=>versionOutput += data.toString()\n }\n });\n $8803e1b53e21bab1$var$core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes(\"GNU TAR\");\n // Initialize args\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n if ($8803e1b53e21bab1$var$core.isDebug() && !flags.includes(\"v\")) args.push(\"-v\");\n let destArg = dest;\n let fileArg = file;\n if ($8803e1b53e21bab1$var$IS_WINDOWS && isGnuTar) {\n args.push(\"--force-local\");\n destArg = dest.replace(/\\\\/g, \"/\");\n // Technically only the dest needs to have `/` but for aesthetic consistency\n // convert slashes in the file arg too.\n fileArg = file.replace(/\\\\/g, \"/\");\n }\n if (isGnuTar) {\n // Suppress warnings when using GNU tar to extract archives created by BSD tar\n args.push(\"--warning=no-unknown-keyword\");\n args.push(\"--overwrite\");\n }\n args.push(\"-C\", destArg, \"-f\", fileArg);\n yield $1f6JF.exec(`tar`, args);\n return dest;\n });\n}\nmodule.exports.extractTar = $8803e1b53e21bab1$var$extractTar;\n/**\n * Extract a xar compatible archive\n *\n * @param file path to the archive\n * @param dest destination directory. Optional.\n * @param flags flags for the xar. Optional.\n * @returns path to the destination directory\n */ function $8803e1b53e21bab1$var$extractXar(file, dest, flags = []) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n $k14yv$assert.ok($8803e1b53e21bab1$var$IS_MAC, \"extractXar() not supported on current OS\");\n $k14yv$assert.ok(file, 'parameter \"file\" is required');\n dest = yield $8803e1b53e21bab1$var$_createExtractFolder(dest);\n let args;\n if (flags instanceof Array) args = flags;\n else args = [\n flags\n ];\n args.push(\"-x\", \"-C\", dest, \"-f\", file);\n if ($8803e1b53e21bab1$var$core.isDebug()) args.push(\"-v\");\n const xarPath = yield $8803e1b53e21bab1$var$io.which(\"xar\", true);\n yield $1f6JF.exec(`\"${xarPath}\"`, $8803e1b53e21bab1$var$_unique(args));\n return dest;\n });\n}\nmodule.exports.extractXar = $8803e1b53e21bab1$var$extractXar;\n/**\n * Extract a zip\n *\n * @param file path to the zip\n * @param dest destination directory. Optional.\n * @returns path to the destination directory\n */ function $8803e1b53e21bab1$var$extractZip(file, dest) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n if (!file) throw new Error(\"parameter 'file' is required\");\n dest = yield $8803e1b53e21bab1$var$_createExtractFolder(dest);\n if ($8803e1b53e21bab1$var$IS_WINDOWS) yield $8803e1b53e21bab1$var$extractZipWin(file, dest);\n else yield $8803e1b53e21bab1$var$extractZipNix(file, dest);\n return dest;\n });\n}\nmodule.exports.extractZip = $8803e1b53e21bab1$var$extractZip;\nfunction $8803e1b53e21bab1$var$extractZipWin(file, dest) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n // build the powershell command\n const escapedFile = file.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\"); // double-up single quotes, remove double quotes and newlines\n const escapedDest = dest.replace(/'/g, \"''\").replace(/\"|\\n|\\r/g, \"\");\n const pwshPath = yield $8803e1b53e21bab1$var$io.which(\"pwsh\", false);\n //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory\n //and the -Force flag for Expand-Archive as a fallback\n if (pwshPath) {\n //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive\n const pwshCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,\n `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,\n `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n pwshCommand\n ];\n $8803e1b53e21bab1$var$core.debug(`Using pwsh at path: ${pwshPath}`);\n yield $1f6JF.exec(`\"${pwshPath}\"`, args);\n } else {\n const powershellCommand = [\n `$ErrorActionPreference = 'Stop' ;`,\n `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,\n `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,\n `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`\n ].join(\" \");\n const args = [\n \"-NoLogo\",\n \"-Sta\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-ExecutionPolicy\",\n \"Unrestricted\",\n \"-Command\",\n powershellCommand\n ];\n const powershellPath = yield $8803e1b53e21bab1$var$io.which(\"powershell\", true);\n $8803e1b53e21bab1$var$core.debug(`Using powershell at path: ${powershellPath}`);\n yield $1f6JF.exec(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction $8803e1b53e21bab1$var$extractZipNix(file, dest) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n const unzipPath = yield $8803e1b53e21bab1$var$io.which(\"unzip\", true);\n const args = [\n file\n ];\n if (!$8803e1b53e21bab1$var$core.isDebug()) args.unshift(\"-q\");\n args.unshift(\"-o\"); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield $1f6JF.exec(`\"${unzipPath}\"`, args, {\n cwd: dest\n });\n });\n}\n/**\n * Caches a directory and installs it into the tool cacheDir\n *\n * @param sourceDir the directory to cache into tools\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $8803e1b53e21bab1$var$cacheDir(sourceDir, tool, version, arch) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n version = $8803e1b53e21bab1$var$semver.clean(version) || version;\n arch = arch || $8803e1b53e21bab1$var$os.arch();\n $8803e1b53e21bab1$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $8803e1b53e21bab1$var$core.debug(`source dir: ${sourceDir}`);\n if (!$8803e1b53e21bab1$var$fs.statSync(sourceDir).isDirectory()) throw new Error(\"sourceDir is not a directory\");\n // Create the tool dir\n const destPath = yield $8803e1b53e21bab1$var$_createToolPath(tool, version, arch);\n // copy each child item. do not move. move can fail on Windows\n // due to anti-virus software having an open handle on a file.\n for (const itemName of $8803e1b53e21bab1$var$fs.readdirSync(sourceDir)){\n const s = $8803e1b53e21bab1$var$path.join(sourceDir, itemName);\n yield $8803e1b53e21bab1$var$io.cp(s, destPath, {\n recursive: true\n });\n }\n // write .complete\n $8803e1b53e21bab1$var$_completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nmodule.exports.cacheDir = $8803e1b53e21bab1$var$cacheDir;\n/**\n * Caches a downloaded file (GUID) and installs it\n * into the tool cache with a given targetName\n *\n * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.\n * @param targetFile the name of the file name in the tools directory\n * @param tool tool name\n * @param version version of the tool. semver format\n * @param arch architecture of the tool. Optional. Defaults to machine architecture\n */ function $8803e1b53e21bab1$var$cacheFile(sourceFile, targetFile, tool, version, arch) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n version = $8803e1b53e21bab1$var$semver.clean(version) || version;\n arch = arch || $8803e1b53e21bab1$var$os.arch();\n $8803e1b53e21bab1$var$core.debug(`Caching tool ${tool} ${version} ${arch}`);\n $8803e1b53e21bab1$var$core.debug(`source file: ${sourceFile}`);\n if (!$8803e1b53e21bab1$var$fs.statSync(sourceFile).isFile()) throw new Error(\"sourceFile is not a file\");\n // create the tool dir\n const destFolder = yield $8803e1b53e21bab1$var$_createToolPath(tool, version, arch);\n // copy instead of move. move can fail on Windows due to\n // anti-virus software having an open handle on a file.\n const destPath = $8803e1b53e21bab1$var$path.join(destFolder, targetFile);\n $8803e1b53e21bab1$var$core.debug(`destination file ${destPath}`);\n yield $8803e1b53e21bab1$var$io.cp(sourceFile, destPath);\n // write .complete\n $8803e1b53e21bab1$var$_completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nmodule.exports.cacheFile = $8803e1b53e21bab1$var$cacheFile;\n/**\n * Finds the path to a tool version in the local installed tool cache\n *\n * @param toolName name of the tool\n * @param versionSpec version of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $8803e1b53e21bab1$var$find(toolName, versionSpec, arch) {\n if (!toolName) throw new Error(\"toolName parameter is required\");\n if (!versionSpec) throw new Error(\"versionSpec parameter is required\");\n arch = arch || $8803e1b53e21bab1$var$os.arch();\n // attempt to resolve an explicit version\n if (!$8803e1b53e21bab1$var$isExplicitVersion(versionSpec)) {\n const localVersions = $8803e1b53e21bab1$var$findAllVersions(toolName, arch);\n const match = $8803e1b53e21bab1$var$evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = \"\";\n if (versionSpec) {\n versionSpec = $8803e1b53e21bab1$var$semver.clean(versionSpec) || \"\";\n const cachePath = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getCacheDirectory(), toolName, versionSpec, arch);\n $8803e1b53e21bab1$var$core.debug(`checking cache: ${cachePath}`);\n if ($8803e1b53e21bab1$var$fs.existsSync(cachePath) && $8803e1b53e21bab1$var$fs.existsSync(`${cachePath}.complete`)) {\n $8803e1b53e21bab1$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n } else $8803e1b53e21bab1$var$core.debug(\"not found\");\n }\n return toolPath;\n}\nmodule.exports.find = $8803e1b53e21bab1$var$find;\n/**\n * Finds the paths to all versions of a tool that are installed in the local tool cache\n *\n * @param toolName name of the tool\n * @param arch optional arch. defaults to arch of computer\n */ function $8803e1b53e21bab1$var$findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || $8803e1b53e21bab1$var$os.arch();\n const toolPath = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getCacheDirectory(), toolName);\n if ($8803e1b53e21bab1$var$fs.existsSync(toolPath)) {\n const children = $8803e1b53e21bab1$var$fs.readdirSync(toolPath);\n for (const child of children)if ($8803e1b53e21bab1$var$isExplicitVersion(child)) {\n const fullPath = $8803e1b53e21bab1$var$path.join(toolPath, child, arch || \"\");\n if ($8803e1b53e21bab1$var$fs.existsSync(fullPath) && $8803e1b53e21bab1$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child);\n }\n }\n return versions;\n}\nmodule.exports.findAllVersions = $8803e1b53e21bab1$var$findAllVersions;\nfunction $8803e1b53e21bab1$var$getManifestFromRepo(owner, repo, auth, branch = \"master\") {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n let releases = [];\n const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;\n const http = new $8803e1b53e21bab1$var$httpm.HttpClient(\"tool-cache\");\n const headers = {};\n if (auth) {\n $8803e1b53e21bab1$var$core.debug(\"set auth\");\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) return releases;\n let manifestUrl = \"\";\n for (const item of response.result.tree)if (item.path === \"versions-manifest.json\") {\n manifestUrl = item.url;\n break;\n }\n headers[\"accept\"] = \"application/vnd.github.VERSION.raw\";\n let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody();\n if (versionsRaw) {\n // shouldn't be needed but protects against invalid json saved with BOM\n versionsRaw = versionsRaw.replace(/^\\uFEFF/, \"\");\n try {\n releases = JSON.parse(versionsRaw);\n } catch (_a) {\n $8803e1b53e21bab1$var$core.debug(\"Invalid json\");\n }\n }\n return releases;\n });\n}\nmodule.exports.getManifestFromRepo = $8803e1b53e21bab1$var$getManifestFromRepo;\nfunction $8803e1b53e21bab1$var$findFromManifest(versionSpec, stable, manifest, archFilter = $8803e1b53e21bab1$var$os.arch()) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n // wrap the internal impl\n const match = yield $8803e1b53e21bab1$var$mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nmodule.exports.findFromManifest = $8803e1b53e21bab1$var$findFromManifest;\nfunction $8803e1b53e21bab1$var$_createExtractFolder(dest) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n if (!dest) // create a temp dir\n dest = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getTempDirectory(), $8803e1b53e21bab1$var$v4_1.default());\n yield $8803e1b53e21bab1$var$io.mkdirP(dest);\n return dest;\n });\n}\nfunction $8803e1b53e21bab1$var$_createToolPath(tool, version, arch) {\n return $8803e1b53e21bab1$var$__awaiter(this, void 0, void 0, function*() {\n const folderPath = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getCacheDirectory(), tool, $8803e1b53e21bab1$var$semver.clean(version) || version, arch || \"\");\n $8803e1b53e21bab1$var$core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield $8803e1b53e21bab1$var$io.rmRF(folderPath);\n yield $8803e1b53e21bab1$var$io.rmRF(markerPath);\n yield $8803e1b53e21bab1$var$io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction $8803e1b53e21bab1$var$_completeToolPath(tool, version, arch) {\n const folderPath = $8803e1b53e21bab1$var$path.join($8803e1b53e21bab1$var$_getCacheDirectory(), tool, $8803e1b53e21bab1$var$semver.clean(version) || version, arch || \"\");\n const markerPath = `${folderPath}.complete`;\n $8803e1b53e21bab1$var$fs.writeFileSync(markerPath, \"\");\n $8803e1b53e21bab1$var$core.debug(\"finished caching tool\");\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */ function $8803e1b53e21bab1$var$isExplicitVersion(versionSpec) {\n const c = $8803e1b53e21bab1$var$semver.clean(versionSpec) || \"\";\n $8803e1b53e21bab1$var$core.debug(`isExplicit: ${c}`);\n const valid = $8803e1b53e21bab1$var$semver.valid(c) != null;\n $8803e1b53e21bab1$var$core.debug(`explicit? ${valid}`);\n return valid;\n}\nmodule.exports.isExplicitVersion = $8803e1b53e21bab1$var$isExplicitVersion;\n/**\n * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec`\n *\n * @param versions array of versions to evaluate\n * @param versionSpec semantic version spec to satisfy\n */ function $8803e1b53e21bab1$var$evaluateVersions(versions, versionSpec) {\n let version = \"\";\n $8803e1b53e21bab1$var$core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b)=>{\n if ($8803e1b53e21bab1$var$semver.gt(a, b)) return 1;\n return -1;\n });\n for(let i = versions.length - 1; i >= 0; i--){\n const potential = versions[i];\n const satisfied = $8803e1b53e21bab1$var$semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) $8803e1b53e21bab1$var$core.debug(`matched: ${version}`);\n else $8803e1b53e21bab1$var$core.debug(\"match not found\");\n return version;\n}\nmodule.exports.evaluateVersions = $8803e1b53e21bab1$var$evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */ function $8803e1b53e21bab1$var$_getCacheDirectory() {\n const cacheDirectory = process.env[\"RUNNER_TOOL_CACHE\"] || \"\";\n $k14yv$assert.ok(cacheDirectory, \"Expected RUNNER_TOOL_CACHE to be defined\");\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */ function $8803e1b53e21bab1$var$_getTempDirectory() {\n const tempDirectory = process.env[\"RUNNER_TEMP\"] || \"\";\n $k14yv$assert.ok(tempDirectory, \"Expected RUNNER_TEMP to be defined\");\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */ function $8803e1b53e21bab1$var$_getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */ function $8803e1b53e21bab1$var$_unique(values) {\n return Array.from(new Set(values));\n}\n\n});\nparcelRegister(\"8rRFf\", function(module, exports) {\n\"use strict\";\nvar $626a78fa266817f8$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $626a78fa266817f8$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $626a78fa266817f8$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $626a78fa266817f8$var$__createBinding(result, mod, k);\n }\n $626a78fa266817f8$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $626a78fa266817f8$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $626a78fa266817f8$var$semver = $626a78fa266817f8$var$__importStar((parcelRequire(\"lIb6h\")));\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\n\n\nfunction $626a78fa266817f8$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $626a78fa266817f8$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $k14yv$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $4t50X.debug(`check ${version} satisfies ${versionSpec}`);\n if ($626a78fa266817f8$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $4t50X.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $626a78fa266817f8$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $4t50X.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $626a78fa266817f8$var$_findMatch;\nfunction $626a78fa266817f8$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $k14yv$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $k14yv$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $626a78fa266817f8$var$_getOsVersion;\nfunction $626a78fa266817f8$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($k14yv$fs.existsSync(lsbReleaseFile)) contents = $k14yv$fs.readFileSync(lsbReleaseFile).toString();\n else if ($k14yv$fs.existsSync(osReleaseFile)) contents = $k14yv$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $626a78fa266817f8$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"lIb6h\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"cdVym\", function(module, exports) {\n\nvar $lye1X = parcelRequire(\"lye1X\");\n\nvar $ay3HY = parcelRequire(\"ay3HY\");\nfunction $8e6357ca3726aeca$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $lye1X)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $ay3HY(rnds);\n}\nmodule.exports = $8e6357ca3726aeca$var$v4;\n\n});\nparcelRegister(\"lye1X\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $k14yv$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"ay3HY\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $7adff4bd4e838428$var$byteToHex = [];\nfor(var $7adff4bd4e838428$var$i = 0; $7adff4bd4e838428$var$i < 256; ++$7adff4bd4e838428$var$i)$7adff4bd4e838428$var$byteToHex[$7adff4bd4e838428$var$i] = ($7adff4bd4e838428$var$i + 0x100).toString(16).substr(1);\nfunction $7adff4bd4e838428$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $7adff4bd4e838428$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $7adff4bd4e838428$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"lI4Zo\", function(module, exports) {\n\"use strict\";\nvar $fce193c505a8cce0$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $fce193c505a8cce0$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $fce193c505a8cce0$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $fce193c505a8cce0$var$__createBinding(result, mod, k);\n }\n $fce193c505a8cce0$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $fce193c505a8cce0$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.RetryHelper = void 0;\n\nconst $fce193c505a8cce0$var$core = $fce193c505a8cce0$var$__importStar((parcelRequire(\"4t50X\")));\n/**\n * Internal class for retries\n */ class $fce193c505a8cce0$var$RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds){\n if (maxAttempts < 1) throw new Error(\"max attempts should be greater than or equal to 1\");\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) throw new Error(\"min seconds should be less than or equal to max seconds\");\n }\n execute(action, isRetryable) {\n return $fce193c505a8cce0$var$__awaiter(this, void 0, void 0, function*() {\n let attempt = 1;\n while(attempt < this.maxAttempts){\n // Try\n try {\n return yield action();\n } catch (err) {\n if (isRetryable && !isRetryable(err)) throw err;\n $fce193c505a8cce0$var$core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n $fce193c505a8cce0$var$core.info(`Waiting ${seconds} seconds before trying again`);\n yield this.sleep(seconds);\n attempt++;\n }\n // Last attempt\n return yield action();\n });\n }\n getSleepAmount() {\n return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds;\n }\n sleep(seconds) {\n return $fce193c505a8cce0$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>setTimeout(resolve, seconds * 1000));\n });\n }\n}\nmodule.exports.RetryHelper = $fce193c505a8cce0$var$RetryHelper;\n\n});\n\n\n\n\nparcelRegister(\"9q7Zq\", function(module, exports) {\n\n$parcel$export(module.exports, \"findPyPyVersion\", () => $90342fa0f8357b29$export$43d689d19c89c31d);\n\n\nvar $3Fegg = parcelRequire(\"3Fegg\");\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\nasync function $90342fa0f8357b29$export$43d689d19c89c31d(versionSpec, architecture, updateEnvironment, checkLatest, allowPreReleases) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir;\n let releases;\n const pypyVersionSpec = $90342fa0f8357b29$export$4182d5bdd18177a7(versionSpec);\n if (checkLatest) {\n releases = await $3Fegg.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = $3Fegg.findRelease(releases, pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture, false);\n if (releaseData) {\n $4t50X.info(`Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`);\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else $4t50X.info(`Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`);\n }\n }\n ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = $90342fa0f8357b29$export$bba8aabb976a1d17(pypyVersionSpec.pythonVersion, pypyVersionSpec.pypyVersion, architecture));\n if (!installDir) ({ installDir: installDir, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = await $3Fegg.installPyPy(pypyVersionSpec.pypyVersion, pypyVersionSpec.pythonVersion, architecture, allowPreReleases, releases));\n const pipDir = (0, $dm0eT.IS_WINDOWS) ? \"Scripts\" : \"bin\";\n const _binDir = $k14yv$path.join(installDir, pipDir);\n const binaryExtension = (0, $dm0eT.IS_WINDOWS) ? \".exe\" : \"\";\n const pythonPath = $k14yv$path.join((0, $dm0eT.IS_WINDOWS) ? installDir : _binDir, `python${binaryExtension}`);\n const pythonLocation = $3Fegg.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n $4t50X.exportVariable(\"pythonLocation\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n $4t50X.exportVariable(\"Python_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n $4t50X.exportVariable(\"Python2_ROOT_DIR\", installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n $4t50X.exportVariable(\"Python3_ROOT_DIR\", installDir);\n $4t50X.exportVariable(\"PKG_CONFIG_PATH\", pythonLocation + \"/lib/pkgconfig\");\n $4t50X.addPath(pythonLocation);\n $4t50X.addPath(_binDir);\n }\n $4t50X.setOutput(\"python-version\", \"pypy\" + resolvedPyPyVersion);\n $4t50X.setOutput(\"python-path\", pythonPath);\n return {\n resolvedPyPyVersion: resolvedPyPyVersion,\n resolvedPythonVersion: resolvedPythonVersion\n };\n}\nfunction $90342fa0f8357b29$export$bba8aabb976a1d17(pythonVersion, pypyVersion, architecture) {\n let resolvedPyPyVersion = \"\";\n let resolvedPythonVersion = \"\";\n let installDir = (0, $dm0eT.IS_WINDOWS) ? $90342fa0f8357b29$export$139298be7eb2bd(pythonVersion) : $bG0ld.find(\"PyPy\", pythonVersion, architecture);\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = (0, $dm0eT.getPyPyVersionFromPath)(installDir);\n resolvedPyPyVersion = (0, $dm0eT.readExactPyPyVersionFile)(installDir);\n const isPyPyVersionSatisfies = $bSUdl.satisfies(resolvedPyPyVersion, pypyVersion);\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = \"\";\n resolvedPythonVersion = \"\";\n }\n }\n if (!installDir) $4t50X.info(`PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n}\nfunction $90342fa0f8357b29$export$4182d5bdd18177a7(versionSpec) {\n const versions = versionSpec.split(\"-\").filter((item)=>!!item);\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace(\"pypy\", \"\");\n versions.splice(0, 1, \"pypy\", pythonVersion);\n }\n if (versions.length < 2 || versions[0] != \"pypy\") throw new Error(\"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\");\n const pythonVersion = versions[1];\n let pypyVersion;\n if (versions.length > 2) pypyVersion = $3Fegg.pypyVersionToSemantic(versions[2]);\n else pypyVersion = \"x\";\n if (!(0, $dm0eT.validateVersion)(pythonVersion) || !(0, $dm0eT.validateVersion)(pypyVersion)) throw new Error(\"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\");\n if (!(0, $dm0eT.validatePythonVersionFormatForPyPy)(pythonVersion)) throw new Error(\"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\");\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\nfunction $90342fa0f8357b29$export$139298be7eb2bd(pythonVersion) {\n let installDir = \"\";\n (0, $dm0eT.WINDOWS_ARCHS).forEach((architecture)=>installDir = installDir || $bG0ld.find(\"PyPy\", pythonVersion, architecture));\n return installDir;\n}\n\n});\nparcelRegister(\"3Fegg\", function(module, exports) {\n\n$parcel$export(module.exports, \"installPyPy\", () => $bbc9d655660b9c39$export$3573149ec5684a1d);\n$parcel$export(module.exports, \"getAvailablePyPyVersions\", () => $bbc9d655660b9c39$export$15e3ff21db62aa77);\n$parcel$export(module.exports, \"findRelease\", () => $bbc9d655660b9c39$export$4272161ba9d7d3dd);\n$parcel$export(module.exports, \"getPyPyBinaryPath\", () => $bbc9d655660b9c39$export$a053ce7a690fbb2e);\n$parcel$export(module.exports, \"pypyVersionToSemantic\", () => $bbc9d655660b9c39$export$4e25ef8c836002b9);\n\n\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $bG0ld = parcelRequire(\"bG0ld\");\n\nvar $bSUdl = parcelRequire(\"bSUdl\");\n\nvar $a7JAS = parcelRequire(\"a7JAS\");\n\nvar $1f6JF = parcelRequire(\"1f6JF\");\n\n\nvar $dm0eT = parcelRequire(\"dm0eT\");\nasync function $bbc9d655660b9c39$export$3573149ec5684a1d(pypyVersion, pythonVersion, architecture, allowPreReleases, releases) {\n let downloadDir;\n releases = releases ?? await $bbc9d655660b9c39$export$15e3ff21db62aa77();\n if (!releases || releases.length === 0) throw new Error(\"No release was found in PyPy version.json\");\n let releaseData = $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, false);\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n $4t50X.info([\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join($k14yv$os.EOL));\n releaseData = $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, true);\n }\n if (!releaseData || !releaseData.foundAsset) throw new Error(`PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`);\n const { foundAsset: foundAsset, resolvedPythonVersion: resolvedPythonVersion, resolvedPyPyVersion: resolvedPyPyVersion } = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n $4t50X.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n try {\n const pypyPath = await $bG0ld.downloadTool(downloadUrl);\n $4t50X.info(\"Extracting downloaded archive...\");\n if (0, $dm0eT.IS_WINDOWS) downloadDir = await $bG0ld.extractZip(pypyPath);\n else downloadDir = await $bG0ld.extractTar(pypyPath, undefined, \"x\");\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = (0, ($parcel$interopDefault($k14yv$fs))).readdirSync(downloadDir)[0];\n const toolDir = $k14yv$path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!(0, $dm0eT.isNightlyKeyword)(resolvedPyPyVersion)) installDir = await $bG0ld.cacheDir(toolDir, \"PyPy\", resolvedPythonVersion, architecture);\n (0, $dm0eT.writeExactPyPyVersionFile)(installDir, resolvedPyPyVersion);\n const binaryPath = $bbc9d655660b9c39$export$a053ce7a690fbb2e(installDir);\n await $bbc9d655660b9c39$var$createPyPySymlink(binaryPath, resolvedPythonVersion);\n await $bbc9d655660b9c39$var$installPip(binaryPath);\n return {\n installDir: installDir,\n resolvedPythonVersion: resolvedPythonVersion,\n resolvedPyPyVersion: resolvedPyPyVersion\n };\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (err instanceof $bG0ld.HTTPError && (err.httpStatusCode === 403 || err.httpStatusCode === 429)) $4t50X.info(`Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`);\n else $4t50X.info(err.message);\n if (err.stack !== undefined) $4t50X.debug(err.stack);\n }\n throw err;\n }\n}\nasync function $bbc9d655660b9c39$export$15e3ff21db62aa77() {\n const url = \"https://downloads.python.org/pypy/versions.json\";\n const http = new $a7JAS.HttpClient(\"tool-cache\");\n const response = await http.getJson(url);\n if (!response.result) throw new Error(`Unable to retrieve the list of available PyPy versions from '${url}'`);\n return response.result;\n}\nasync function $bbc9d655660b9c39$var$createPyPySymlink(pypyBinaryPath, pythonVersion) {\n const version = $bSUdl.coerce(pythonVersion);\n const pythonBinaryPostfix = $bSUdl.major(version);\n const pythonMinor = $bSUdl.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? \"\" : \"3\";\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = (0, $dm0eT.IS_WINDOWS) ? \".exe\" : \"\";\n $4t50X.info(\"Creating symlinks...\");\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true);\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `python${binaryExtension}`, true);\n (0, $dm0eT.createSymlinkInFolder)(pypyBinaryPath, `pypy${pypyBinaryPostfix}${binaryExtension}`, `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`, true);\n}\nasync function $bbc9d655660b9c39$var$installPip(pythonLocation) {\n $4t50X.info(\"Installing and updating pip\");\n const pythonBinary = $k14yv$path.join(pythonLocation, \"python\");\n await $1f6JF.exec(`${pythonBinary} -m ensurepip`);\n await $1f6JF.exec(`${pythonLocation}/python -m pip install --ignore-installed pip`);\n}\nfunction $bbc9d655660b9c39$export$4272161ba9d7d3dd(releases, pythonVersion, pypyVersion, architecture, includePrerelease) {\n const options = {\n includePrerelease: includePrerelease\n };\n const filterReleases = releases.filter((item)=>{\n const isPythonVersionSatisfied = $bSUdl.satisfies($bSUdl.coerce(item.python_version), pythonVersion);\n const isPyPyNightly = (0, $dm0eT.isNightlyKeyword)(pypyVersion) && (0, $dm0eT.isNightlyKeyword)(item.pypy_version);\n const isPyPyVersionSatisfied = isPyPyNightly || $bSUdl.satisfies($bbc9d655660b9c39$export$4e25ef8c836002b9(item.pypy_version), pypyVersion, options);\n const isArchPresent = item.files && ((0, $dm0eT.IS_WINDOWS) ? $bbc9d655660b9c39$export$652444ba12a0c7bb(item, architecture) : $bbc9d655660b9c39$export$f1fafc67685dd0bf(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n if (filterReleases.length === 0) return null;\n const sortedReleases = filterReleases.sort((previous, current)=>{\n return $bSUdl.compare($bSUdl.coerce($bbc9d655660b9c39$export$4e25ef8c836002b9(current.pypy_version)), $bSUdl.coerce($bbc9d655660b9c39$export$4e25ef8c836002b9(previous.pypy_version))) || $bSUdl.compare($bSUdl.coerce(current.python_version), $bSUdl.coerce(previous.python_version));\n });\n const foundRelease = sortedReleases[0];\n const foundAsset = (0, $dm0eT.IS_WINDOWS) ? $bbc9d655660b9c39$export$672a33957a3c888(foundRelease, architecture) : $bbc9d655660b9c39$export$7e0be3a86d27fcd9(foundRelease, architecture, process.platform);\n return {\n foundAsset: foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\nfunction $bbc9d655660b9c39$export$a053ce7a690fbb2e(installDir) {\n const _binDir = $k14yv$path.join(installDir, \"bin\");\n return (0, $dm0eT.IS_WINDOWS) ? installDir : _binDir;\n}\nfunction $bbc9d655660b9c39$export$4e25ef8c836002b9(versionSpec) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, \"$1-$2.$3\");\n}\nfunction $bbc9d655660b9c39$export$652444ba12a0c7bb(item, architecture) {\n architecture = $bbc9d655660b9c39$var$replaceX32toX86(architecture);\n return item.files.some((file)=>(0, $dm0eT.WINDOWS_PLATFORMS).includes(file.platform) && file.arch === architecture);\n}\nfunction $bbc9d655660b9c39$export$f1fafc67685dd0bf(item, architecture, platform) {\n return item.files.some((file)=>file.arch === architecture && file.platform === platform);\n}\nfunction $bbc9d655660b9c39$export$672a33957a3c888(releases, architecture) {\n architecture = $bbc9d655660b9c39$var$replaceX32toX86(architecture);\n return releases.files.find((item)=>(0, $dm0eT.WINDOWS_PLATFORMS).includes(item.platform) && item.arch === architecture);\n}\nfunction $bbc9d655660b9c39$export$7e0be3a86d27fcd9(releases, architecture, platform) {\n return releases.files.find((item)=>item.arch === architecture && item.platform === platform);\n}\nfunction $bbc9d655660b9c39$var$replaceX32toX86(architecture) {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === \"x32\") architecture = \"x86\";\n return architecture;\n}\n\n});\n\n\n\n\n//# sourceMappingURL=actions_python.6be0dfa4.js.map\n","import { useCpythonVersion } from \"setup-python/src/find-python\"\nimport { findPyPyVersion } from \"setup-python/src/find-pypy\"\n\nimport { info, warning } from \"ci-log\"\nimport { debug } from \"@actions/core\"\nimport { join } from \"patha\"\nimport { GITHUB_ACTIONS } from \"ci-info\"\nimport { IS_MAC } from \"setup-python/src/utils\"\nimport { pathExists } from \"path-exists\"\n\nfunction isPyPyVersion(versionSpec: string) {\n return versionSpec.startsWith(\"pypy\")\n}\n\nconst checkLatest = false\n\nexport async function setupActionsPython(version: string, _setupDir: string, arch: string) {\n if (IS_MAC) {\n process.env.AGENT_TOOLSDIRECTORY = \"/Users/runner/hostedtoolcache\"\n }\n\n const agent_toolsdirectory = process.env.AGENT_TOOLSDIRECTORY?.trim()\n if (typeof agent_toolsdirectory === \"string\" && agent_toolsdirectory !== \"\") {\n process.env.RUNNER_TOOL_CACHE = process.env.AGENT_TOOLSDIRECTORY\n }\n\n debug(`Python is expected to be installed into ${process.env.RUNNER_TOOL_CACHE}`)\n\n if (version) {\n let pythonVersion: string\n if (isPyPyVersion(version)) {\n const installed = await findPyPyVersion(version, arch, true, checkLatest, false)\n pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`\n info(`Successfully set up PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`)\n } else {\n const installed = await useCpythonVersion(version, arch, true, checkLatest, false)\n pythonVersion = installed.version\n info(`Successfully set up ${installed.impl} (${pythonVersion})`)\n }\n\n // const cache = false\n // if (cache) {\n // const { cacheDependencies } = await import(\"setup-python/src/cache-dependencies\")\n // await cacheDependencies(\"pip\", pythonVersion)\n // }\n }\n\n if (GITHUB_ACTIONS) {\n await addPythonLoggingMatcher()\n }\n\n return undefined\n}\n\nasync function addPythonLoggingMatcher() {\n const matcherPath = join(__dirname, \"python_matcher.json\")\n if (!(await pathExists(matcherPath))) {\n return warning(\"the python_matcher.json file does not exist in the same folder as setup-cpp.js\")\n }\n info(`::add-matcher::${matcherPath}`)\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport {IS_WINDOWS, IS_LINUX, getOSInfo} from './utils';\n\nimport * as semver from 'semver';\n\nimport * as installer from './install-python';\n\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\n// Python has \"scripts\" or \"bin\" directories where command-line tools that come with packages are installed.\n// This is where pip is, along with anything that pip installs.\n// There is a separate directory for `pip install --user`.\n//\n// For reference, these directories are as follows:\n// macOS / Linux:\n// /bin (by default /usr/local/bin, but not on hosted agents -- see the `else`)\n// (--user) ~/.local/bin\n// Windows:\n// \\Scripts\n// (--user) %APPDATA%\\Python\\PythonXY\\Scripts\n// See https://docs.python.org/3/library/sysconfig.html\n\nfunction binDir(installDir: string): string {\n if (IS_WINDOWS) {\n return path.join(installDir, 'Scripts');\n } else {\n return path.join(installDir, 'bin');\n }\n}\n\nexport async function useCpythonVersion(\n version: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise {\n let manifest: tc.IToolRelease[] | null = null;\n const desugaredVersionSpec = desugarDevVersion(version);\n let semanticVersionSpec = pythonVersionToSemantic(\n desugaredVersionSpec,\n allowPreReleases\n );\n core.debug(`Semantic version spec of ${version} is ${semanticVersionSpec}`);\n\n if (checkLatest) {\n manifest = await installer.getManifest();\n const resolvedVersion = (\n await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n )\n )?.version;\n\n if (resolvedVersion) {\n semanticVersionSpec = resolvedVersion;\n core.info(`Resolved as '${semanticVersionSpec}'`);\n } else {\n core.info(\n `Failed to resolve version ${semanticVersionSpec} from manifest`\n );\n }\n }\n\n let installDir: string | null = tc.find(\n 'Python',\n semanticVersionSpec,\n architecture\n );\n if (!installDir) {\n core.info(\n `Version ${semanticVersionSpec} was not found in the local cache`\n );\n const foundRelease = await installer.findReleaseFromManifest(\n semanticVersionSpec,\n architecture,\n manifest\n );\n\n if (foundRelease && foundRelease.files && foundRelease.files.length > 0) {\n core.info(`Version ${semanticVersionSpec} is available for downloading`);\n await installer.installCpythonFromRelease(foundRelease);\n\n installDir = tc.find('Python', semanticVersionSpec, architecture);\n }\n }\n\n if (!installDir) {\n const osInfo = await getOSInfo();\n throw new Error(\n [\n `The version '${version}' with architecture '${architecture}' was not found for ${\n osInfo\n ? `${osInfo.osName} ${osInfo.osVersion}`\n : 'this operating system'\n }.`,\n `The list of all available versions can be found here: ${installer.MANIFEST_URL}`\n ].join(os.EOL)\n );\n }\n\n const _binDir = binDir(installDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', installDir + '/lib/pkgconfig');\n\n if (IS_LINUX) {\n const libPath = process.env.LD_LIBRARY_PATH\n ? `:${process.env.LD_LIBRARY_PATH}`\n : '';\n const pyLibPath = path.join(installDir, 'lib');\n\n if (!libPath.split(':').includes(pyLibPath)) {\n core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);\n }\n }\n core.addPath(installDir);\n core.addPath(_binDir);\n\n if (IS_WINDOWS) {\n // Add --user directory\n // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python//x64/\n // So if `findLocalTool` succeeded above, we must have a conformant `installDir`\n const version = path.basename(path.dirname(installDir));\n const major = semver.major(version);\n const minor = semver.minor(version);\n\n const userScriptsDir = path.join(\n process.env['APPDATA'] || '',\n 'Python',\n `Python${major}${minor}`,\n 'Scripts'\n );\n core.addPath(userScriptsDir);\n }\n // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.\n }\n\n const installed = versionFromPath(installDir);\n core.setOutput('python-version', installed);\n core.setOutput('python-path', pythonPath);\n\n return {impl: 'CPython', version: installed};\n}\n\n/** Convert versions like `3.8-dev` to a version like `~3.8.0-0`. */\nfunction desugarDevVersion(versionSpec: string) {\n const devVersion = /^(\\d+)\\.(\\d+)-dev$/;\n return versionSpec.replace(devVersion, '~$1.$2.0-0');\n}\n\n/** Extracts python version from install path from hosted tool cache as described in README.md */\nfunction versionFromPath(installDir: string) {\n const parts = installDir.split(path.sep);\n const idx = parts.findIndex(part => part === 'PyPy' || part === 'Python');\n\n return parts[idx + 1] || '';\n}\n\ninterface InstalledVersion {\n impl: string;\n version: string;\n}\n\n/**\n * Python's prelease versions look like `3.7.0b2`.\n * This is the one part of Python versioning that does not look like semantic versioning, which specifies `3.7.0-b2`.\n * If the version spec contains prerelease versions, we need to convert them to the semantic version equivalent.\n *\n * For easier use of the action, we also map 'x.y' to allow pre-release before 'x.y.0' release if allowPreReleases is true\n */\nexport function pythonVersionToSemantic(\n versionSpec: string,\n allowPreReleases: boolean\n) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc)\\d*)/g;\n const majorMinor = /^(\\d+)\\.(\\d+)$/;\n let result = versionSpec.replace(prereleaseVersion, '$1-$2');\n if (allowPreReleases) {\n result = result.replace(majorMinor, '~$1.$2.0-0');\n }\n return result;\n}\n","/* eslint no-unsafe-finally: \"off\" */\nimport * as core from '@actions/core';\nimport fs from 'fs';\nimport * as path from 'path';\nimport * as semver from 'semver';\nimport * as toml from '@iarna/toml';\nimport * as exec from '@actions/exec';\n\nexport const IS_WINDOWS = process.platform === 'win32';\nexport const IS_LINUX = process.platform === 'linux';\nexport const IS_MAC = process.platform === 'darwin';\nexport const WINDOWS_ARCHS = ['x86', 'x64'];\nexport const WINDOWS_PLATFORMS = ['win32', 'win64'];\nconst PYPY_VERSION_FILE = 'PYPY_VERSION';\n\nexport interface IPyPyManifestAsset {\n filename: string;\n arch: string;\n platform: string;\n download_url: string;\n}\n\nexport interface IPyPyManifestRelease {\n pypy_version: string;\n python_version: string;\n stable: boolean;\n latest_pypy: boolean;\n files: IPyPyManifestAsset[];\n}\n\n/** create Symlinks for downloaded PyPy\n * It should be executed only for downloaded versions in runtime, because\n * toolcache versions have this setup.\n */\nexport function createSymlinkInFolder(\n folderPath: string,\n sourceName: string,\n targetName: string,\n setExecutable = false\n) {\n const sourcePath = path.join(folderPath, sourceName);\n const targetPath = path.join(folderPath, targetName);\n if (fs.existsSync(targetPath)) {\n return;\n }\n\n fs.symlinkSync(sourcePath, targetPath);\n if (!IS_WINDOWS && setExecutable) {\n fs.chmodSync(targetPath, '755');\n }\n}\n\nexport function validateVersion(version: string) {\n return isNightlyKeyword(version) || Boolean(semver.validRange(version));\n}\n\nexport function isNightlyKeyword(pypyVersion: string) {\n return pypyVersion === 'nightly';\n}\n\nexport function getPyPyVersionFromPath(installDir: string) {\n return path.basename(path.dirname(installDir));\n}\n\n/**\n * In tool-cache, we put PyPy to '/PyPy//x64'\n * There is no easy way to determine what PyPy version is located in specific folder\n * 'pypy --version' is not reliable enough since it is not set properly for preview versions\n * \"7.3.3rc1\" is marked as '7.3.3' in 'pypy --version'\n * so we put PYPY_VERSION file to PyPy directory when install it to VM and read it when we need to know version\n * PYPY_VERSION contains exact version from 'versions.json'\n */\nexport function readExactPyPyVersionFile(installDir: string) {\n let pypyVersion = '';\n const fileVersion = path.join(installDir, PYPY_VERSION_FILE);\n if (fs.existsSync(fileVersion)) {\n pypyVersion = fs.readFileSync(fileVersion).toString().trim();\n }\n\n return pypyVersion;\n}\n\nexport function writeExactPyPyVersionFile(\n installDir: string,\n resolvedPyPyVersion: string\n) {\n const pypyFilePath = path.join(installDir, PYPY_VERSION_FILE);\n fs.writeFileSync(pypyFilePath, resolvedPyPyVersion);\n}\n\n/**\n * Python version should be specified explicitly like \"x.y\" (2.7, 3.6, 3.7)\n * \"3.x\" or \"3\" are not supported\n * because it could cause ambiguity when both PyPy version and Python version are not precise\n */\nexport function validatePythonVersionFormatForPyPy(version: string) {\n const re = /^\\d+\\.\\d+$/;\n return re.test(version);\n}\n\nexport function logWarning(message: string): void {\n const warningPrefix = '[warning]';\n core.info(`${warningPrefix}${message}`);\n}\n\nasync function getWindowsInfo() {\n const {stdout} = await exec.getExecOutput(\n 'powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"',\n undefined,\n {\n silent: true\n }\n );\n\n const windowsVersion = stdout.trim().split(' ')[3];\n\n return {osName: 'Windows', osVersion: windowsVersion};\n}\n\nasync function getMacOSInfo() {\n const {stdout} = await exec.getExecOutput('sw_vers', ['-productVersion'], {\n silent: true\n });\n\n const macOSVersion = stdout.trim();\n\n return {osName: 'macOS', osVersion: macOSVersion};\n}\n\nexport async function getLinuxInfo() {\n const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n\n const [osName, osVersion] = stdout.trim().split('\\n');\n\n core.debug(`OS Name: ${osName}, Version: ${osVersion}`);\n\n return {osName: osName, osVersion: osVersion};\n}\n\nexport async function getOSInfo() {\n let osInfo;\n try {\n if (IS_WINDOWS) {\n osInfo = await getWindowsInfo();\n } else if (IS_LINUX) {\n osInfo = await getLinuxInfo();\n } else if (IS_MAC) {\n osInfo = await getMacOSInfo();\n }\n } catch (err) {\n const error = err as Error;\n core.debug(error.message);\n } finally {\n return osInfo;\n }\n}\n\n/**\n * Extract a value from an object by following the keys path provided.\n * If the value is present, it is returned. Otherwise undefined is returned.\n */\nfunction extractValue(obj: any, keys: string[]): string | undefined {\n if (keys.length > 0) {\n const value = obj[keys[0]];\n if (keys.length > 1 && value !== undefined) {\n return extractValue(value, keys.slice(1));\n } else {\n return value;\n }\n } else {\n return;\n }\n}\n\n/**\n * Python version extracted from the TOML file.\n * If the `project` key is present at the root level, the version is assumed to\n * be specified according to PEP 621 in `project.requires-python`.\n * Otherwise, if the `tool` key is present at the root level, the version is\n * assumed to be specified using poetry under `tool.poetry.dependencies.python`.\n * If none is present, returns an empty list.\n */\nexport function getVersionInputFromTomlFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n\n const pyprojectFile = fs.readFileSync(versionFile, 'utf8');\n const pyprojectConfig = toml.parse(pyprojectFile);\n let keys = [];\n\n if ('project' in pyprojectConfig) {\n // standard project metadata (PEP 621)\n keys = ['project', 'requires-python'];\n } else {\n // python poetry\n keys = ['tool', 'poetry', 'dependencies', 'python'];\n }\n const versions = [];\n const version = extractValue(pyprojectConfig, keys);\n if (version !== undefined) {\n versions.push(version);\n }\n\n core.info(`Extracted ${versions} from ${versionFile}`);\n const rawVersions = Array.from(versions, version =>\n version.split(',').join(' ')\n );\n const validatedVersions = rawVersions\n .map(item => semver.validRange(item, true))\n .filter((versionRange, index) => {\n if (!versionRange) {\n core.debug(\n `The version ${rawVersions[index]} is not valid SemVer range`\n );\n }\n\n return !!versionRange;\n }) as string[];\n return validatedVersions;\n}\n\n/**\n * Python version extracted from a plain text file.\n */\nexport function getVersionInputFromPlainFile(versionFile: string): string[] {\n core.debug(`Trying to resolve version form ${versionFile}`);\n const version = fs.readFileSync(versionFile, 'utf8');\n core.info(`Resolved ${versionFile} as ${version}`);\n return [version];\n}\n\n/**\n * Python version extracted from a plain or TOML file.\n */\nexport function getVersionInputFromFile(versionFile: string): string[] {\n if (versionFile.endsWith('.toml')) {\n return getVersionInputFromTomlFile(versionFile);\n } else {\n return getVersionInputFromPlainFile(versionFile);\n }\n}\n","'use strict'\nexports.parse = require('./parse.js')\nexports.stringify = require('./stringify.js')\n","'use strict'\nmodule.exports = require('./parse-string.js')\nmodule.exports.async = require('./parse-async.js')\nmodule.exports.stream = require('./parse-stream.js')\nmodule.exports.prettyError = require('./parse-pretty-error.js')\n","'use strict'\nmodule.exports = parseString\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseString (str) {\n if (global.Buffer && global.Buffer.isBuffer(str)) {\n str = str.toString('utf8')\n }\n const parser = new TOMLParser()\n try {\n parser.parse(str)\n return parser.finish()\n } catch (err) {\n throw prettyError(err, str)\n }\n}\n","'use strict'\n/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */\nmodule.exports = makeParserClass(require('./parser.js'))\nmodule.exports.makeParserClass = makeParserClass\n\nclass TomlError extends Error {\n constructor (msg) {\n super(msg)\n this.name = 'TomlError'\n /* istanbul ignore next */\n if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError)\n this.fromTOML = true\n this.wrapped = null\n }\n}\nTomlError.wrap = err => {\n const terr = new TomlError(err.message)\n terr.code = err.code\n terr.wrapped = err\n return terr\n}\nmodule.exports.TomlError = TomlError\n\nconst createDateTime = require('./create-datetime.js')\nconst createDateTimeFloat = require('./create-datetime-float.js')\nconst createDate = require('./create-date.js')\nconst createTime = require('./create-time.js')\n\nconst CTRL_I = 0x09\nconst CTRL_J = 0x0A\nconst CTRL_M = 0x0D\nconst CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL\nconst CHAR_SP = 0x20\nconst CHAR_QUOT = 0x22\nconst CHAR_NUM = 0x23\nconst CHAR_APOS = 0x27\nconst CHAR_PLUS = 0x2B\nconst CHAR_COMMA = 0x2C\nconst CHAR_HYPHEN = 0x2D\nconst CHAR_PERIOD = 0x2E\nconst CHAR_0 = 0x30\nconst CHAR_1 = 0x31\nconst CHAR_7 = 0x37\nconst CHAR_9 = 0x39\nconst CHAR_COLON = 0x3A\nconst CHAR_EQUALS = 0x3D\nconst CHAR_A = 0x41\nconst CHAR_E = 0x45\nconst CHAR_F = 0x46\nconst CHAR_T = 0x54\nconst CHAR_U = 0x55\nconst CHAR_Z = 0x5A\nconst CHAR_LOWBAR = 0x5F\nconst CHAR_a = 0x61\nconst CHAR_b = 0x62\nconst CHAR_e = 0x65\nconst CHAR_f = 0x66\nconst CHAR_i = 0x69\nconst CHAR_l = 0x6C\nconst CHAR_n = 0x6E\nconst CHAR_o = 0x6F\nconst CHAR_r = 0x72\nconst CHAR_s = 0x73\nconst CHAR_t = 0x74\nconst CHAR_u = 0x75\nconst CHAR_x = 0x78\nconst CHAR_z = 0x7A\nconst CHAR_LCUB = 0x7B\nconst CHAR_RCUB = 0x7D\nconst CHAR_LSQB = 0x5B\nconst CHAR_BSOL = 0x5C\nconst CHAR_RSQB = 0x5D\nconst CHAR_DEL = 0x7F\nconst SURROGATE_FIRST = 0xD800\nconst SURROGATE_LAST = 0xDFFF\n\nconst escapes = {\n [CHAR_b]: '\\u0008',\n [CHAR_t]: '\\u0009',\n [CHAR_n]: '\\u000A',\n [CHAR_f]: '\\u000C',\n [CHAR_r]: '\\u000D',\n [CHAR_QUOT]: '\\u0022',\n [CHAR_BSOL]: '\\u005C'\n}\n\nfunction isDigit (cp) {\n return cp >= CHAR_0 && cp <= CHAR_9\n}\nfunction isHexit (cp) {\n return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9)\n}\nfunction isBit (cp) {\n return cp === CHAR_1 || cp === CHAR_0\n}\nfunction isOctit (cp) {\n return (cp >= CHAR_0 && cp <= CHAR_7)\n}\nfunction isAlphaNumQuoteHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_APOS\n || cp === CHAR_QUOT\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nfunction isAlphaNumHyphen (cp) {\n return (cp >= CHAR_A && cp <= CHAR_Z)\n || (cp >= CHAR_a && cp <= CHAR_z)\n || (cp >= CHAR_0 && cp <= CHAR_9)\n || cp === CHAR_LOWBAR\n || cp === CHAR_HYPHEN\n}\nconst _type = Symbol('type')\nconst _declared = Symbol('declared')\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst defineProperty = Object.defineProperty\nconst descriptor = {configurable: true, enumerable: true, writable: true, value: undefined}\n\nfunction hasKey (obj, key) {\n if (hasOwnProperty.call(obj, key)) return true\n if (key === '__proto__') defineProperty(obj, '__proto__', descriptor)\n return false\n}\n\nconst INLINE_TABLE = Symbol('inline-table')\nfunction InlineTable () {\n return Object.defineProperties({}, {\n [_type]: {value: INLINE_TABLE}\n })\n}\nfunction isInlineTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_TABLE\n}\n\nconst TABLE = Symbol('table')\nfunction Table () {\n return Object.defineProperties({}, {\n [_type]: {value: TABLE},\n [_declared]: {value: false, writable: true}\n })\n}\nfunction isTable (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === TABLE\n}\n\nconst _contentType = Symbol('content-type')\nconst INLINE_LIST = Symbol('inline-list')\nfunction InlineList (type) {\n return Object.defineProperties([], {\n [_type]: {value: INLINE_LIST},\n [_contentType]: {value: type}\n })\n}\nfunction isInlineList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INLINE_LIST\n}\n\nconst LIST = Symbol('list')\nfunction List () {\n return Object.defineProperties([], {\n [_type]: {value: LIST}\n })\n}\nfunction isList (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === LIST\n}\n\n// in an eval, to let bundlers not slurp in a util proxy\nlet _custom\ntry {\n const utilInspect = eval(\"require('util').inspect\")\n _custom = utilInspect.custom\n} catch (_) {\n /* eval require not available in transpiled bundle */\n}\n/* istanbul ignore next */\nconst _inspect = _custom || 'inspect'\n\nclass BoxedBigInt {\n constructor (value) {\n try {\n this.value = global.BigInt.asIntN(64, value)\n } catch (_) {\n /* istanbul ignore next */\n this.value = null\n }\n Object.defineProperty(this, _type, {value: INTEGER})\n }\n isNaN () {\n return this.value === null\n }\n /* istanbul ignore next */\n toString () {\n return String(this.value)\n }\n /* istanbul ignore next */\n [_inspect] () {\n return `[BigInt: ${this.toString()}]}`\n }\n valueOf () {\n return this.value\n }\n}\n\nconst INTEGER = Symbol('integer')\nfunction Integer (value) {\n let num = Number(value)\n // -0 is a float thing, not an int thing\n if (Object.is(num, -0)) num = 0\n /* istanbul ignore else */\n if (global.BigInt && !Number.isSafeInteger(num)) {\n return new BoxedBigInt(value)\n } else {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(num), {\n isNaN: {value: function () { return isNaN(this) }},\n [_type]: {value: INTEGER},\n [_inspect]: {value: () => `[Integer: ${value}]`}\n })\n }\n}\nfunction isInteger (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === INTEGER\n}\n\nconst FLOAT = Symbol('float')\nfunction Float (value) {\n /* istanbul ignore next */\n return Object.defineProperties(new Number(value), {\n [_type]: {value: FLOAT},\n [_inspect]: {value: () => `[Float: ${value}]`}\n })\n}\nfunction isFloat (obj) {\n if (obj === null || typeof (obj) !== 'object') return false\n return obj[_type] === FLOAT\n}\n\nfunction tomlType (value) {\n const type = typeof value\n if (type === 'object') {\n /* istanbul ignore if */\n if (value === null) return 'null'\n if (value instanceof Date) return 'datetime'\n /* istanbul ignore else */\n if (_type in value) {\n switch (value[_type]) {\n case INLINE_TABLE: return 'inline-table'\n case INLINE_LIST: return 'inline-list'\n /* istanbul ignore next */\n case TABLE: return 'table'\n /* istanbul ignore next */\n case LIST: return 'list'\n case FLOAT: return 'float'\n case INTEGER: return 'integer'\n }\n }\n }\n return type\n}\n\nfunction makeParserClass (Parser) {\n class TOMLParser extends Parser {\n constructor () {\n super()\n this.ctx = this.obj = Table()\n }\n\n /* MATCH HELPER */\n atEndOfWord () {\n return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine()\n }\n atEndOfLine () {\n return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M\n }\n\n parseStart () {\n if (this.char === Parser.END) {\n return null\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseTableOrList)\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (isAlphaNumQuoteHyphen(this.char)) {\n return this.callNow(this.parseAssignStatement)\n } else {\n throw this.error(new TomlError(`Unknown character \"${this.char}\"`))\n }\n }\n\n // HELPER, this strips any whitespace and comments to the end of the line\n // then RETURNS. Last state in a production.\n parseWhitespaceToEOL () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.goto(this.parseComment)\n } else if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n } else {\n throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line'))\n }\n }\n\n /* ASSIGNMENT: key = value */\n parseAssignStatement () {\n return this.callNow(this.parseAssign, this.recordAssignStatement)\n }\n recordAssignStatement (kv) {\n let target = this.ctx\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n // unbox our numbers\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseWhitespaceToEOL)\n }\n\n /* ASSSIGNMENT expression, key = value possibly inside an inline table */\n parseAssign () {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n recordAssignKeyword (key) {\n if (this.state.resultTable) {\n this.state.resultTable.push(key)\n } else {\n this.state.resultTable = [key]\n }\n return this.goto(this.parseAssignKeywordPreDot)\n }\n parseAssignKeywordPreDot () {\n if (this.char === CHAR_PERIOD) {\n return this.next(this.parseAssignKeywordPostDot)\n } else if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.goto(this.parseAssignEqual)\n }\n }\n parseAssignKeywordPostDot () {\n if (this.char !== CHAR_SP && this.char !== CTRL_I) {\n return this.callNow(this.parseKeyword, this.recordAssignKeyword)\n }\n }\n\n parseAssignEqual () {\n if (this.char === CHAR_EQUALS) {\n return this.next(this.parseAssignPreValue)\n } else {\n throw this.error(new TomlError('Invalid character, expected \"=\"'))\n }\n }\n parseAssignPreValue () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseValue, this.recordAssignValue)\n }\n }\n recordAssignValue (value) {\n return this.returnNow({key: this.state.resultTable, value: value})\n }\n\n /* COMMENTS: #...eol */\n parseComment () {\n do {\n if (this.char === Parser.END || this.char === CTRL_J) {\n return this.return()\n }\n } while (this.nextChar())\n }\n\n /* TABLES AND LISTS, [foo] and [[foo]] */\n parseTableOrList () {\n if (this.char === CHAR_LSQB) {\n this.next(this.parseList)\n } else {\n return this.goto(this.parseTable)\n }\n }\n\n /* TABLE [foo.bar.baz] */\n parseTable () {\n this.ctx = this.obj\n return this.goto(this.parseTableNext)\n }\n parseTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseTableMore)\n }\n }\n parseTableMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n } else {\n this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table()\n this.ctx[_declared] = true\n }\n return this.next(this.parseWhitespaceToEOL)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n return this.next(this.parseTableNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* LIST [[a.b.c]] */\n parseList () {\n this.ctx = this.obj\n return this.goto(this.parseListNext)\n }\n parseListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else {\n return this.callNow(this.parseKeyword, this.parseListMore)\n }\n }\n parseListMore (keyword) {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CHAR_RSQB) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx[keyword] = List()\n }\n if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isList(this.ctx[keyword])) {\n const next = Table()\n this.ctx[keyword].push(next)\n this.ctx = next\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListEnd)\n } else if (this.char === CHAR_PERIOD) {\n if (!hasKey(this.ctx, keyword)) {\n this.ctx = this.ctx[keyword] = Table()\n } else if (isInlineList(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline array\"))\n } else if (isInlineTable(this.ctx[keyword])) {\n throw this.error(new TomlError(\"Can't extend an inline table\"))\n } else if (isList(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]\n } else if (isTable(this.ctx[keyword])) {\n this.ctx = this.ctx[keyword]\n } else {\n throw this.error(new TomlError(\"Can't redefine an existing key\"))\n }\n return this.next(this.parseListNext)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n parseListEnd (keyword) {\n if (this.char === CHAR_RSQB) {\n return this.next(this.parseWhitespaceToEOL)\n } else {\n throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]'))\n }\n }\n\n /* VALUE string, number, boolean, inline list, inline object */\n parseValue () {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key without value'))\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseDoubleString)\n } if (this.char === CHAR_APOS) {\n return this.next(this.parseSingleString)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n return this.goto(this.parseNumberSign)\n } else if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseNumberOrDateTime)\n } else if (this.char === CHAR_t || this.char === CHAR_f) {\n return this.goto(this.parseBoolean)\n } else if (this.char === CHAR_LSQB) {\n return this.call(this.parseInlineList, this.recordValue)\n } else if (this.char === CHAR_LCUB) {\n return this.call(this.parseInlineTable, this.recordValue)\n } else {\n throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table'))\n }\n }\n recordValue (value) {\n return this.returnNow(value)\n }\n\n parseInf () {\n if (this.char === CHAR_n) {\n return this.next(this.parseInf2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n parseInf2 () {\n if (this.char === CHAR_f) {\n if (this.state.buf === '-') {\n return this.return(-Infinity)\n } else {\n return this.return(Infinity)\n }\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"inf\", \"+inf\" or \"-inf\"'))\n }\n }\n\n parseNan () {\n if (this.char === CHAR_a) {\n return this.next(this.parseNan2)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n parseNan2 () {\n if (this.char === CHAR_n) {\n return this.return(NaN)\n } else {\n throw this.error(new TomlError('Unexpected character, expected \"nan\"'))\n }\n }\n\n /* KEYS, barewords or basic, literal, or dotted */\n parseKeyword () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseBasicString)\n } else if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralString)\n } else {\n return this.goto(this.parseBareKey)\n }\n }\n\n /* KEYS: barewords */\n parseBareKey () {\n do {\n if (this.char === Parser.END) {\n throw this.error(new TomlError('Key ended without value'))\n } else if (isAlphaNumHyphen(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 0) {\n throw this.error(new TomlError('Empty bare keys are not allowed'))\n } else {\n return this.returnNow()\n }\n } while (this.nextChar())\n }\n\n /* STRINGS, single quoted (literal) */\n parseSingleString () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiStringMaybe)\n } else {\n return this.goto(this.parseLiteralString)\n }\n }\n parseLiteralString () {\n do {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiStringMaybe () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseLiteralMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseLiteralMultiStringContent)\n } else {\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiStringContent () {\n do {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n parseLiteralMultiEnd () {\n if (this.char === CHAR_APOS) {\n return this.next(this.parseLiteralMultiEnd2)\n } else {\n this.state.buf += \"'\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n parseLiteralMultiEnd2 () {\n if (this.char === CHAR_APOS) {\n return this.return()\n } else {\n this.state.buf += \"''\"\n return this.goto(this.parseLiteralMultiStringContent)\n }\n }\n\n /* STRINGS double quoted */\n parseDoubleString () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiStringMaybe)\n } else {\n return this.goto(this.parseBasicString)\n }\n }\n parseBasicString () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseEscape, this.recordEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.return()\n } else if (this.atEndOfLine()) {\n throw this.error(new TomlError('Unterminated string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n recordEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseBasicString)\n }\n parseMultiStringMaybe () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiString)\n } else {\n return this.returnNow()\n }\n }\n parseMultiString () {\n if (this.char === CTRL_M) {\n return null\n } else if (this.char === CTRL_J) {\n return this.next(this.parseMultiStringContent)\n } else {\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiStringContent () {\n do {\n if (this.char === CHAR_BSOL) {\n return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement)\n } else if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd)\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated multi-line string'))\n } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {\n throw this.errorControlCharInString()\n } else {\n this.consume()\n }\n } while (this.nextChar())\n }\n errorControlCharInString () {\n let displayCode = '\\\\u00'\n if (this.char < 16) {\n displayCode += '0'\n }\n displayCode += this.char.toString(16)\n\n return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))\n }\n recordMultiEscapeReplacement (replacement) {\n this.state.buf += replacement\n return this.goto(this.parseMultiStringContent)\n }\n parseMultiEnd () {\n if (this.char === CHAR_QUOT) {\n return this.next(this.parseMultiEnd2)\n } else {\n this.state.buf += '\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEnd2 () {\n if (this.char === CHAR_QUOT) {\n return this.return()\n } else {\n this.state.buf += '\"\"'\n return this.goto(this.parseMultiStringContent)\n }\n }\n parseMultiEscape () {\n if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else if (this.char === CHAR_SP || this.char === CTRL_I) {\n return this.next(this.parsePreMultiTrim)\n } else {\n return this.goto(this.parseEscape)\n }\n }\n parsePreMultiTrim () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === CTRL_M || this.char === CTRL_J) {\n return this.next(this.parseMultiTrim)\n } else {\n throw this.error(new TomlError(\"Can't escape whitespace\"))\n }\n }\n parseMultiTrim () {\n // explicitly whitespace here, END should follow the same path as chars\n if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) {\n return null\n } else {\n return this.returnNow()\n }\n }\n parseEscape () {\n if (this.char in escapes) {\n return this.return(escapes[this.char])\n } else if (this.char === CHAR_u) {\n return this.call(this.parseSmallUnicode, this.parseUnicodeReturn)\n } else if (this.char === CHAR_U) {\n return this.call(this.parseLargeUnicode, this.parseUnicodeReturn)\n } else {\n throw this.error(new TomlError('Unknown escape character: ' + this.char))\n }\n }\n parseUnicodeReturn (char) {\n try {\n const codePoint = parseInt(char, 16)\n if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) {\n throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved'))\n }\n return this.returnNow(String.fromCodePoint(codePoint))\n } catch (err) {\n throw this.error(TomlError.wrap(err))\n }\n }\n parseSmallUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 4) return this.return()\n }\n }\n parseLargeUnicode () {\n if (!isHexit(this.char)) {\n throw this.error(new TomlError('Invalid character in unicode sequence, expected hex'))\n } else {\n this.consume()\n if (this.state.buf.length >= 8) return this.return()\n }\n }\n\n /* NUMBERS */\n parseNumberSign () {\n this.consume()\n return this.next(this.parseMaybeSignedInfOrNan)\n }\n parseMaybeSignedInfOrNan () {\n if (this.char === CHAR_i) {\n return this.next(this.parseInf)\n } else if (this.char === CHAR_n) {\n return this.next(this.parseNan)\n } else {\n return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart)\n }\n }\n parseNumberIntegerStart () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberIntegerExponentOrDecimal)\n } else {\n return this.goto(this.parseNumberInteger)\n }\n }\n parseNumberIntegerExponentOrDecimal () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseNumberInteger () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseNoUnder () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNoUnderHexOctBinLiteral () {\n if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) {\n throw this.error(new TomlError('Unexpected character, expected digit'))\n } else if (this.atEndOfWord()) {\n throw this.error(new TomlError('Incomplete number'))\n }\n return this.returnNow()\n }\n parseNumberFloat () {\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n parseNumberExponentSign () {\n if (isDigit(this.char)) {\n return this.goto(this.parseNumberExponent)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.call(this.parseNoUnder, this.parseNumberExponent)\n } else {\n throw this.error(new TomlError('Unexpected character, expected -, + or digit'))\n }\n }\n parseNumberExponent () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder)\n } else {\n return this.returnNow(Float(this.state.buf))\n }\n }\n\n /* NUMBERS or DATETIMES */\n parseNumberOrDateTime () {\n if (this.char === CHAR_0) {\n this.consume()\n return this.next(this.parseNumberBaseOrDateTime)\n } else {\n return this.goto(this.parseNumberOrDateTimeOnly)\n }\n }\n parseNumberOrDateTimeOnly () {\n // note, if two zeros are in a row then it MUST be a date\n if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnder, this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length > 4) this.next(this.parseNumberInteger)\n } else if (this.char === CHAR_E || this.char === CHAR_e) {\n this.consume()\n return this.next(this.parseNumberExponentSign)\n } else if (this.char === CHAR_PERIOD) {\n this.consume()\n return this.call(this.parseNoUnder, this.parseNumberFloat)\n } else if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseDateTimeOnly () {\n if (this.state.buf.length < 4) {\n if (isDigit(this.char)) {\n return this.consume()\n } else if (this.char === CHAR_COLON) {\n return this.goto(this.parseOnlyTimeHour)\n } else {\n throw this.error(new TomlError('Expected digit while parsing year part of a date'))\n }\n } else {\n if (this.char === CHAR_HYPHEN) {\n return this.goto(this.parseDateTime)\n } else {\n throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date'))\n }\n }\n }\n parseNumberBaseOrDateTime () {\n if (this.char === CHAR_b) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin)\n } else if (this.char === CHAR_o) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct)\n } else if (this.char === CHAR_x) {\n this.consume()\n return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex)\n } else if (this.char === CHAR_PERIOD) {\n return this.goto(this.parseNumberInteger)\n } else if (isDigit(this.char)) {\n return this.goto(this.parseDateTimeOnly)\n } else {\n return this.returnNow(Integer(this.state.buf))\n }\n }\n parseIntegerHex () {\n if (isHexit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerOct () {\n if (isOctit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n parseIntegerBin () {\n if (isBit(this.char)) {\n this.consume()\n } else if (this.char === CHAR_LOWBAR) {\n return this.call(this.parseNoUnderHexOctBinLiteral)\n } else {\n const result = Integer(this.state.buf)\n /* istanbul ignore if */\n if (result.isNaN()) {\n throw this.error(new TomlError('Invalid number'))\n } else {\n return this.returnNow(result)\n }\n }\n }\n\n /* DATETIME */\n parseDateTime () {\n // we enter here having just consumed the year and about to consume the hyphen\n if (this.state.buf.length < 4) {\n throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateMonth)\n }\n parseDateMonth () {\n if (this.char === CHAR_HYPHEN) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Months less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseDateDay)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseDateDay () {\n if (this.char === CHAR_T || this.char === CHAR_SP) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Days less than 10 must be zero padded to two characters'))\n }\n this.state.result += '-' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseStartTimeHour)\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result + '-' + this.state.buf))\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseStartTimeHour () {\n if (this.atEndOfWord()) {\n return this.returnNow(createDate(this.state.result))\n } else {\n return this.goto(this.parseTimeHour)\n }\n }\n parseTimeHour () {\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result += 'T' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeMin)\n } else if (isDigit(this.char)) {\n this.consume()\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n parseTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseTimeZoneOrFraction)\n }\n } else {\n throw this.error(new TomlError('Incomplete datetime'))\n }\n }\n\n parseOnlyTimeHour () {\n /* istanbul ignore else */\n if (this.char === CHAR_COLON) {\n if (this.state.buf.length < 2) {\n throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters'))\n }\n this.state.result = this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeMin)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeMin () {\n if (this.state.buf.length < 2 && isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) {\n this.state.result += ':' + this.state.buf\n this.state.buf = ''\n return this.next(this.parseOnlyTimeSec)\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeSec () {\n if (isDigit(this.char)) {\n this.consume()\n if (this.state.buf.length === 2) {\n return this.next(this.parseOnlyTimeFractionMaybe)\n }\n } else {\n throw this.error(new TomlError('Incomplete time'))\n }\n }\n parseOnlyTimeFractionMaybe () {\n this.state.result += ':' + this.state.buf\n if (this.char === CHAR_PERIOD) {\n this.state.buf = ''\n this.next(this.parseOnlyTimeFraction)\n } else {\n return this.return(createTime(this.state.result))\n }\n }\n parseOnlyTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.atEndOfWord()) {\n if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds'))\n return this.returnNow(createTime(this.state.result + '.' + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n\n parseTimeZoneOrFraction () {\n if (this.char === CHAR_PERIOD) {\n this.consume()\n this.next(this.parseDateTimeFraction)\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseDateTimeFraction () {\n if (isDigit(this.char)) {\n this.consume()\n } else if (this.state.buf.length === 1) {\n throw this.error(new TomlError('Expected digit in milliseconds'))\n } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) {\n this.consume()\n this.next(this.parseTimeZoneHour)\n } else if (this.char === CHAR_Z) {\n this.consume()\n return this.return(createDateTime(this.state.result + this.state.buf))\n } else if (this.atEndOfWord()) {\n return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z'))\n }\n }\n parseTimeZoneHour () {\n if (isDigit(this.char)) {\n this.consume()\n // FIXME: No more regexps\n if (/\\d\\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n parseTimeZoneSep () {\n if (this.char === CHAR_COLON) {\n this.consume()\n this.next(this.parseTimeZoneMin)\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected colon'))\n }\n }\n parseTimeZoneMin () {\n if (isDigit(this.char)) {\n this.consume()\n if (/\\d\\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf))\n } else {\n throw this.error(new TomlError('Unexpected character in datetime, expected digit'))\n }\n }\n\n /* BOOLEAN */\n parseBoolean () {\n /* istanbul ignore else */\n if (this.char === CHAR_t) {\n this.consume()\n return this.next(this.parseTrue_r)\n } else if (this.char === CHAR_f) {\n this.consume()\n return this.next(this.parseFalse_a)\n }\n }\n parseTrue_r () {\n if (this.char === CHAR_r) {\n this.consume()\n return this.next(this.parseTrue_u)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_u () {\n if (this.char === CHAR_u) {\n this.consume()\n return this.next(this.parseTrue_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n parseTrue_e () {\n if (this.char === CHAR_e) {\n return this.return(true)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_a () {\n if (this.char === CHAR_a) {\n this.consume()\n return this.next(this.parseFalse_l)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_l () {\n if (this.char === CHAR_l) {\n this.consume()\n return this.next(this.parseFalse_s)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_s () {\n if (this.char === CHAR_s) {\n this.consume()\n return this.next(this.parseFalse_e)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n parseFalse_e () {\n if (this.char === CHAR_e) {\n return this.return(false)\n } else {\n throw this.error(new TomlError('Invalid boolean, expected true or false'))\n }\n }\n\n /* INLINE LISTS */\n parseInlineList () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === Parser.END) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_RSQB) {\n return this.return(this.state.resultArr || InlineList())\n } else {\n return this.callNow(this.parseValue, this.recordInlineListValue)\n }\n }\n recordInlineListValue (value) {\n if (this.state.resultArr) {\n const listType = this.state.resultArr[_contentType]\n const valueType = tomlType(value)\n if (listType !== valueType) {\n throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))\n }\n } else {\n this.state.resultArr = InlineList(tomlType(value))\n }\n if (isFloat(value) || isInteger(value)) {\n // unbox now that we've verified they're ok\n this.state.resultArr.push(value.valueOf())\n } else {\n this.state.resultArr.push(value)\n }\n return this.goto(this.parseInlineListNext)\n }\n parseInlineListNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) {\n return null\n } else if (this.char === CHAR_NUM) {\n return this.call(this.parseComment)\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineList)\n } else if (this.char === CHAR_RSQB) {\n return this.goto(this.parseInlineList)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n\n /* INLINE TABLE */\n parseInlineTable () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_RCUB) {\n return this.return(this.state.resultTable || InlineTable())\n } else {\n if (!this.state.resultTable) this.state.resultTable = InlineTable()\n return this.callNow(this.parseAssign, this.recordInlineTableValue)\n }\n }\n recordInlineTableValue (kv) {\n let target = this.state.resultTable\n let finalKey = kv.key.pop()\n for (let kw of kv.key) {\n if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n target = target[kw] = target[kw] || Table()\n }\n if (hasKey(target, finalKey)) {\n throw this.error(new TomlError(\"Can't redefine existing key\"))\n }\n if (isInteger(kv.value) || isFloat(kv.value)) {\n target[finalKey] = kv.value.valueOf()\n } else {\n target[finalKey] = kv.value\n }\n return this.goto(this.parseInlineTableNext)\n }\n parseInlineTableNext () {\n if (this.char === CHAR_SP || this.char === CTRL_I) {\n return null\n } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {\n throw this.error(new TomlError('Unterminated inline array'))\n } else if (this.char === CHAR_COMMA) {\n return this.next(this.parseInlineTable)\n } else if (this.char === CHAR_RCUB) {\n return this.goto(this.parseInlineTable)\n } else {\n throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))\n }\n }\n }\n return TOMLParser\n}\n","'use strict'\nconst ParserEND = 0x110000\nclass ParserError extends Error {\n /* istanbul ignore next */\n constructor (msg, filename, linenumber) {\n super('[ParserError] ' + msg, filename, linenumber)\n this.name = 'ParserError'\n this.code = 'ParserError'\n if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError)\n }\n}\nclass State {\n constructor (parser) {\n this.parser = parser\n this.buf = ''\n this.returned = null\n this.result = null\n this.resultTable = null\n this.resultArr = null\n }\n}\nclass Parser {\n constructor () {\n this.pos = 0\n this.col = 0\n this.line = 0\n this.obj = {}\n this.ctx = this.obj\n this.stack = []\n this._buf = ''\n this.char = null\n this.ii = 0\n this.state = new State(this.parseStart)\n }\n\n parse (str) {\n /* istanbul ignore next */\n if (str.length === 0 || str.length == null) return\n\n this._buf = String(str)\n this.ii = -1\n this.char = -1\n let getNext\n while (getNext === false || this.nextChar()) {\n getNext = this.runOne()\n }\n this._buf = null\n }\n nextChar () {\n if (this.char === 0x0A) {\n ++this.line\n this.col = -1\n }\n ++this.ii\n this.char = this._buf.codePointAt(this.ii)\n ++this.pos\n ++this.col\n return this.haveBuffer()\n }\n haveBuffer () {\n return this.ii < this._buf.length\n }\n runOne () {\n return this.state.parser.call(this, this.state.returned)\n }\n finish () {\n this.char = ParserEND\n let last\n do {\n last = this.state.parser\n this.runOne()\n } while (this.state.parser !== last)\n\n this.ctx = null\n this.state = null\n this._buf = null\n\n return this.obj\n }\n next (fn) {\n /* istanbul ignore next */\n if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn))\n this.state.parser = fn\n }\n goto (fn) {\n this.next(fn)\n return this.runOne()\n }\n call (fn, returnWith) {\n if (returnWith) this.next(returnWith)\n this.stack.push(this.state)\n this.state = new State(fn)\n }\n callNow (fn, returnWith) {\n this.call(fn, returnWith)\n return this.runOne()\n }\n return (value) {\n /* istanbul ignore next */\n if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow'))\n if (value === undefined) value = this.state.buf\n this.state = this.stack.pop()\n this.state.returned = value\n }\n returnNow (value) {\n this.return(value)\n return this.runOne()\n }\n consume () {\n /* istanbul ignore next */\n if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer'))\n this.state.buf += this._buf[this.ii]\n }\n error (err) {\n err.line = this.line\n err.col = this.col\n err.pos = this.pos\n return err\n }\n /* istanbul ignore next */\n parseStart () {\n throw new ParserError('Must declare a parseStart method')\n }\n}\nParser.END = ParserEND\nParser.Error = ParserError\nmodule.exports = Parser\n","'use strict'\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass FloatingDateTime extends Date {\n constructor (value) {\n super(value + 'Z')\n this.isFloating = true\n }\n toISOString () {\n const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n return `${date}T${time}`\n }\n}\n\nmodule.exports = value => {\n const date = new FloatingDateTime(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = (d, num) => {\n num = String(num)\n while (num.length < d) num = '0' + num\n return num\n}\n","'use strict'\nconst f = require('./format-num.js')\nconst DateTime = global.Date\n\nclass Date extends DateTime {\n constructor (value) {\n super(value)\n this.isDate = true\n }\n toISOString () {\n return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Date(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nconst f = require('./format-num.js')\n\nclass Time extends Date {\n constructor (value) {\n super(`0000-01-01T${value}Z`)\n this.isTime = true\n }\n toISOString () {\n return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`\n }\n}\n\nmodule.exports = value => {\n const date = new Time(value)\n /* istanbul ignore if */\n if (isNaN(date)) {\n throw new TypeError('Invalid Datetime')\n } else {\n return date\n }\n}\n","'use strict'\nmodule.exports = prettyError\n\nfunction prettyError (err, buf) {\n /* istanbul ignore if */\n if (err.pos == null || err.line == null) return err\n let msg = err.message\n msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\\n`\n\n /* istanbul ignore else */\n if (buf && buf.split) {\n const lines = buf.split(/\\n/)\n const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length\n let linePadding = ' '\n while (linePadding.length < lineNumWidth) linePadding += ' '\n for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) {\n let lineNum = String(ii + 1)\n if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum\n if (err.line === ii) {\n msg += lineNum + '> ' + lines[ii] + '\\n'\n msg += linePadding + ' '\n for (let hh = 0; hh < err.col; ++hh) {\n msg += ' '\n }\n msg += '^\\n'\n } else {\n msg += lineNum + ': ' + lines[ii] + '\\n'\n }\n }\n }\n err.message = msg + '\\n'\n return err\n}\n","'use strict'\nmodule.exports = parseAsync\n\nconst TOMLParser = require('./lib/toml-parser.js')\nconst prettyError = require('./parse-pretty-error.js')\n\nfunction parseAsync (str, opts) {\n if (!opts) opts = {}\n const index = 0\n const blocksize = opts.blocksize || 40960\n const parser = new TOMLParser()\n return new Promise((resolve, reject) => {\n setImmediate(parseAsyncNext, index, blocksize, resolve, reject)\n })\n function parseAsyncNext (index, blocksize, resolve, reject) {\n if (index >= str.length) {\n try {\n return resolve(parser.finish())\n } catch (err) {\n return reject(prettyError(err, str))\n }\n }\n try {\n parser.parse(str.slice(index, index + blocksize))\n setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject)\n } catch (err) {\n reject(prettyError(err, str))\n }\n }\n}\n","'use strict'\nmodule.exports = parseStream\n\nconst stream = require('stream')\nconst TOMLParser = require('./lib/toml-parser.js')\n\nfunction parseStream (stm) {\n if (stm) {\n return parseReadable(stm)\n } else {\n return parseTransform(stm)\n }\n}\n\nfunction parseReadable (stm) {\n const parser = new TOMLParser()\n stm.setEncoding('utf8')\n return new Promise((resolve, reject) => {\n let readable\n let ended = false\n let errored = false\n function finish () {\n ended = true\n if (readable) return\n try {\n resolve(parser.finish())\n } catch (err) {\n reject(err)\n }\n }\n function error (err) {\n errored = true\n reject(err)\n }\n stm.once('end', finish)\n stm.once('error', error)\n readNext()\n\n function readNext () {\n readable = true\n let data\n while ((data = stm.read()) !== null) {\n try {\n parser.parse(data)\n } catch (err) {\n return error(err)\n }\n }\n readable = false\n /* istanbul ignore if */\n if (ended) return finish()\n /* istanbul ignore if */\n if (errored) return\n stm.once('readable', readNext)\n }\n })\n}\n\nfunction parseTransform () {\n const parser = new TOMLParser()\n return new stream.Transform({\n objectMode: true,\n transform (chunk, encoding, cb) {\n try {\n parser.parse(chunk.toString(encoding))\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n },\n flush (cb) {\n try {\n this.push(parser.finish())\n } catch (err) {\n this.emit('error', err)\n }\n cb()\n }\n })\n}\n","'use strict'\nmodule.exports = stringify\nmodule.exports.value = stringifyInline\n\nfunction stringify (obj) {\n if (obj === null) throw typeError('null')\n if (obj === void (0)) throw typeError('undefined')\n if (typeof obj !== 'object') throw typeError(typeof obj)\n\n if (typeof obj.toJSON === 'function') obj = obj.toJSON()\n if (obj == null) return null\n const type = tomlType(obj)\n if (type !== 'table') throw typeError(type)\n return stringifyObject('', '', obj)\n}\n\nfunction typeError (type) {\n return new Error('Can only stringify objects, not ' + type)\n}\n\nfunction arrayOneTypeError () {\n return new Error(\"Array values can't have mixed types\")\n}\n\nfunction getInlineKeys (obj) {\n return Object.keys(obj).filter(key => isInline(obj[key]))\n}\nfunction getComplexKeys (obj) {\n return Object.keys(obj).filter(key => !isInline(obj[key]))\n}\n\nfunction toJSON (obj) {\n let nobj = Array.isArray(obj) ? [] : Object.prototype.hasOwnProperty.call(obj, '__proto__') ? {['__proto__']: undefined} : {}\n for (let prop of Object.keys(obj)) {\n if (obj[prop] && typeof obj[prop].toJSON === 'function' && !('toISOString' in obj[prop])) {\n nobj[prop] = obj[prop].toJSON()\n } else {\n nobj[prop] = obj[prop]\n }\n }\n return nobj\n}\n\nfunction stringifyObject (prefix, indent, obj) {\n obj = toJSON(obj)\n var inlineKeys\n var complexKeys\n inlineKeys = getInlineKeys(obj)\n complexKeys = getComplexKeys(obj)\n var result = []\n var inlineIndent = indent || ''\n inlineKeys.forEach(key => {\n var type = tomlType(obj[key])\n if (type !== 'undefined' && type !== 'null') {\n result.push(inlineIndent + stringifyKey(key) + ' = ' + stringifyAnyInline(obj[key], true))\n }\n })\n if (result.length > 0) result.push('')\n var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''\n complexKeys.forEach(key => {\n result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))\n })\n return result.join('\\n')\n}\n\nfunction isInline (value) {\n switch (tomlType(value)) {\n case 'undefined':\n case 'null':\n case 'integer':\n case 'nan':\n case 'float':\n case 'boolean':\n case 'string':\n case 'datetime':\n return true\n case 'array':\n return value.length === 0 || tomlType(value[0]) !== 'table'\n case 'table':\n return Object.keys(value).length === 0\n /* istanbul ignore next */\n default:\n return false\n }\n}\n\nfunction tomlType (value) {\n if (value === undefined) {\n return 'undefined'\n } else if (value === null) {\n return 'null'\n /* eslint-disable valid-typeof */\n } else if (typeof value === 'bigint' || (Number.isInteger(value) && !Object.is(value, -0))) {\n return 'integer'\n } else if (typeof value === 'number') {\n return 'float'\n } else if (typeof value === 'boolean') {\n return 'boolean'\n } else if (typeof value === 'string') {\n return 'string'\n } else if ('toISOString' in value) {\n return isNaN(value) ? 'undefined' : 'datetime'\n } else if (Array.isArray(value)) {\n return 'array'\n } else {\n return 'table'\n }\n}\n\nfunction stringifyKey (key) {\n var keyStr = String(key)\n if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {\n return keyStr\n } else {\n return stringifyBasicString(keyStr)\n }\n}\n\nfunction stringifyBasicString (str) {\n return '\"' + escapeString(str).replace(/\"/g, '\\\\\"') + '\"'\n}\n\nfunction stringifyLiteralString (str) {\n return \"'\" + str + \"'\"\n}\n\nfunction numpad (num, str) {\n while (str.length < num) str = '0' + str\n return str\n}\n\nfunction escapeString (str) {\n return str.replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n /* eslint-disable no-control-regex */\n .replace(/([\\u0000-\\u001f\\u007f])/, c => '\\\\u' + numpad(4, c.codePointAt(0).toString(16)))\n /* eslint-enable no-control-regex */\n}\n\nfunction stringifyMultilineString (str) {\n let escaped = str.split(/\\n/).map(str => {\n return escapeString(str).replace(/\"(?=\"\")/g, '\\\\\"')\n }).join('\\n')\n if (escaped.slice(-1) === '\"') escaped += '\\\\\\n'\n return '\"\"\"\\n' + escaped + '\"\"\"'\n}\n\nfunction stringifyAnyInline (value, multilineOk) {\n let type = tomlType(value)\n if (type === 'string') {\n if (multilineOk && /\\n/.test(value)) {\n type = 'string-multiline'\n } else if (!/[\\b\\t\\n\\f\\r']/.test(value) && /\"/.test(value)) {\n type = 'string-literal'\n }\n }\n return stringifyInline(value, type)\n}\n\nfunction stringifyInline (value, type) {\n /* istanbul ignore if */\n if (!type) type = tomlType(value)\n switch (type) {\n case 'string-multiline':\n return stringifyMultilineString(value)\n case 'string':\n return stringifyBasicString(value)\n case 'string-literal':\n return stringifyLiteralString(value)\n case 'integer':\n return stringifyInteger(value)\n case 'float':\n return stringifyFloat(value)\n case 'boolean':\n return stringifyBoolean(value)\n case 'datetime':\n return stringifyDatetime(value)\n case 'array':\n return stringifyInlineArray(value.filter(_ => tomlType(_) !== 'null' && tomlType(_) !== 'undefined' && tomlType(_) !== 'nan'))\n case 'table':\n return stringifyInlineTable(value)\n /* istanbul ignore next */\n default:\n throw typeError(type)\n }\n}\n\nfunction stringifyInteger (value) {\n /* eslint-disable security/detect-unsafe-regex */\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_')\n}\n\nfunction stringifyFloat (value) {\n if (value === Infinity) {\n return 'inf'\n } else if (value === -Infinity) {\n return '-inf'\n } else if (Object.is(value, NaN)) {\n return 'nan'\n } else if (Object.is(value, -0)) {\n return '-0.0'\n }\n var chunks = String(value).split('.')\n var int = chunks[0]\n var dec = chunks[1] || 0\n return stringifyInteger(int) + '.' + dec\n}\n\nfunction stringifyBoolean (value) {\n return String(value)\n}\n\nfunction stringifyDatetime (value) {\n return value.toISOString()\n}\n\nfunction isNumber (type) {\n return type === 'float' || type === 'integer'\n}\nfunction arrayType (values) {\n var contentType = tomlType(values[0])\n if (values.every(_ => tomlType(_) === contentType)) return contentType\n // mixed integer/float, emit as floats\n if (values.every(_ => isNumber(tomlType(_)))) return 'float'\n return 'mixed'\n}\nfunction validateArray (values) {\n const type = arrayType(values)\n if (type === 'mixed') {\n throw arrayOneTypeError()\n }\n return type\n}\n\nfunction stringifyInlineArray (values) {\n values = toJSON(values)\n const type = validateArray(values)\n var result = '['\n var stringified = values.map(_ => stringifyInline(_, type))\n if (stringified.join(', ').length > 60 || /\\n/.test(stringified)) {\n result += '\\n ' + stringified.join(',\\n ') + '\\n'\n } else {\n result += ' ' + stringified.join(', ') + (stringified.length > 0 ? ' ' : '')\n }\n return result + ']'\n}\n\nfunction stringifyInlineTable (value) {\n value = toJSON(value)\n var result = []\n Object.keys(value).forEach(key => {\n result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))\n })\n return '{ ' + result.join(', ') + (result.length > 0 ? ' ' : '') + '}'\n}\n\nfunction stringifyComplex (prefix, indent, key, value) {\n var valueType = tomlType(value)\n /* istanbul ignore else */\n if (valueType === 'array') {\n return stringifyArrayOfTables(prefix, indent, key, value)\n } else if (valueType === 'table') {\n return stringifyComplexTable(prefix, indent, key, value)\n } else {\n throw typeError(valueType)\n }\n}\n\nfunction stringifyArrayOfTables (prefix, indent, key, values) {\n values = toJSON(values)\n validateArray(values)\n var firstValueType = tomlType(values[0])\n /* istanbul ignore if */\n if (firstValueType !== 'table') throw typeError(firstValueType)\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n values.forEach(table => {\n if (result.length > 0) result += '\\n'\n result += indent + '[[' + fullKey + ']]\\n'\n result += stringifyObject(fullKey + '.', indent, table)\n })\n return result\n}\n\nfunction stringifyComplexTable (prefix, indent, key, value) {\n var fullKey = prefix + stringifyKey(key)\n var result = ''\n if (getInlineKeys(value).length > 0) {\n result += indent + '[' + fullKey + ']\\n'\n }\n return result + stringifyObject(fullKey + '.', indent, value)\n}\n","import * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as exec from '@actions/exec';\nimport {ExecOptions} from '@actions/exec/lib/interfaces';\nimport {IS_WINDOWS, IS_LINUX} from './utils';\n\nconst TOKEN = core.getInput('token');\nconst AUTH = !TOKEN ? undefined : `token ${TOKEN}`;\nconst MANIFEST_REPO_OWNER = 'actions';\nconst MANIFEST_REPO_NAME = 'python-versions';\nconst MANIFEST_REPO_BRANCH = 'main';\nexport const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;\n\nexport async function findReleaseFromManifest(\n semanticVersionSpec: string,\n architecture: string,\n manifest: tc.IToolRelease[] | null\n): Promise {\n if (!manifest) {\n manifest = await getManifest();\n }\n\n const foundRelease = await tc.findFromManifest(\n semanticVersionSpec,\n false,\n manifest,\n architecture\n );\n\n return foundRelease;\n}\n\nexport function getManifest(): Promise {\n core.debug(\n `Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`\n );\n return tc.getManifestFromRepo(\n MANIFEST_REPO_OWNER,\n MANIFEST_REPO_NAME,\n AUTH,\n MANIFEST_REPO_BRANCH\n );\n}\n\nasync function installPython(workingDirectory: string) {\n const options: ExecOptions = {\n cwd: workingDirectory,\n env: {\n ...process.env,\n ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')})\n },\n silent: true,\n listeners: {\n stdout: (data: Buffer) => {\n core.info(data.toString().trim());\n },\n stderr: (data: Buffer) => {\n core.error(data.toString().trim());\n }\n }\n };\n\n if (IS_WINDOWS) {\n await exec.exec('powershell', ['./setup.ps1'], options);\n } else {\n await exec.exec('bash', ['./setup.sh'], options);\n }\n}\n\nexport async function installCpythonFromRelease(release: tc.IToolRelease) {\n const downloadUrl = release.files[0].download_url;\n\n core.info(`Download from \"${downloadUrl}\"`);\n let pythonPath = '';\n try {\n pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);\n core.info('Extract downloaded archive');\n let pythonExtractedFolder;\n if (IS_WINDOWS) {\n pythonExtractedFolder = await tc.extractZip(pythonPath);\n } else {\n pythonExtractedFolder = await tc.extractTar(pythonPath);\n }\n\n core.info('Execute installation script');\n await installPython(pythonExtractedFolder);\n } catch (err) {\n if (err instanceof tc.HTTPError) {\n // Rate limit?\n if (err.httpStatusCode === 403 || err.httpStatusCode === 429) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n",null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,"import * as path from 'path';\nimport * as pypyInstall from './install-pypy';\nimport {\n IS_WINDOWS,\n WINDOWS_ARCHS,\n validateVersion,\n getPyPyVersionFromPath,\n readExactPyPyVersionFile,\n validatePythonVersionFormatForPyPy,\n IPyPyManifestRelease\n} from './utils';\n\nimport * as semver from 'semver';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\n\ninterface IPyPyVersionSpec {\n pypyVersion: string;\n pythonVersion: string;\n}\n\nexport async function findPyPyVersion(\n versionSpec: string,\n architecture: string,\n updateEnvironment: boolean,\n checkLatest: boolean,\n allowPreReleases: boolean\n): Promise<{resolvedPyPyVersion: string; resolvedPythonVersion: string}> {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null;\n let releases: IPyPyManifestRelease[] | undefined;\n\n const pypyVersionSpec = parsePyPyVersion(versionSpec);\n\n if (checkLatest) {\n releases = await pypyInstall.getAvailablePyPyVersions();\n if (releases && releases.length > 0) {\n const releaseData = pypyInstall.findRelease(\n releases,\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture,\n false\n );\n\n if (releaseData) {\n core.info(\n `Resolved as PyPy ${releaseData.resolvedPyPyVersion} with Python (${releaseData.resolvedPythonVersion})`\n );\n pypyVersionSpec.pythonVersion = releaseData.resolvedPythonVersion;\n pypyVersionSpec.pypyVersion = releaseData.resolvedPyPyVersion;\n } else {\n core.info(\n `Failed to resolve PyPy ${pypyVersionSpec.pypyVersion} with Python (${pypyVersionSpec.pythonVersion}) from manifest`\n );\n }\n }\n }\n\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} = findPyPyToolCache(\n pypyVersionSpec.pythonVersion,\n pypyVersionSpec.pypyVersion,\n architecture\n ));\n\n if (!installDir) {\n ({installDir, resolvedPythonVersion, resolvedPyPyVersion} =\n await pypyInstall.installPyPy(\n pypyVersionSpec.pypyVersion,\n pypyVersionSpec.pythonVersion,\n architecture,\n allowPreReleases,\n releases\n ));\n }\n\n const pipDir = IS_WINDOWS ? 'Scripts' : 'bin';\n const _binDir = path.join(installDir, pipDir);\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n const pythonPath = path.join(\n IS_WINDOWS ? installDir : _binDir,\n `python${binaryExtension}`\n );\n const pythonLocation = pypyInstall.getPyPyBinaryPath(installDir);\n if (updateEnvironment) {\n core.exportVariable('pythonLocation', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython.html#module:FindPython\n core.exportVariable('Python_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython2.html#module:FindPython2\n core.exportVariable('Python2_ROOT_DIR', installDir);\n // https://cmake.org/cmake/help/latest/module/FindPython3.html#module:FindPython3\n core.exportVariable('Python3_ROOT_DIR', installDir);\n core.exportVariable('PKG_CONFIG_PATH', pythonLocation + '/lib/pkgconfig');\n core.addPath(pythonLocation);\n core.addPath(_binDir);\n }\n core.setOutput('python-version', 'pypy' + resolvedPyPyVersion);\n core.setOutput('python-path', pythonPath);\n\n return {resolvedPyPyVersion, resolvedPythonVersion};\n}\n\nexport function findPyPyToolCache(\n pythonVersion: string,\n pypyVersion: string,\n architecture: string\n) {\n let resolvedPyPyVersion = '';\n let resolvedPythonVersion = '';\n let installDir: string | null = IS_WINDOWS\n ? findPyPyInstallDirForWindows(pythonVersion)\n : tc.find('PyPy', pythonVersion, architecture);\n\n if (installDir) {\n // 'tc.find' finds tool based on Python version but we also need to check\n // whether PyPy version satisfies requested version.\n resolvedPythonVersion = getPyPyVersionFromPath(installDir);\n resolvedPyPyVersion = readExactPyPyVersionFile(installDir);\n\n const isPyPyVersionSatisfies = semver.satisfies(\n resolvedPyPyVersion,\n pypyVersion\n );\n if (!isPyPyVersionSatisfies) {\n installDir = null;\n resolvedPyPyVersion = '';\n resolvedPythonVersion = '';\n }\n }\n\n if (!installDir) {\n core.info(\n `PyPy version ${pythonVersion} (${pypyVersion}) was not found in the local cache`\n );\n }\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n}\n\nexport function parsePyPyVersion(versionSpec: string): IPyPyVersionSpec {\n const versions = versionSpec.split('-').filter(item => !!item);\n\n if (/^(pypy)(.+)/.test(versions[0])) {\n const pythonVersion = versions[0].replace('pypy', '');\n versions.splice(0, 1, 'pypy', pythonVersion);\n }\n\n if (versions.length < 2 || versions[0] != 'pypy') {\n throw new Error(\n \"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy' or 'pypy-'. See README for examples and documentation.\"\n );\n }\n\n const pythonVersion = versions[1];\n let pypyVersion: string;\n if (versions.length > 2) {\n pypyVersion = pypyInstall.pypyVersionToSemantic(versions[2]);\n } else {\n pypyVersion = 'x';\n }\n\n if (!validateVersion(pythonVersion) || !validateVersion(pypyVersion)) {\n throw new Error(\n \"Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.\"\n );\n }\n\n if (!validatePythonVersionFormatForPyPy(pythonVersion)) {\n throw new Error(\n \"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.\"\n );\n }\n\n return {\n pypyVersion: pypyVersion,\n pythonVersion: pythonVersion\n };\n}\n\nexport function findPyPyInstallDirForWindows(pythonVersion: string): string {\n let installDir = '';\n\n WINDOWS_ARCHS.forEach(\n architecture =>\n (installDir = installDir || tc.find('PyPy', pythonVersion, architecture))\n );\n\n return installDir;\n}\n","import * as os from 'os';\nimport * as path from 'path';\nimport * as core from '@actions/core';\nimport * as tc from '@actions/tool-cache';\nimport * as semver from 'semver';\nimport * as httpm from '@actions/http-client';\nimport * as exec from '@actions/exec';\nimport fs from 'fs';\n\nimport {\n IS_WINDOWS,\n WINDOWS_PLATFORMS,\n IPyPyManifestRelease,\n createSymlinkInFolder,\n isNightlyKeyword,\n writeExactPyPyVersionFile\n} from './utils';\n\nexport async function installPyPy(\n pypyVersion: string,\n pythonVersion: string,\n architecture: string,\n allowPreReleases: boolean,\n releases: IPyPyManifestRelease[] | undefined\n) {\n let downloadDir;\n\n releases = releases ?? (await getAvailablePyPyVersions());\n\n if (!releases || releases.length === 0) {\n throw new Error('No release was found in PyPy version.json');\n }\n\n let releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n false\n );\n\n if (allowPreReleases && (!releaseData || !releaseData.foundAsset)) {\n // check for pre-release\n core.info(\n [\n `Stable PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`,\n `Trying pre-release versions`\n ].join(os.EOL)\n );\n releaseData = findRelease(\n releases,\n pythonVersion,\n pypyVersion,\n architecture,\n true\n );\n }\n\n if (!releaseData || !releaseData.foundAsset) {\n throw new Error(\n `PyPy version ${pythonVersion} (${pypyVersion}) with arch ${architecture} not found`\n );\n }\n\n const {foundAsset, resolvedPythonVersion, resolvedPyPyVersion} = releaseData;\n const downloadUrl = `${foundAsset.download_url}`;\n\n core.info(`Downloading PyPy from \"${downloadUrl}\" ...`);\n\n try {\n const pypyPath = await tc.downloadTool(downloadUrl);\n\n core.info('Extracting downloaded archive...');\n if (IS_WINDOWS) {\n downloadDir = await tc.extractZip(pypyPath);\n } else {\n downloadDir = await tc.extractTar(pypyPath, undefined, 'x');\n }\n\n // root folder in archive can have unpredictable name so just take the first folder\n // downloadDir is unique folder under TEMP and can't contain any other folders\n const archiveName = fs.readdirSync(downloadDir)[0];\n\n const toolDir = path.join(downloadDir, archiveName);\n let installDir = toolDir;\n if (!isNightlyKeyword(resolvedPyPyVersion)) {\n installDir = await tc.cacheDir(\n toolDir,\n 'PyPy',\n resolvedPythonVersion,\n architecture\n );\n }\n\n writeExactPyPyVersionFile(installDir, resolvedPyPyVersion);\n\n const binaryPath = getPyPyBinaryPath(installDir);\n await createPyPySymlink(binaryPath, resolvedPythonVersion);\n await installPip(binaryPath);\n\n return {installDir, resolvedPythonVersion, resolvedPyPyVersion};\n } catch (err) {\n if (err instanceof Error) {\n // Rate limit?\n if (\n err instanceof tc.HTTPError &&\n (err.httpStatusCode === 403 || err.httpStatusCode === 429)\n ) {\n core.info(\n `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded`\n );\n } else {\n core.info(err.message);\n }\n if (err.stack !== undefined) {\n core.debug(err.stack);\n }\n }\n throw err;\n }\n}\n\nexport async function getAvailablePyPyVersions() {\n const url = 'https://downloads.python.org/pypy/versions.json';\n const http: httpm.HttpClient = new httpm.HttpClient('tool-cache');\n\n const response = await http.getJson(url);\n if (!response.result) {\n throw new Error(\n `Unable to retrieve the list of available PyPy versions from '${url}'`\n );\n }\n\n return response.result;\n}\n\nasync function createPyPySymlink(\n pypyBinaryPath: string,\n pythonVersion: string\n) {\n const version = semver.coerce(pythonVersion)!;\n const pythonBinaryPostfix = semver.major(version);\n const pythonMinor = semver.minor(version);\n const pypyBinaryPostfix = pythonBinaryPostfix === 2 ? '' : '3';\n const pypyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`;\n const binaryExtension = IS_WINDOWS ? '.exe' : '';\n\n core.info('Creating symlinks...');\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${pythonBinaryPostfix}${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `python${binaryExtension}`,\n true\n );\n\n createSymlinkInFolder(\n pypyBinaryPath,\n `pypy${pypyBinaryPostfix}${binaryExtension}`,\n `pypy${pypyMajorMinorBinaryPostfix}${binaryExtension}`,\n true\n );\n}\n\nasync function installPip(pythonLocation: string) {\n core.info('Installing and updating pip');\n const pythonBinary = path.join(pythonLocation, 'python');\n await exec.exec(`${pythonBinary} -m ensurepip`);\n\n await exec.exec(\n `${pythonLocation}/python -m pip install --ignore-installed pip`\n );\n}\n\nexport function findRelease(\n releases: IPyPyManifestRelease[],\n pythonVersion: string,\n pypyVersion: string,\n architecture: string,\n includePrerelease: boolean\n) {\n const options = {includePrerelease: includePrerelease};\n const filterReleases = releases.filter(item => {\n const isPythonVersionSatisfied = semver.satisfies(\n semver.coerce(item.python_version)!,\n pythonVersion\n );\n const isPyPyNightly =\n isNightlyKeyword(pypyVersion) && isNightlyKeyword(item.pypy_version);\n const isPyPyVersionSatisfied =\n isPyPyNightly ||\n semver.satisfies(\n pypyVersionToSemantic(item.pypy_version),\n pypyVersion,\n options\n );\n const isArchPresent =\n item.files &&\n (IS_WINDOWS\n ? isArchPresentForWindows(item, architecture)\n : isArchPresentForMacOrLinux(item, architecture, process.platform));\n return isPythonVersionSatisfied && isPyPyVersionSatisfied && isArchPresent;\n });\n\n if (filterReleases.length === 0) {\n return null;\n }\n\n const sortedReleases = filterReleases.sort((previous, current) => {\n return (\n semver.compare(\n semver.coerce(pypyVersionToSemantic(current.pypy_version))!,\n semver.coerce(pypyVersionToSemantic(previous.pypy_version))!\n ) ||\n semver.compare(\n semver.coerce(current.python_version)!,\n semver.coerce(previous.python_version)!\n )\n );\n });\n\n const foundRelease = sortedReleases[0];\n const foundAsset = IS_WINDOWS\n ? findAssetForWindows(foundRelease, architecture)\n : findAssetForMacOrLinux(foundRelease, architecture, process.platform);\n\n return {\n foundAsset,\n resolvedPythonVersion: foundRelease.python_version,\n resolvedPyPyVersion: foundRelease.pypy_version.trim()\n };\n}\n\n/** Get PyPy binary location from the tool of installation directory\n * - On Linux and macOS, the Python interpreter is in 'bin'.\n * - On Windows, it is in the installation root.\n */\nexport function getPyPyBinaryPath(installDir: string) {\n const _binDir = path.join(installDir, 'bin');\n return IS_WINDOWS ? installDir : _binDir;\n}\n\nexport function pypyVersionToSemantic(versionSpec: string) {\n const prereleaseVersion = /(\\d+\\.\\d+\\.\\d+)((?:a|b|rc))(\\d*)/g;\n return versionSpec.replace(prereleaseVersion, '$1-$2.$3');\n}\n\nexport function isArchPresentForWindows(item: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return item.files.some(\n (file: any) =>\n WINDOWS_PLATFORMS.includes(file.platform) && file.arch === architecture\n );\n}\n\nexport function isArchPresentForMacOrLinux(\n item: any,\n architecture: string,\n platform: string\n) {\n return item.files.some(\n (file: any) => file.arch === architecture && file.platform === platform\n );\n}\n\nexport function findAssetForWindows(releases: any, architecture: string) {\n architecture = replaceX32toX86(architecture);\n return releases.files.find(\n (item: any) =>\n WINDOWS_PLATFORMS.includes(item.platform) && item.arch === architecture\n );\n}\n\nexport function findAssetForMacOrLinux(\n releases: any,\n architecture: string,\n platform: string\n) {\n return releases.files.find(\n (item: any) => item.arch === architecture && item.platform === platform\n );\n}\n\nfunction replaceX32toX86(architecture: string): string {\n // convert x32 to x86 because os.arch() returns x32 for 32-bit systems but PyPy releases json has x86 arch value.\n if (architecture === 'x32') {\n architecture = 'x86';\n }\n return architecture;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/dist/modern/setup-cpp.js b/dist/modern/setup-cpp.js index 0f8423bd..7dd257ef 100644 --- a/dist/modern/setup-cpp.js +++ b/dist/modern/setup-cpp.js @@ -1,18 +1,18 @@ #!/usr/bin/env node -let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rW({env:n})],pathExt:t?n6.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=n6.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return iQ&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return rQ.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function y({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function w(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return w(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r5(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r2.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oq(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oB());});}),n.getBufferedValue();}function D(e,t,r){let n;let i=aa(e,t,r),o=o4(e,t),a=o5(e,t);ai(a,i.options),ok(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o0(e,Promise.reject(ou({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o1(n),l=oP(n,i.options,s),u=oU(n,i.options,l),c={isCanceled:!1};n.kill=oI.bind(null,n.kill.bind(n)),n.cancel=oL.bind(null,n,c);let d=rZ(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await oJ(n,i.options,u),f=as(i.options,l),h=as(i.options,p),m=as(i.options,d);if(e||0!==t||null!==r){let l=ou({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oz(n,i.options),n.all=oW(n,i.options),oj(n),o0(n,d),n;}function S(e,t,r){let n;let i=aa(e,t,r),o=o4(e,t),a=o5(e,t);ai(a,i.options);let s=oV(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw ou({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=as(i.options,n.stdout,n.error),u=as(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=ou({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){return(process.getuid?.()===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return S(r,n,t);}(I(e,t),r):S(e,O(t),r);}function R(e,t=[],r=ac){return T()?function(e,t){let[r,...n]=o6(e);return D(r,n,t);}(I(e,t),r):D(e,O(t),r);}function I(e,t){return"sudo "+O([e,...t]).join(" ");}function O(e){return e.map(e=>`'${e}'`);}async function A(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(n8).statSync(e).isDirectory();await R("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ac);}}function C(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,n6.join)("/Users/",process.env.SUDO_USER):(0,n6.join)("/home/",process.env.SUDO_USER);{let e=(0,n5.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(ap,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function L(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aM(n,i.options,u),f=a2(i.options,l),h=a2(i.options,p),m=a2(i.options,d);if(e||0!==t||null!==r){let l=af({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return a$(n,i.options),n.all=aP(n,i.options),aO(n),aq(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function M(e,t,r=a7){let n=function(e,t=!1){let r=t?p(nv)(e):e;return p(nE)(r,'"',"\\");}(t??"",r.shouldEscapeSpace);try{if(rO.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,ng.exportVariable)(e,n);}catch(t){(0,rA.error)(t),await j(e,n,r);}else await j(e,n,r);}catch(t){(0,rA.error)(t),(0,ng.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function F(e){if(!(se.some(t=>t.test(e))&&(process.env.PATH?.split(n6.delimiter)??[]).includes(e))){process.env.PATH=`${e}${n6.delimiter}${process.env.PATH}`;try{if(rO.GITHUB_ACTIONS)try{(0,ng.addPath)(e);}catch(t){(0,rA.error)(t),await q(e);}else await q(e);}catch(t){(0,rA.error)(t),(0,ng.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function j(e,t,r){let n=t??"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,ng.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,ng.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,n8.appendFileSync)(st,` +let e,t,r,n,i,o,a,s,l,u;function c(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function p(e){return e&&e.__esModule?e.default:e;}function d(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){d(e,t||{},function(e,t){e?n(e):r(t);});});}rz(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function f(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,a=o&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rW({env:n})],pathExt:t?ie.delimiter:void 0});}catch(e){}finally{a&&process.chdir(i);}return r&&(r=ie.resolve(o?e.options.cwd:"",r)),r;}function h(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function m(e,t){return i3&&1===e&&!t.file?h(t.original,"spawn"):null;}function g(e,t,r){let n=rG(e,t,r),i=ru.spawn(n.command,n.args,n.options);return r0.hookChildProcess(i,n),i;}function v(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}function E(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function y({env:e=p(rm).env,...t}={}){let r=E({env:e={...e}});return t.path=e[r],e[r]=function(e={}){let t;let{cwd:r=p(rm).cwd(),path:n=p(rm).env[E()],execPath:i=p(rm).execPath}=e,o=i instanceof URL?p(rg).fileURLToPath(i):i,a=r instanceof URL?p(rg).fileURLToPath(r):r,s=p(rf).resolve(a),l=[];for(;t!==s;)l.push(p(rf).join(s,"node_modules/.bin")),t=s,s=p(rf).resolve(s,"..");return l.push(p(rf).resolve(a,o,"..")),[...l,n].join(p(rf).delimiter);}(t),e;}function w(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function b(e){return w(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function x(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r8(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r5.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oV(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new oX());});}),n.getBufferedValue();}function D(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options),oj(i.options);try{n=p(rh).spawn(i.file,i.args,i.options);}catch(t){let e=new(p(rh).ChildProcess)();return o4(e,Promise.reject(of({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let s=o5(n),l=oF(n,i.options,s),u=oq(n,i.options,l),c={isCanceled:!1};n.kill=o_.bind(null,n.kill.bind(n)),n.cancel=oU.bind(null,n,c);let d=r1(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await o1(n,i.options,u),f=ap(i.options,l),h=ap(i.options,p),m=ap(i.options,d);if(e||0!==t||null!==r){let l=of({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return oJ(n,i.options),n.all=oQ(n,i.options),oH(n),o4(n,d),n;}function S(e,t,r){let n;let i=ac(e,t,r),o=o9(e,t),a=o7(e,t);al(a,i.options);let s=oK(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw of({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=ap(i.options,n.stdout,n.error),u=ap(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=of({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function T(){return(process.getuid?.()===0||!!process.env.CI)&&null!==p(rP).sync("sudo",{nothrow:!0});}function N(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return S(r,n,t);}(I(e,t),r):S(e,O(t),r);}function R(e,t=[],r=ah){return T()?function(e,t){let[r,...n]=ae(e);return D(r,n,t);}(I(e,t),r):D(e,O(t),r);}function I(e,t){return"sudo "+O([e,...t]).join(" ");}function O(e){return e.map(e=>`'${e}'`);}async function A(e){if(("linux"===process.platform||"darwin"===process.platform)&&T()&&void 0!==process.env.SUDO_USER){let t=p(it).statSync(e).isDirectory();await R("chown",[...(t?["-R"]:[]),process.env.SUDO_USER,e],ah);}}function C(e){let t=function(){if(T()&&"string"==typeof process.env.SUDO_USER&&""!==process.env.SUDO_USER)return"darwin"===process.platform?(0,ie.join)("/Users/",process.env.SUDO_USER):(0,ie.join)("/home/",process.env.SUDO_USER);{let e=(0,n7.homedir)();if(""===e)return;return e;}}();return void 0===t?e:e.replace(am,t);}function _(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});}function L(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,r[0]&&(s=0)),s;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,i=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]{let[{error:e,exitCode:t,signal:r,timedOut:s},l,p,d]=await aB(n,i.options,u),f=a8(i.options,l),h=a8(i.options,p),m=a8(i.options,d);if(e||0!==t||null!==r){let l=av({error:e,exitCode:t,signal:r,stdout:f,stderr:h,all:m,command:o,escapedCommand:a,parsed:i,timedOut:s,isCanceled:c.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:a,exitCode:0,stdout:f,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return aM(n,i.options),n.all=aF(n,i.options),aL(n),aV(n,d),n;}function U(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return k(function(){if(void 0===e){let t=p(rP).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=p(rP).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}async function M(e,t,r=sn){let n=function(e,t=!1){let r=t?p(nb)(e):e;return p(nx)(r,'"',"\\");}(t??"",r.shouldEscapeSpace);try{if(rO.GITHUB_ACTIONS)try{if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,nw.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,nw.exportVariable)(e,n);}catch(t){(0,rA.error)(t),await j(e,n,r);}else await j(e,n,r);}catch(t){(0,rA.error)(t),(0,nw.setFailed)(`Failed to export environment variable ${e}=${n}. You should add it manually.`);}}async function F(e){if(!(si.some(t=>t.test(e))&&(process.env.PATH?.split(ie.delimiter)??[]).includes(e))){process.env.PATH=`${e}${ie.delimiter}${process.env.PATH}`;try{if(rO.GITHUB_ACTIONS)try{(0,nw.addPath)(e);}catch(t){(0,rA.error)(t),await q(e);}else await q(e);}catch(t){(0,rA.error)(t),(0,nw.setFailed)(`Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function j(e,t,r){let n=t??"";switch(process.platform){case"win32":if(r.shouldAddOnlyIfNotDefined&&void 0!==process.env[e]){(0,nw.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await U(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,nw.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await B(),r.shouldAddOnlyIfNotDefined?((0,it.appendFileSync)(so,` if [ -z "\${${e}}" ]; then export ${e}="${n}"; fi -`),(0,ng.info)(`if not defined ${e} then ${e}="${n}" was added to "${st}`)):((0,n8.appendFileSync)(st,` +`),(0,nw.info)(`if not defined ${e} then ${e}="${n}" was added to "${so}`)):((0,it.appendFileSync)(so,` export ${e}="${n}" -`),(0,ng.info)(`${e}="${n}" was added to "${st}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,ng.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,n8.appendFileSync)(st,` +`),(0,nw.info)(`${e}="${n}" was added to "${so}`));return;}process.env[e]=n;}async function q(e){switch(process.platform){case"win32":await U(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,nw.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await B(),(0,it.appendFileSync)(so,` export PATH="${e}:$PATH" -`),(0,ng.info)(`"${e}" was added to "${st}"`);return;default:return;}}async function B(){if(sr)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,ny.pathExists)(st))&&(0,n8.readFileSync)(st,"utf8").includes(e))return;(0,n8.appendFileSync)(st,` +`),(0,nw.info)(`"${e}" was added to "${so}"`);return;default:return;}}async function B(){if(sa)return;let e="# Automatically Generated by setup-cpp\nexport SOURCE_CPPRC=0";if((await(0,nD.pathExists)(so))&&(0,it.readFileSync)(so,"utf8").includes(e))return;(0,it.appendFileSync)(so,` ${e} -`),(0,ng.info)(`Added ${e} to ${st}`);let t=` +`),(0,nw.info)(`Added ${e} to ${so}`);let t=` # source .cpprc if SOURCE_CPPRC is not set to 0 -if [[ "$SOURCE_CPPRC" != 0 && -f "${st}" ]]; then source "${st}"; fi -`;try{let e=C("~/.profile");(0,n8.appendFileSync)(e,t),(0,ng.info)(`${t} was added to ${e}`);let r=C("~/.bashrc");(0,n8.appendFileSync)(r,t),(0,ng.info)(`${t} was added to ${r}`);}catch(e){(0,rA.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sr=!0;}async function G(){if(await(0,ny.pathExists)(st)){let e=(0,n8.readFileSync)(st,"utf-8").split("\n"),t=[...new Set(e.reverse())].reverse();(0,n8.writeFileSync)(st,t.join("\n")),await A(st);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rA.info)(`Installing ${t} ${r??""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!si||t)&&(W(n),si=!0),so||(await K(n),so=!0);let i=[...new Set(e.flatMap(e=>e.repositories??[]))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);W(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sa.some(e=>t.includes(e))&&((0,rA.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("apt-cache",["search","--names-only",`^${(0,nw.default)(e)}-${(0,nw.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await D("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await D("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${t??""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function W(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function K(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[J(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),J(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(M("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),M("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function Y(){N("gpg",["-k"]);}async function J(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,ny.pathExists)(n))||(Y(),await Promise.all(e.map(async e=>{await R("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await R("chmod",["644",n]);}))),n;}catch(e){(0,rA.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function Q(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,ny.pathExists)(r))||(Y(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await D("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rO.GITHUB_ACTIONS?R("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),sn(st,` +if [[ "$SOURCE_CPPRC" != 0 && -f "${so}" ]]; then source "${so}"; fi +`;try{let e=C("~/.profile");(0,it.appendFileSync)(e,t),(0,nw.info)(`${t} was added to ${e}`);let r=C("~/.bashrc");(0,it.appendFileSync)(r,t),(0,nw.info)(`${t} was added to ${r}`);}catch(e){(0,rA.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}sa=!0;}async function G(){if(await(0,nD.pathExists)(so)){let e=[...new Set((0,it.readFileSync)(so,"utf-8").split("\n").reverse())].reverse();(0,it.writeFileSync)(so,e.join("\n")),await A(so);}}async function H(e,t=!1){let r;let n=z()?"nala":"apt-get";for(let{name:t,version:r}of e)(0,rA.info)(`Installing ${t} ${r??""} via ${n}`);process.env.DEBIAN_FRONTEND="noninteractive",(!sl||t)&&(W(n),sl=!0),su||(await K(n),su=!0);let i=[...new Set(e.flatMap(e=>e.repositories??[]))];if(0!==i.length){for(let e of i)N("add-apt-repository",["-y",e]);W(n);}let o=await Promise.all(e.map(e=>X(e.name,e.version)));try{N(n,["install","--fix-broken","-y",...o]);}catch(e){if("stderr"in e){let t=e.stderr;sc.some(e=>t.includes(e))&&((0,rA.warning)(`Failed to install packages ${o}. Retrying...`),N(n,["install","--fix-broken","-y",...o]));}else throw e;}return{binDir:"/usr/bin/"};}async function V(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("apt-cache",["search","--names-only",`^${(0,nS.default)(e)}-${(0,nS.default)(t)}$`]);if(""!==r.trim())return 0;try{let{stdout:r}=await D("apt-cache",["show",`${e}=${t}`]);if(""===r.trim())return 1;}catch{}}try{let{stdout:t}=await D("apt-cache",["show",e]);if(""!==t.trim())return 2;}catch{}return 3;}async function X(e,t){switch(await V(e,t)){case 0:return`${e}-${t}`;case 1:return`${e}=${t}`;case 2:return e;default:throw Error(`Could not find package ${e} ${t??""}`);}}function z(){return null!==p(rP).sync("nala",{nothrow:!0});}function W(e){N(e,"nala"!==e?["update","-y"]:["update"]);}async function K(e){N(e,["install","--fix-broken","-y","software-properties-common","apt-utils","ca-certificates","gnupg"]);let t=[J(["3B4FE6ACC0B21F32","40976EAF437D05B5"],"setup-cpp-ubuntu-archive.gpg"),J(["1E9377A2BA9EF27F"],"launchpad-toolchain.gpg")];"nala"===e&&t.push(M("LANG","C.UTF-8",{shouldAddOnlyIfNotDefined:!0}),M("LC_ALL","C.UTF-8",{shouldAddOnlyIfNotDefined:!0})),await Promise.all(t);}function Y(){N("gpg",["-k"]);}async function J(e,t,r="keyserver.ubuntu.com"){try{let n="/etc/apt/trusted.gpg.d/"+t;return(await(0,nD.pathExists)(n))||(Y(),await Promise.all(e.map(async e=>{await R("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--keyserver",r,"--recv-keys",e]),await R("chmod",["644",n]);}))),n;}catch(e){(0,rA.warning)(`Failed to add apt key via server ${r}: ${e}`);return;}}async function Q(e,t){let r="/etc/apt/trusted.gpg.d/"+e;return(await(0,nD.pathExists)(r))||(Y(),await H([{name:"curl"},{name:"ca-certificates"}],void 0),await D("curl",["-s",t,"-o","/tmp/"+e]),N("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+r,"--import","/tmp/"+e]),N("chmod",["644",r])),r;}async function Z(e,t,r=40){return rO.GITHUB_ACTIONS?R("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]):(await B(),ss(so,` if [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${e} ${e} ${t} ${r}; fi -`));}async function ee(e){try{let{stdout:t}=await D("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nx.dirname)(i)};let o=p(n6).join((0,n5.tmpdir)(),"setup-cpp","brew");await(0,nD.mkdirP)(o),S("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,n6.join)(o,"install.sh");return"linux"===process.platform&&(0,n8.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),S("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await F(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,ng.info)(`Installing ${e} ${t??""} via brew`),ss&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),ss=!0);let n=er();return S((0,nx.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let i=p(rP).sync("choco",{nothrow:!0});if(null!==i)return{binDir:r=(0,nx.dirname)(i)};let o="powershell.exe",a=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==a&&(o=a),S(o,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let s=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await F(s);let l=p(rP).sync("choco",{nothrow:!0});if(r=null!==l?(0,nx.dirname)(l):`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`,await(0,ny.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){(0,rA.info)(`Installing ${e} ${t??""} via chocolatey`),sl&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sl=!0);let n=process.env.PATH,i={...process.env};if(delete i.TMP,delete i.TEMP,delete i.Path,i.PATH=n,void 0!==t&&""!==t)S("choco",["install","-y",e,"--version="+t,...r],{env:i,extendEnv:!1,stdio:"inherit"});else try{S("choco",["install","-y",e,...r],{env:i,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rA.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let o=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`;return await F(o),{binDir:o};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rA.info)(`Installing ${t} ${r??""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await D("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rA.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await Q("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rA.info)(`Installing ${e} ${t??""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);su||"yay"===r||(N(n,["-Sy","--noconfirm"]),su=!0),sc||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sc=!0);let i=e=>"yay"===r?S(r,["-S","--noconfirm",e]):N(r??n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rA.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await D(e,["-Si",t]);for(let e of n.matchAll(sp))r.push(e[1]);}catch(e){(0,rA.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sg.arch();let n=sv.join(ew(),e);if(sh.existsSync(n)){for(let e of sh.readdirSync(n))if(eE(e)){let i=sv.join(n,e,t||"");sh.existsSync(i)&&sh.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nO(this,void 0,void 0,function*(){return e||(e=sv.join(eb(),sx.default())),yield sf.mkdirP(e),e;});}function eg(e,t,r){return nO(this,void 0,void 0,function*(){let n=sv.join(ew(),e,sy.clean(t)||t,r||"");sd.debug("destination "+n);let i=`${n}.complete`;return yield sf.rmRF(n),yield sf.rmRF(i),yield sf.mkdirP(n),n;});}function ev(e,t,r){let n=sv.join(ew(),e,sy.clean(t)||t,r||""),i=`${n}.complete`;sh.writeFileSync(i,""),sd.debug("finished caching tool");}function eE(e){let t=sy.clean(e)||"";sd.debug("isExplicit: "+t);let r=null!=sy.valid(t);return sd.debug("explicit? "+r),r;}function ey(e,t){let r="";sd.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sy.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sy.satisfies(i,t)){r=i;break;}}return r?sd.debug("matched: "+r):sd.debug("match not found"),r;}function ew(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rS[e];return void 0!==r?r:t;}function eD(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sR(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nS.downloadTool)(o),{name:o,max:4,backoffBase:2e3,report:e=>(0,rA.info)(e)});sI||((0,rA.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),sI=!0),(0,rA.info)(`Extracting ${r} to ${n}`),await u?.(r,n);}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${o}: ${r}`);}return(0,rA.info)(`Add ${d} to PATH`),await F(d),rO.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nS.cacheDir)(n,e,t)),{installDir:c,binDir:d};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await D(await eR(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await A(t),t;}async function eR(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eI(e,t){return eN(e,t);}function eO(e,t){return eN(e,t);}async function eA(e,t,r=["--strip-components=0"]){try{await(0,nD.mkdirP)(t);}catch{}try{await D("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rA.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return A(t),t;}function eC(e,t,r){let n=p(nM)(e)??e;switch(t){case"win32":{let t;let i=p(nU)(n,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?i?"win32-x86":"windows-i386":i?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eO,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nU)(n,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nS.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let i=p(nU)(n,"v3.19.8");t=["aarch64"].includes(r)?i?"Linux-aarch64":"linux-aarch64":i?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nS.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eS("cmake",e,eC,t,r);}function eL(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nq.call(e,0):[];}function e$(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?e$:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nj[r]||(t[r]=e[r]);return t;}(t)),d=new nB(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,y=d.shouldUpdateOnHit,w=function(){var t=g?eL(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)y&&u(d,p,w),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,w));else{var n=e.apply(this,arguments),i=g?t:eL(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(w),v&&s(d,p,w),E&&l(d,p,w);}return h[0];};return w.cache=d,w.fn=e,w.isMemoized=!0,w.options=p,w;}function eU(e,t){return new Promise(r=>{try{let n=(0,ie.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eM(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nV)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function eF(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nH(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eM(e,r)){let e=await n(t,o);if(null!==e){if(await nH(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function ej(e,t=sO){try{let r=await(0,nC.getExecOutput)(e,["--version"]),n=r.stdout||r.stderr||"",i=n.trim().match(t)?.[1];return p(nM)(i)??void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sO){let n=await ej(e,r);return void 0!==n&&""!==t&&-1!==p(nV)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eY(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await D(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rA.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rA.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eW(t);if(void 0!==i){let e=(0,nx.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rO.GITHUB_ACTIONS)try{(0,rA.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rR("4JiFg");await o(e,t,r),i=await eW(t);let a=(0,nx.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rA.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eW(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eW(e),i=(0,nx.dirname)(n);await F(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await D("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nx.join)(e.stdout,"libexec","bin");await F(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eW(e){for(let t of["python3","python"]){let r=await eK(t,e);if(void 0!==r)return r;}}async function eK(e,t){try{if(void 0!==t){let r=(0,nx.join)(t,(0,nx.addExeExt)(e));if((await(0,ny.pathExists)(r))&&(await eq(r,sC.python)))return r;}for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(await eq(t,sC.python))return t;}catch{}}async function eY(e){let t=await eJ();return void 0===t?((0,rA.info)("pip was not found. Installing pip"),await eZ(e),eJ()):t;}async function eJ(){for(let e of["pip3","pip"]){let t=await eQ(e);if(void 0!==t)return t;}}async function eQ(e){try{for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(null!==t&&(await eq(t,sC.pip)))return t;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await D(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rA.info)(t.toString());try{return await D(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rA.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nC.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nx.join)(r,"Scripts"),(0,nx.join)(r,"Scripts","bin"),(0,nx.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in s_?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,s_[e]):e2(t)&&e in sA?sA[e]:"true"===t?"":t??"";}function e2(e){return"true"===e||void 0===e;}async function e4(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e5(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nz.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rA.warning)(e.toString()),null;}}function e6(){let e=p(n5).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await sQ(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,ng.info)(`Installing ${t} ${r??""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await sY(),i.PIPX_BIN_DIR=await sJ()),S(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,ng.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await sL(e),p=await ti(c,t);return await F(p),{binDir:p};}async function e7(e){return 0===(await D(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=C("~/.local/pipx");if(await(0,ny.pathExists)(t))return t;switch(process.platform){case"win32":e=C("~/AppData/Local/pipx");break;case"darwin":e=C("~/Library/Application Support/pipx");break;default:e=C("~/.local/share/pipx");}return await sK(e),await sK((0,nx.join)(e,"trash")),await sK((0,nx.join)(e,"shared")),await sK((0,nx.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=C("~/.local/bin");return await F(e),await sK(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await s$()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await D(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,ny.pathExists)((0,nx.join)(e,(0,nx.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nx.addExeExt)(t),{nothrow:!0});return null!==n?(0,nx.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,ng.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await F(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await F(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nW({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s3[s>>18]+s3[s>>12&s1]+s3[null===o?64:s>>6&s1]+s3[null===a?64:s&s1];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lo(),{devices:n,eject:i}=await r.attach(e),o=n[0];await R("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nS.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eO,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nF)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rA.info)(e)});let t=await ty();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eS("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s0()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eS("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rA.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rA.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await s$()),"",r),n;}default:throw Error("Unsupported platform");}}async function ty(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,ny.pathExists)((0,nx.join)(e,"doxygen.exe")))return await F(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function tw(){if("darwin"===process.platform)try{let e=await(0,nC.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await M("SDKROOT",t.trim()):(0,rA.error)("SDKROOT not set");}catch(e){(0,rA.error)(e);}}function tb(e,t,r){if("win32"===t){let t=la[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nx.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eS("g++",e,tb,t,r);}catch(t){(0,rA.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tS(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rA.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tD(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tS(e,t){let r;if(await eo("mingw",e),"x64"===t&&(await(0,ny.pathExists)("C:/tools/mingw64/bin"))?(r="C:/tools/mingw64/bin",await F(r)):"ia32"===t&&(await(0,ny.pathExists)("C:/tools/mingw32/bin"))?(r="C:/tools/mingw32/bin",await F(r)):(await(0,ny.pathExists)(`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(r=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`),void 0!==r)return{binDir:r};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(M("CC",(0,nx.addExeExt)(`${t}/gcc`)),M("CXX",(0,nx.addExeExt)(`${t}/g++`)));else{let i=p(nY)(p(nM)(e)??e);i>=5?(n.push(M("CC",`${t}/gcc-${i}`),M("CXX",`${t}/g++-${i}`)),ec()&&n.push(Z("cc",`${t}/gcc-${i}`,r),Z("cxx",`${t}/g++-${i}`,r),Z("gcc",`${t}/gcc-${i}`,r),Z("g++",`${t}/g++-${i}`,r))):(n.push(M("CC",`${t}/gcc-${e}`),M("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(tw()),rO.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nx.join)(nJ,"gcc_matcher.json");if(!(await(0,ny.pathExists)(e)))return(0,rA.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}function tR(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eO,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tI(e,t,r){return eS("ninja",e,tR,t,r);}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:eA};}function tA(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nx.addExeExt)("kcov"),extractFunction:tC};}async function tC(e,t){let r=await eA(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nx.join)(nQ,"gcc13.patch");await D("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rA.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nx.join)(r,"build");return await D(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await D(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await s$()),(0,nx.join)(C("~"),"cmake"),"");e=(0,nx.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tI(e3("ninja",void 0,await s$()),(0,nx.join)(C("~"),"ninja"),"")),e;}async function tL(e,t,r){var n;let i;if("linux"!==process.platform){(0,rA.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eS("kcov",a,tO,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eS("kcov",a,tA,t,r),i;}function t$(e){if(Object.values(lp).includes(e));else if(e in lp)return lp[e];return e;}function tP(e){let t;let r=t$(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){ng.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&n8.existsSync(n))return ng.info("Found with vswhere: "+n),n;ng.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lp).includes(e));else for(let[t,r]of Object.entries(lp))if(r===e)return t;return e;}(e)]:lc;for(let e of ll)for(let t of i)for(let r of lu)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,ng.info("Trying standard location: "+n),n8.existsSync(n))return ng.info("Found standard location: "+n),n;if(ng.info("Not found in standard locations"),n=`${ls}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,n8.existsSync(n))return ng.info("Found VS 2015: "+n),n;throw ng.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,ny.pathExists)(t))&&((0,rA.info)(`Adding ${t} to PATH`),await M("VCTargetsPath",t)),n1(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lv){(0,ng.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(lg(e)),e.addEventListener("abort",()=>{l(lg(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lf();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=o??`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tM(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rA.error)(t),a.push(`${e} failed to install`);}return(0,ng.endGroup)(),l;}async function tM(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lC[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nx.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tF(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await D("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tj("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await lw("/tmp/llvm-setup-cpp.sh","755"),await R("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lv}),await F(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tj(e,t,r,n){var i,o,a,s,l;let u=await lE(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await ly(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rD.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lx.has(e))return null;let r="LLVM-",n=p(nU)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nU)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nH(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lD.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nU)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lS.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lb.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eM(lb,e)[0];}else""!==n&&n in lT?t=lT[n]:(t=lT[lN],(0,rA.warning)(`Falling back to LLVM version ${lN} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nU)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await eF(lb,t,e,tV);return(0,rA.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nx.addExeExt)("clang"),extractFunction:"win32"===t?eI:(e,t)=>eA(e,t,["--strip-components=1"])};}async function tz(e,t,r){let n=await lR(e,t,r);return await tQ(n.installDir??t),n;}async function tW(e,t,r){let[n,i,o]=await Promise.all([tK(e,t,r),lO(r),tZ()]);return n;}async function tK(e,t,r,n=n3.All){let i=parseInt(function(e){if(null===p(nX)(e))try{let t=p(nM)(e);if(null!==t)return(0,rA.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tF(i,n);}catch(e){(0,rA.info)("Failed to install llvm via system package manager "+e);}let o=await eS("llvm",e,tX,t,r);return await lI(i),o;}async function tY(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tJ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await s$()),"",e,40));}async function tQ(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[M("LLVM_PATH",e),M("LD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${t}`),M("DYLD_LIBRARY_PATH",`${e}/lib${n6.delimiter}${r}`),M("LDFLAGS",`-L"${e}/lib"`),M("CPPFLAGS",`-I"${e}/include"`),M("CC",(0,nx.addExeExt)(`${e}/bin/clang`)),M("CXX",(0,nx.addExeExt)(`${e}/bin/clang++`)),M("LIBRARY_PATH",`${e}/lib`),tw()];ec()&&n.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(n);}async function tZ(){if(rO.GITHUB_ACTIONS){let e=(0,nx.join)(n2,"llvm_matcher.json");if(!(await(0,ny.pathExists)(e)))return(0,rA.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await F("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=nZ(e);(0,rA.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n0(l);u=!0,(0,rA.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rA.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rA.error)(e);}await tk(l,s,r,a,n,i,o),rO.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nx.join)(n4,"msvc_matcher.json");if(!(await(0,ny.pathExists)(e)))return(0,rA.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nx.dirname)(n)};let i=await Q("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t4(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t5()};}async function t5(){let e="C:/Program Files/OpenCppCoverage";return await F(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await F(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await s$(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nx.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eO:eA,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return lA&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nx.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,ny.pathExists)((0,nx.join)(t,(0,nx.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rA.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):S("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nx.dirname)(t),stdio:"inherit"}),S((0,nx.addShExt)((0,nx.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await A(t),await F(t),lA=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nX)(e)||(0,rA.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,ng.startGroup)(`Installing ${s} ${l??""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,n6.join)(r,"llvm"),n);await M("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tD(e,(0,n6.join)(r,"gcc"),n):await tx(e,(0,n6.join)(r,"gcc"),n);o&&(await M("CPPFLAGS","")),await function(e){let t=p(nX)(e),r=null!==t?p(nY)(t):e;return M("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,n6.join)(r,"msvc"),n);o&&(await M("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,ng.notice)("Assuming apple-clang is already installed"),await Promise.all([M("CC","clang"),M("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rA.error)(t),a.push("Failed to install the "+e);}(0,ng.endGroup)();}async function rt(e){let t,r,n=Promise.resolve();rO.GITHUB_ACTIONS||(n=$(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let i=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...lL,"timeout"],default:Object.fromEntries(lL.map(e=>[e,function(e){let t=(0,ng.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});i.help&&((0,rA.info)(` +`));}async function ee(e){try{let{stdout:t}=await D("dpkg",["-l",e]);return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function et(e,r,n){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let i=p(rP).sync("brew",{nothrow:!0});if(null!==i)return{binDir:t=(0,nN.dirname)(i)};let o=p(ie).join((0,n7.tmpdir)(),"setup-cpp","brew");await(0,nR.mkdirP)(o),S("curl",["-LJO","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{cwd:o});let a=(0,ie.join)(o,"install.sh");return"linux"===process.platform&&(0,it.readFileSync)(a,"utf-8").replace("#!/bin/bash",""),S("/bin/bash",[a],{stdio:"inherit",env:{NONINTERACTIVE:"1"}}),t=er(),await F(t),{binDir:t};}function er(){return"linux"===process.platform?"/home/linuxbrew/.linuxbrew/bin/":"/usr/local/bin/";}async function en(e,t,r=[]){(0,nw.info)(`Installing ${e} ${t??""} via brew`),sp&&null!==p(rP).sync("brew",{nothrow:!0})||(await et("","",process.arch),sp=!0);let n=er();return S((0,nN.join)(n,"brew"),["install",void 0!==t&&""!==t?`${e}@${t}`:e,...r],{stdio:"inherit"}),{binDir:n};}async function ei(e,t,n){if("win32"!==process.platform)return;if("string"==typeof r)return{binDir:r};let i=p(rP).sync("choco",{nothrow:!0});if(null!==i)return{binDir:r=(0,nN.dirname)(i)};let o="powershell.exe",a=p(rP).sync(`${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,{nothrow:!0});null!==a&&(o=a),S(o,["-NoProfile","-InputFormat","None","-ExecutionPolicy","Bypass","-Command","[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"],{stdio:"inherit"});let s=`${process.env.ALLUSERSPROFILE}\\chocolatey\\bin`;await F(s);let l=p(rP).sync("choco",{nothrow:!0});if(r=null!==l?(0,nN.dirname)(l):`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`,await(0,nD.pathExists)(r))return{binDir:r};}async function eo(e,t,r=[]){(0,rA.info)(`Installing ${e} ${t??""} via chocolatey`),sd&&null!==p(rP).sync("choco",{nothrow:!0})||(await ei("","",process.arch),sd=!0);let n=process.env.PATH,i={...process.env};if(delete i.TMP,delete i.TEMP,delete i.Path,i.PATH=n,void 0!==t&&""!==t)S("choco",["install","-y",e,"--version="+t,...r],{env:i,extendEnv:!1,stdio:"inherit"});else try{S("choco",["install","-y",e,...r],{env:i,extendEnv:!1,stdio:"inherit"});}catch(t){if(t.message.includes("exit code 3010"))(0,rA.info)(`${e} might require a reboot for the completion of the installation.`);else throw t;}let o=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`;return await F(o),{binDir:o};}function ea(){return"linux"===process.platform&&(void 0===s&&(s=null!==p(rP).sync("pacman",{nothrow:!0})),s);}function es(){return"linux"===process.platform&&(void 0===l&&(l=null!==p(rP).sync("dnf",{nothrow:!0})),l);}async function el(e){for(let{name:t,version:r}of e)(0,rA.info)(`Installing ${t} ${r??""} via dnf`);return N("dnf",["-y","install",...(await Promise.all(e.map(e=>eu(e.name,e.version))))]),{binDir:"/usr/bin/"};}async function eu(e,t){if(void 0!==t&&""!==t){let{stdout:r}=await D("dnf",["search","-q",`${e}-${t}`]);if(""!==r.trim())return`${e}-${t}`;{let{stdout:r}=await D("dnf",["search","-q",`${e}${t}`]);if(""!==r.trim())return`${e}${t}`;(0,rA.warning)(`Failed to install ${e} ${t} via dnf, trying without version`);}}return e;}function ec(){return"linux"===process.platform&&(void 0===u&&(u=null!==p(rP).sync("apt-get",{nothrow:!0})),u);}async function ep(e,t,r){switch(process.platform){case"win32":return eo("bazelisk",e);case"darwin":return en("bazelisk",e);case"linux":if(ea())throw Error("installing bazel on Arch linux is not supported yet");if(es())return await el([{name:"dnf-plugins-core"}]),N("dnf",["copr","enable","vbatts/bazel"]),el([{name:"bazel4"}]);if(ec()){let t=await Q("bazel-archive-keyring.gpg","https://bazel.build/bazel-release.pub.gpg");return N("bash",["-c",`echo "deb [arch=amd64 signed-by=${t}] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list`]),H([{name:"bazel",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ed(e,t,r){(0,rA.info)(`Installing ${e} ${t??""} via pacman`);let n="pacman";if("yay"===r&&null===p(rP).sync("yay",{nothrow:!0}))throw Error(`yay is needed for ${e}, but it is not installed, please install it manually first`);sf||"yay"===r||(N(n,["-Sy","--noconfirm"]),sf=!0),sh||"yay"===r||(N(n,["-S","--noconfirm","base-devel"]),sh=!0);let i=e=>"yay"===r?S(r,["-S","--noconfirm",e]):N(r??n,["-S","--noconfirm",e]);if(void 0!==t&&""!==t){if((await ef(n,e)).includes(t))try{i(`${e}=${t}`);}catch{i(`${e}${t}`);}else(0,rA.info)(`Failed to install ${e} ${t} via pacman, trying without version`),i(e);}else i(e);return{binDir:"/usr/bin/"};}async function ef(e,t){let r=[];try{let{stdout:n}=await D(e,["-Si",t]);for(let e of n.matchAll(sm))r.push(e[1]);}catch(e){(0,rA.warning)(`Failed to get available versions for ${t}: ${e}`);}return r;}function eh(e,t){let r=[];t=t||sw.arch();let n=sb.join(ew(),e);if(sE.existsSync(n)){for(let e of sE.readdirSync(n))if(eE(e)){let i=sb.join(n,e,t||"");sE.existsSync(i)&&sE.existsSync(`${i}.complete`)&&r.push(e);}}return r;}function em(e){return nL(this,void 0,void 0,function*(){return e||(e=sb.join(eb(),sN.default())),yield sv.mkdirP(e),e;});}function eg(e,t,r){return nL(this,void 0,void 0,function*(){let n=sb.join(ew(),e,sD.clean(t)||t,r||"");sg.debug("destination "+n);let i=`${n}.complete`;return yield sv.rmRF(n),yield sv.rmRF(i),yield sv.mkdirP(n),n;});}function ev(e,t,r){let n=sb.join(ew(),e,sD.clean(t)||t,r||""),i=`${n}.complete`;sE.writeFileSync(i,""),sg.debug("finished caching tool");}function eE(e){let t=sD.clean(e)||"";sg.debug("isExplicit: "+t);let r=null!=sD.valid(t);return sg.debug("explicit? "+r),r;}function ey(e,t){let r="";sg.debug(`evaluating ${e.length} versions`),e=e.sort((e,t)=>sD.gt(e,t)?1:-1);for(let n=e.length-1;n>=0;n--){let i=e[n];if(sD.satisfies(i,t)){r=i;break;}}return r?sg.debug("matched: "+r):sg.debug("match not found"),r;}function ew(){let e=process.env.RUNNER_TOOL_CACHE||"";return ra.ok(e,"Expected RUNNER_TOOL_CACHE to be defined"),e;}function eb(){let e=process.env.RUNNER_TEMP||"";return ra.ok(e,"Expected RUNNER_TEMP to be defined"),e;}function ex(e,t){let r=rS[e];return void 0!==r?r:t;}function eD(e,t){if(!e||!t)throw Error("retry-as-promised must be passed a callback and a options set");let r={$current:"$current"in(t="number"==typeof t?{max:t}:t)?t.$current:1,max:t.max,timeout:t.timeout||void 0,match:t.match?Array.isArray(t.match)?t.match:[t.match]:[],backoffBase:void 0===t.backoffBase?100:t.backoffBase,backoffExponent:t.backoffExponent||1.1,report:t.report,name:t.name||e.name||"unknown"};return r.match&&!Array.isArray(r.match)&&(r.match=[r.match]),r.report&&r.report("Trying "+r.name+" #"+r.$current+" at "+new Date().toLocaleTimeString(),r),new Promise(function(t,n){let i,o,a;r.timeout&&(i=setTimeout(function(){o&&clearTimeout(o),n(new sC(r.name+" timed out",a));},r.timeout)),Promise.resolve(e({current:r.$current})).then(t).then(function(){i&&clearTimeout(i),o&&clearTimeout(o);}).catch(function(s){i&&clearTimeout(i),o&&clearTimeout(o),a=s,r.report&&r.report(s&&s.toString()||s,r,s);var l=r.$current(0,nI.downloadTool)(o),{name:o,max:4,backoffBase:2e3,report:e=>(0,rA.info)(e)});s_||((0,rA.info)("Installing extraction dependencies"),"linux"===process.platform&&(ea()?await Promise.all([ed("unzip"),ed("tar"),ed("xz")]):es()?await el([{name:"unzip"},{name:"tar"},{name:"xz"}]):ec()&&(await H([{name:"unzip"},{name:"tar"},{name:"xz-utils"}]))),s_=!0),(0,rA.info)(`Extracting ${r} to ${n}`),await u?.(r,n);}catch(r){throw Error(`Failed to download ${e} ${t} ${i} from ${o}: ${r}`);}return(0,rA.info)(`Add ${d} to PATH`),await F(d),rO.GITHUB_ACTIONS&&"string"==typeof process.env.RUNNER_TOOL_CACHE&&(await(0,nI.cacheDir)(n,e,t)),{installDir:c,binDir:d};}function eT(e,t,r){switch(process.platform){case"win32":return eo("7zip",e);case"darwin":return en("p7zip",e);case"linux":if(ea())return ed("p7zip",e);if(es())return el([{name:"p7zip",version:e},{name:"p7zip-plugins",version:e}]);if(ec())return H([{name:"p7zip-full",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function eN(e,t){return await D(await eR(),["x",e,"-o"+t,"-y"],{stdio:"inherit"}),await A(t),t;}async function eR(){return void 0===n&&(null===p(rP).sync("7z",{nothrow:!0})&&(await eT("","",process.arch)),n="7z"),n;}function eI(e,t){return eN(e,t);}function eO(e,t){return eN(e,t);}async function eA(e,t,r=["--strip-components=0"]){try{await(0,nR.mkdirP)(t);}catch{}try{await D("tar",["xf",e,"-C",t,...r],{stdio:"inherit"});}catch(r){"win32"===process.platform&&r.message.includes("Can't create '\\\\?\\C:")&&(0,rA.warning)(`Failed to extract symlink ${e} to ${t}. Ignoring this symlink.`);}return A(t),t;}function eC(e,t,r){let n=p(nB)(e)??e;switch(t){case"win32":{let t;let i=p(nq)(n,"v3.19.6");t=["ia32","x86","i386","x32"].includes(r)?i?"win32-x86":"windows-i386":i?"win64-x64":"windows-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:eO,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.zip`};}case"darwin":{let t=p(nq)(n,"v3.19.1"),r=`cmake-${e}-${t?"Darwin-x86_64":"macos-universal"}`;return{binRelativeDir:"CMake.app/Contents/bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:r,extractFunction:nI.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${r}.tar.gz`};}case"linux":{let t;let i=p(nq)(n,"v3.19.8");t=["aarch64"].includes(r)?i?"Linux-aarch64":"linux-aarch64":i?"Linux-x86_64":"linux-x86_64";let o=`cmake-${e}-${t}`;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("cmake"),extractedFolderName:o,extractFunction:nI.extractTar,url:`https://github.com/Kitware/CMake/releases/download/v${e}/${o}.tar.gz`};}default:throw Error(`Unsupported platform '${t}'`);}}function e_(e,t,r){return eS("cmake",e,eC,t,r);}function eL(e){var t=e.length;return t?1===t?[e[0]]:2===t?[e[0],e[1]]:3===t?[e[0],e[1],e[2]]:nV.call(e,0):[];}function e$(e,t){return e===t||e!=e&&t!=t;}function eP(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r;}function ek(e,t){if(void 0===t&&(t={}),"function"==typeof e&&e.isMemoized)return ek(e.fn,eP(e.options,t));if("function"!=typeof e)throw TypeError("You must pass a function to `memoize`.");var r=t.isEqual,n=t.isMatchingKey,i=t.isPromise,o=void 0!==i&&i,a=t.maxSize,s=t.onCacheAdd,l=t.onCacheChange,u=t.onCacheHit,c=t.transformKey,p=eP({isEqual:void 0===r?e$:r,isMatchingKey:n,isPromise:o,maxSize:void 0===a?1:a,onCacheAdd:s,onCacheChange:l,onCacheHit:u,transformKey:c},function(e){var t={};for(var r in e)nH[r]||(t[r]=e[r]);return t;}(t)),d=new nX(p),f=d.keys,h=d.values,m=d.canTransformKey,g=d.shouldCloneArguments,v=d.shouldUpdateOnAdd,E=d.shouldUpdateOnChange,y=d.shouldUpdateOnHit,w=function(){var t=g?eL(arguments):arguments;m&&(t=c(t));var r=f.length?d.getKeyIndex(t):-1;if(-1!==r)y&&u(d,p,w),r&&(d.orderByLru(f[r],h[r],r),E&&l(d,p,w));else{var n=e.apply(this,arguments),i=g?t:eL(arguments);d.orderByLru(i,n,f.length),o&&d.updateAsyncCache(w),v&&s(d,p,w),E&&l(d,p,w);}return h[0];};return w.cache=d,w.fn=e,w.isMemoized=!0,w.options=p,w;}function eU(e,t){return new Promise(r=>{try{let n=(0,io.request)(e,{method:t},e=>{r(void 0!==e.statusCode&&e.statusCode>=200&&e.statusCode<=399);});n.on("error",e=>{r(!1);}),n.end();}catch{r(!1);}});}function eM(e,t){return Array.from(e).filter(e=>/^\d+\.\d+\.\d+$/.test(e)&&e.startsWith(t)).sort((e,t)=>{try{return p(nK)(e,t);}catch(r){return e.localeCompare(t);}}).reverse();}async function eF(e,t,r,n){if("linux"===t&&r.includes("ubuntu")){let e=await n(t,r);if(null!==e&&(await nW(e)))return[r,e];}if(!e.has(r))throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);let i=[];for(let o of eM(e,r)){let e=await n(t,o);if(null!==e){if(await nW(e))return[o,e];i.push(e);}}throw Error(`Unsupported target! (platform='${t}', version='${r}'). Try one of the following: ${JSON.stringify(e)}`);}async function ej(e,t=sL){try{let r=await(0,nP.getExecOutput)(e,["--version"]),n=r.stdout||r.stderr||"",i=n.trim().match(t)?.[1];return p(nB)(i)??void 0;}catch(e){console.error(e);return;}}async function eq(e,t,r=sL){let n=await ej(e,r);return void 0!==n&&""!==t&&-1!==p(nK)(n,t);}function eB(){switch(process.platform){case"win32":default:return"17.0.6";case"linux":return"17.0.6-ubuntu-22.04";case"darwin":return"15.0.3";}}async function eG(e,t,r){let n=await eX(e,t,r);p(ra)(void 0!==n.bin);let i=n.bin;if(void 0===(await eY(i)))throw Error("pip was not installed correctly");return await eH(i),await eV(i),n;}async function eH(e){try{if(!(await e7(e)))try{await e9(e,"pipx",void 0,{upgrade:!0,usePipx:!1});}catch(e){if(null===to("pipx",!1))throw Error("pipx was not installed correctly "+e);}await D(e,["-m","pipx","ensurepath"],{stdio:"inherit"}),await e9(e,"venv",void 0,{upgrade:!1,usePipx:!1});}catch(e){(0,rA.warning)(`Failed to install pipx: ${e.toString()}. Ignoring...`);}}async function eV(e){try{await e9(e,"setuptools",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1}),await e9(e,"wheel",void 0,{upgrade:!0,isLibrary:!0,usePipx:!1});}catch(e){(0,rA.warning)(`Failed to install setuptools or wheel: ${e.toString()}. Ignoring...`);}}async function eX(e,t,r){let n;let i=await eW(t);if(void 0!==i){let e=(0,nN.dirname)(i);n={bin:i,installDir:e,binDir:e};}else{if(rO.GITHUB_ACTIONS)try{(0,rA.info)("Installing python in GitHub Actions");let{setupActionsPython:o}=await rR("4JiFg");await o(e,t,r),i=await eW(t);let a=(0,nN.dirname)(i);n={bin:i,installDir:a,binDir:a};}catch(e){(0,rA.warning)(e.toString());}void 0===n&&(n=await ez(t,e));}return(void 0===i||void 0===n.bin)&&(i=await eW(t),n.bin=i),n;}async function ez(e,t){let r;switch(process.platform){case"win32":{e?await eo("python3",t,["--params=/InstallDir:"+e]):await eo("python3",t);let n=await eW(e),i=(0,nN.dirname)(n);await F(i),r={installDir:i,binDir:i,bin:n};break;}case"darwin":{r=await en("python3",t);let e=await D("brew",["--prefix","python"],{stdio:"pipe"}),n=(0,nN.join)(e.stdout,"libexec","bin");await F(n);break;}case"linux":if(ea())r=await ed("python",t);else if(es())r=await el([{name:"python3",version:t}]);else if(ec())r=await H([{name:"python3",version:t},{name:"python-is-python3"}]);else throw Error("Unsupported linux distributions");break;default:throw Error("Unsupported platform");}return r;}async function eW(e){for(let t of["python3","python"]){let r=await eK(t,e);if(void 0!==r)return r;}}async function eK(e,t){try{if(void 0!==t){let r=(0,nN.join)(t,(0,nN.addExeExt)(e));if((await(0,nD.pathExists)(r))&&(await eq(r,sP.python)))return r;}for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(await eq(t,sP.python))return t;}catch{}}async function eY(e){let t=await eJ();return void 0===t?((0,rA.info)("pip was not found. Installing pip"),await eZ(e),eJ()):t;}async function eJ(){for(let e of["pip3","pip"]){let t=await eQ(e);if(void 0!==t)return t;}}async function eQ(e){try{for(let t of(await p(rP)(e,{nothrow:!0,all:!0}))??[])if(null!==t&&(await eq(t,sP.pip)))return t;}catch{}}async function eZ(e){(await e0(e))||(await to("pip"),await e0(e));}async function e0(e){try{return await D(e,["-m","ensurepip","-U","--upgrade"],{stdio:"inherit"}),!0;}catch(t){(0,rA.info)(t.toString());try{return await D(e,["-m","pip","install","--upgrade","pip"],{stdio:"inherit"}),!0;}catch(e){(0,rA.info)(e.toString());}}return!1;}async function e1(e){let t=[];"linux"===process.platform?t.push("/home/runner/.local/bin/"):"darwin"===process.platform&&t.push("/usr/local/bin/");let r=(await(0,nP.getExecOutput)(`${e} -c "import sys;print(sys.base_exec_prefix);"`)).stdout.trim();return t.push((0,nN.join)(r,"Scripts"),(0,nN.join)(r,"Scripts","bin"),(0,nN.join)(r,"bin")),[...new Set(t)];}function e3(e,t,r=null){return e2(t)&&"linux"===process.platform&&null!==r&&e in sk?function(e,t){let r=e[0],n=Object.keys(t).map(e=>parseInt(e,10)).sort((e,t)=>t-e).find(e=>r>=e);return void 0===n?"":t[n];}(r,sk[e]):e2(t)&&e in s$?s$[e]:"true"===t?"":t??"";}function e2(e){return"true"===e||void 0===e;}async function e4(){var e,t;if("linux"!==process.platform)return[];let r=await(e="lsb_release",t=["-a"],new Promise((r,n)=>{ru.execFile(e,t,{encoding:"utf8",shell:!1},(i,o,a)=>{if(i){if("errno"in i&&"ENOENT"===i.code){r(null);return;}n(Error(`Could not execute \`${e} ${t.join(" ")}\`: ${i} (stderr=${a})`));return;}r(o);});}));if(null===r)return[];let n=null,i=null,o=!1;for(let e of r.split("\n")){let t=e.match(/^Distributor ID:\s*(.+)$/);if(null!==t){if("Ubuntu"!==t[1])return[];o=!0;}let r=e.match(/^Description:\s*Ubuntu\s+(\d+)\.(\d+)(?:\.(\d+))?/);r&&(n=r);let a=e.match(/^Release:\s*(\d+)\.(\d+)(?:\.(\d+))?$/);if(a&&(i=a),o&&n&&i)break;}if(!o)return[];for(let e of[n,i])if(e){let t=[e[1],e[2]];return e[3]&&t.push(e[3]),t.map(e=>parseInt(e,10));}return[];}async function e5(){try{if(!ec())return null;{try{null===p(rP).sync("lsb_release",{nothrow:!0})&&(await H([{name:"lsb-release"}]));}catch{return e6();}let e=await(0,nJ.getUbuntuVersion)();if(0===e.length)return e6();return e;}}catch(e){return(0,rA.warning)(e.toString()),null;}}function e6(){let e=p(n7).version().split("."),t=parseInt(e[0].replace("#",""),10);return[t,parseInt(e[1].replace("~",""),10),parseInt(e[2].split("-")[0],10)];}async function e8(e,t,r={}){return e9(await s3(),e,t,r);}async function e9(e,t,r,n={}){let{usePipx:i=!0,user:o=!0,upgrade:a=!1,isLibrary:s=!1}=n,l=i&&!s&&(await e7(e)),u=l?"pipx":"pip";if(await tn(e,t))try{(0,nw.info)(`Installing ${t} ${r??""} via ${u}`);let n=void 0!==r&&""!==r?`${t}==${r}`:t,i=process.env;l&&o&&(i.PIPX_HOME=await s0(),i.PIPX_BIN_DIR=await s1()),S(e,["-m",u,...(a?l?["upgrade"]:["install","--upgrade"]:["install"]),...(!l&&o?["--user"]:[]),n],{stdio:"inherit",env:i});}catch(e){if((0,nw.info)(`Failed to install ${t} via ${u}: ${e}.`),(await to(t))===null)throw Error(`Failed to install ${t} via ${u}: ${e}.`);}else if((await to(t))===null)throw Error(`Failed to install ${t} as it was not found via ${u} or the system package manager`);let c=await sU(e),p=await ti(c,t);return await F(p),{binDir:p};}async function e7(e){return 0===(await D(e,["-m","pipx","--help"],{stdio:"ignore",reject:!1})).exitCode;}async function te(){let e=process.env.PIPX_HOME;if(void 0!==e)return e;let t=C("~/.local/pipx");if(await(0,nD.pathExists)(t))return t;switch(process.platform){case"win32":e=C("~/AppData/Local/pipx");break;case"darwin":e=C("~/Library/Application Support/pipx");break;default:e=C("~/.local/share/pipx");}return await sZ(e),await sZ((0,nN.join)(e,"trash")),await sZ((0,nN.join)(e,"shared")),await sZ((0,nN.join)(e,"venv")),e;}async function tt(){if(void 0!==process.env.PIPX_BIN_DIR)return process.env.PIPX_BIN_DIR;let e=C("~/.local/bin");return await F(e),await sZ(e),e;}async function tr(){let e=(await eG(e3("python",void 0,await sM()),"",process.arch)).bin;if(void 0===e)throw Error("Python binary was not found");return e;}async function tn(e,t){return 0===(await D(e,["-m","pip","-qq","index","versions",t],{stdio:"ignore",reject:!1})).exitCode;}async function ti(e,t){let r=(await Promise.all(e.map(e=>(0,nD.pathExists)((0,nN.join)(e,(0,nN.addExeExt)(t)))))).findIndex(e=>e);if(-1!==r)return e[r];let n=p(rP).sync((0,nN.addExeExt)(t),{nothrow:!0});return null!==n?(0,nN.dirname)(n):e[e.length-1];}function to(e,t=!0){if("linux"===process.platform){if((0,nw.info)(`Installing ${e} via the system package manager`),ea())return ed(t?"python-"+e:e);if(es())return el([{name:t?"python3-"+e:e}]);if(ec())return H([{name:t?"python3-"+e:e}]);}return null;}async function ta(e,t,r){switch(process.platform){case"win32":return await eo("cppcheck",e),{binDir:await ts()};case"darwin":return en("cppcheck",e);case"linux":if(ea())return ed("cppcheck",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"cppcheck",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function ts(){let e="C:/Program Files/Cppcheck";return await F(e),e;}async function tl(e,t,r){switch(process.platform){case"win32":return await eo("graphviz",e),tu();case"darwin":return en("graphviz",e);case"linux":if(ea())return ed("graphviz",e);if(es())return el([{name:"graphviz",version:e}]);if(ec())return H([{name:"graphviz",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function tu(){if("win32"===process.platform){let e="C:/Program Files/Graphviz/bin";return await F(e),{binDir:e};}throw Error("Unsupported platform");}function tc(e){let t=null,r=null,n=[],i=new nQ({locator:{},errorHandler:{warning(e){},error(e){n.push(e);},fatalError(e){n.push(e);}}}).parseFromString(e,"text/xml");if(n.length)throw Error("XML decode error: "+n[0]);let{childNodes:o}=i,a=i.documentElement||null;for(let e=0,n=o.length;n>e;e++){let n=o[e];if(n===a)break;let i=n.toString();/^<\?xml[^>]*\?>$/.test(i)&&(t=i),/^]*>$/.test(i)&&(r=i);}if(!a)throw Error("XML decode error: No document element");return{declaration:t,doctype:r,documentElement:a};}function tp(e){let{childNodes:t}=e,r=[];for(let n=0,i=t.length;i>n;n++){let i=t[n];if("tagName"in i){r.push(i);continue;}let{nodeValue:o}=i;if(o&&!/^\s*$/.test(o))throw Error("Found text children of: "+e.tagName);}return r;}function td(e){let{childNodes:t}=e,r=null;for(let n=0,i=t.length;i>n;n++){if(n)throw Error("Multiple child elements in: "+e.tagName);let i=t[n];if(!("tagName"in i)&&"data"in i&&"nodeValue"in i)r=i;else throw Error("Unexpected child element in: "+e.tagName);}return r;}function tf(e,t){if(e.tagName!==t)throw Error("Unexpected tagName: "+t);}function th(e){let t=e.length,r="";for(let n=0;t>n;){let i=e[n++],o=t>n?e[n++]:null,a=t>n?e[n++]:null,s=i<<16|(o||0)<<8|(a||0);r+=s6[s>>18]+s6[s>>12&s5]+s6[null===o?64:s>>6&s5]+s6[null===a?64:s&s5];}return r;}function tm(e){if("number"==typeof e&&!Number.isInteger(e))throw Error("Value not an integer: "+e);}async function tg(e,t){let r=new lu(),{devices:n,eject:i}=await r.attach(e),o=n[0];await R("cp",["-R",`${o.mountPoint}/`,t]),await i();}function tv(e,t,r){switch(t){case"linux":{let t="doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:nI.extractTar,url:`https://www.doxygen.nl/files/${t}.linux.bin.tar.gz`};}case"win32":{let t="doxygen-"+e;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:eO,url:`https://www.doxygen.nl/files/${t}.windows.x64.bin.zip`};}case"darwin":{let t="Doxygen-"+e;return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("doxygen"),extractedFolderName:t,extractFunction:tg,url:`https://doxygen.nl/files/${t}.dmg`};}default:throw Error(`Unsupported platform '${t}'`);}}async function tE(e,t,r){switch(process.platform){case"win32":{await p(nG)(()=>eo("doxygen.install",e),{name:"doxygen.install",max:4,backoffBase:2e3,report:e=>(0,rA.info)(e)});let t=await ty();return await tl(e3("graphviz",void 0),"",r),{binDir:t};}case"darwin":{let n;try{n=await eS("doxygen",e,tv,t,r);}catch{n=await en("doxygen",void 0);}return s4()[0]>11&&(await tl(e3("graphviz",void 0),"",r)),n;}case"linux":{let n;if(""===e||ea()||es()){if(ea())n=await ed("doxygen",e);else if(es())return el([{name:"doxygen",version:e}]);else if(ec())n=await H([{name:"doxygen",version:e}]);else throw Error("Unsupported linux distributions");}else if(ec())try{n=await eS("doxygen",e,tv,t,r);try{await H([{name:"libclang-cpp9"}]);}catch(e){(0,rA.info)("Failed to download libclang-cpp9 that might be needed for running doxygen. "+e);}}catch(e){(0,rA.notice)(`Failed to download doxygen binary. ${e}. Falling back to apt-get.`),n=await H([{name:"doxygen"}]);}else throw Error("Unsupported linux distributions");return await tl(e3("graphviz",void 0,await sM()),"",r),n;}default:throw Error("Unsupported platform");}}async function ty(){if("win32"===process.platform){for(let e of["C:/ProgramData/chocolatey/bin","C:/Program Files/doxygen/bin","C:/Program Files (x86)/doxygen"])if(await(0,nD.pathExists)((0,nN.join)(e,"doxygen.exe")))return await F(e),e;throw Error("Failed to find doxygen binary");}throw Error("Unsupported platform");}async function tw(){if("darwin"===process.platform)try{let e=await(0,nP.getExecOutput)("xcrun --sdk macosx --show-sdk-path"),t=e.stdout||e.stderr;t?await M("SDKROOT",t.trim()):(0,rA.error)("SDKROOT not set");}catch(e){(0,rA.error)(e);}}function tb(e,t,r){if("win32"===t){let t=lc[e];if(void 0===t)throw Error(`mingw version ${e} is not supported`);return{binRelativeDir:"bin/",binFileName:(0,nN.addExeExt)("g++"),extractedFolderName:"mingw64",extractFunction:eN,url:`https://github.com/brechtsanders/winlibs_mingw/releases/download/${t.releaseName}/winlibs-${"ia32"===r?"i686":"x86_64"}-posix-seh-gcc-${t.fileSuffix}.7z`};}throw Error(`Unsupported platform '${t}'`);}async function tx(e,t,r,n=40){let i;switch(process.platform){case"win32":("arm"===r||"arm64"===r)&&(await eo("gcc-arm-embedded",e));try{i=await eS("g++",e,tb,t,r);}catch(t){(0,rA.info)(`Failed to download g++ binary. ${t}. Falling back to chocolatey.`),i=await tS(e,r);}break;case"darwin":i=await en("gcc",e);break;case"linux":"x64"===r?ea()?i=await ed("gcc",e):es()?i=await el([{name:"gcc",version:e},{name:"gcc-c++",version:e},{name:"libstdc++-devel"}]):ec()&&(i=await H([{name:"gcc",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]},{name:"g++",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])):((0,rA.info)(`Install g++-multilib because gcc for ${r} was requested`),ea()?await ed("gcc-multilib",e):ec()&&(await H([{name:"gcc-multilib",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}])));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==i)return await tT(e,i.binDir,n),i;}async function tD(e,t,r){let n;switch(process.platform){case"win32":case"darwin":return tx(e,t,r);case"linux":ea()?n=await ed("mingw-w64-gcc",e):es()?n=await el([{name:"mingw64-gcc",version:e}]):ec()&&(n=await H([{name:"mingw-w64",version:e,repositories:["ppa:ubuntu-toolchain-r/test"]}]));break;default:throw Error("Unsupported platform for "+r);}if(void 0!==n)return n;}async function tS(e,t){let r;if(await eo("mingw",e),"x64"===t&&(await(0,nD.pathExists)("C:/tools/mingw64/bin"))?(r="C:/tools/mingw64/bin",await F(r)):"ia32"===t&&(await(0,nD.pathExists)("C:/tools/mingw32/bin"))?(r="C:/tools/mingw32/bin",await F(r)):(await(0,nD.pathExists)(`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin/g++.exe`))&&(r=`${process.env.ChocolateyInstall??"C:/ProgramData/chocolatey"}/bin`),void 0!==r)return{binDir:r};}async function tT(e,t,r=40){let n=[];if("win32"===process.platform)n.push(M("CC",(0,nN.addExeExt)(`${t}/gcc`)),M("CXX",(0,nN.addExeExt)(`${t}/g++`)));else{let i=p(n0)(p(nB)(e)??e);i>=5?(n.push(M("CC",`${t}/gcc-${i}`),M("CXX",`${t}/g++-${i}`)),ec()&&n.push(Z("cc",`${t}/gcc-${i}`,r),Z("cxx",`${t}/g++-${i}`,r),Z("gcc",`${t}/gcc-${i}`,r),Z("g++",`${t}/g++-${i}`,r))):(n.push(M("CC",`${t}/gcc-${e}`),M("CXX",`${t}/g++-${e}`)),ec()&&n.push(Z("cc",`${t}/gcc-${e}`,r),Z("cxx",`${t}/g++-${e}`,r),Z("gcc",`${t}/gcc-${e}`,r),Z("g++",`${t}/g++-${e}`,r)));}n.push(tw()),rO.GITHUB_ACTIONS&&(await tN()),await Promise.all(n);}async function tN(){let e=(0,nN.join)(n1,"gcc_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rA.warning)("the gcc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}function tR(e,t,r){let n=function(e){switch(e){case"win32":return"win";case"darwin":return"mac";case"linux":return"linux";default:throw Error(`Unsupported platform '${e}'`);}}(t);return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("ninja"),extractedFolderName:"",extractFunction:eO,url:`https://github.com/ninja-build/ninja/releases/download/v${e}/ninja-${n}.zip`};}function tI(e,t,r){return eS("ninja",e,tR,t,r);}function tO(e){return{url:`https://github.com/SimonKagstrom/kcov/releases/download/${e}/kcov-amd64.tar.gz`,extractedFolderName:"",binRelativeDir:"usr/local/bin",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:eA};}function tA(e){return{url:`https://github.com/SimonKagstrom/kcov/archive/refs/tags/${e}.tar.gz`,extractedFolderName:"",binRelativeDir:"build/src",binFileName:(0,nN.addExeExt)("kcov"),extractFunction:tC};}async function tC(e,t){let r=await eA(e,t,["--strip-components=1"]),n=await t_();"linux"===process.platform&&(ea()?await Promise.all([ed("libdwarf"),ed("libcurl-openssl")]):es()?await el([{name:"libdwarf-devel"},{name:"libcurl-devel"}]):ec()&&(await H([{name:"libdw-dev"},{name:"libcurl4-openssl-dev"}])));try{if(null!==p(rP).sync("patch",{nothrow:!0})){let e=(0,nN.join)(n3,"gcc13.patch");await D("patch",["-N","-p1","-i",e],{cwd:r,stdio:"inherit"});}else(0,rA.info)("`patch` not found, skipping gcc13.patch, kcov may not build on gcc 13");}catch{}let i=(0,nN.join)(r,"build");return await D(n,["-S",r,"-B",i,"-DCMAKE_BUILD_TYPE=Release","-G","Ninja"],{cwd:r,stdio:"inherit"}),await D(n,["--build",i,"--config","Release"],{cwd:r,stdio:"inherit"}),r;}async function t_(){let e=p(rP).sync("cmake",{nothrow:!0});if(null===e){let{binDir:t}=await e_(e3("cmake",void 0,await sM()),(0,nN.join)(C("~"),"cmake"),"");e=(0,nN.join)(t,"cmake");}return null===p(rP).sync("ninja",{nothrow:!0})&&(await tI(e3("ninja",void 0,await sM()),(0,nN.join)(C("~"),"ninja"),"")),e;}async function tL(e,t,r){var n;let i;if("linux"!==process.platform){(0,rA.info)("Kcov is not supported on non-linux");return;}let o=e.split("-"),a=(n=o[0]).match(/^v/)?n:"v"+n,s=o[1],l=parseInt(a.replace(/^v/,""),10);return 38===l&&(a="v38"),"binary"===s&&l>=39?(i=await eS("kcov",a,tO,t,r),ea()?await ed("binutils"):es()?await el([{name:"binutils"}]):ec()&&(await H([{name:"libbinutils"}]))):i=await eS("kcov",a,tA,t,r),i;}function t$(e){if(Object.values(lm).includes(e));else if(e in lm)return lm[e];return e;}function tP(e){let t;let r=t$(e);if(r){let e=r.split(".")[0]+".9";t=`-version "${r},${e}"`;}else t="-latest";let n=function(e,t){try{return ru.execSync(`vswhere -products * ${t} -prerelease -property installationPath`).toString().trim()+"\\"+e;}catch(e){nw.warning("vswhere failed: "+e);}return null;}("VC\\Auxiliary\\Build\\vcvarsall.bat",t);if(n&&it.existsSync(n))return nw.info("Found with vswhere: "+n),n;nw.info("Not found with vswhere");let i=e?[function(e){if(Object.keys(lm).includes(e));else for(let[t,r]of Object.entries(lm))if(r===e)return t;return e;}(e)]:lh;for(let e of ld)for(let t of i)for(let r of lf)if(n=`${e}\\Microsoft Visual Studio\\${t}\\${r}\\VC\\Auxiliary\\Build\\vcvarsall.bat`,nw.info("Trying standard location: "+n),it.existsSync(n))return nw.info("Found standard location: "+n),n;if(nw.info("Not found in standard locations"),n=`${lp}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`,it.existsSync(n))return nw.info("Found VS 2015: "+n),n;throw nw.info("Not found in VS 2015 location: "+n),Error("Microsoft Visual Studio not found");}async function tk(e,t,r,n,i,o,a){void 0!==t&&(await(0,nD.pathExists)(t))&&((0,rA.info)(`Adding ${t} to PATH`),await M("VCTargetsPath",t)),n5(function(e){switch(e){case"x32":case"32":case"ia32":return"x86";case"64":return"x64";default:return e;}}(r),i,n,o,a,e);}async function tU(e,t,r,n,i,o,a,s=lb){(0,nw.startGroup)(`Installing ${e} ${t}`);let l=!1;try{l=await function(e,t){let r;let{milliseconds:n,fallback:i,message:o,customTimers:a={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t,s=new Promise((s,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:e}=t;e.aborted&&l(lw(e)),e.addEventListener("abort",()=>{l(lw(e));});}if(n===Number.POSITIVE_INFINITY){e.then(s,l);return;}let u=new lv();r=a.setTimeout.call(void 0,()=>{if(i){try{s(i());}catch(e){l(e);}return;}"function"==typeof e.cancel&&e.cancel(),!1===o?s():o instanceof Error?l(o):(u.message=o??`Promise timed out after ${n} milliseconds`,l(u));},n),(async()=>{try{s(await e);}catch(e){l(e);}})();}).finally(()=>{s.clear();});return s.clear=()=>{a.clearTimeout.call(void 0,r),r=void 0;},s;}(tM(e,t,r,n,l,i,o),{milliseconds:s,message:`Timeout while installing ${e} ${t}. You can increase the timeout from options`});}catch(t){(0,rA.error)(t),a.push(`${e} failed to install`);}return(0,nw.endGroup)(),l;}async function tM(e,t,r,n,i,o,a){let s;if("vcvarsall"===e)await tk(e3(e,t,r),void 0,n,void 0,void 0,!1,!1);else{let a=lP[e];i=["llvm","clangformat","clangtidy"].includes(e);let l=(0,nN.join)(o,i?"llvm":e);s=await a(e3(e,t,r),l,n);}return a.push(t7(e,s)),i;}async function tF(e,t=0){let r="/usr/lib/llvm-"+e;await H([{name:"curl"}]),await D("curl",["-LJO","https://apt.llvm.org/llvm.sh"],{cwd:"/tmp"});let n=await tj("/tmp/llvm.sh","/tmp/llvm-setup-cpp.sh",e,t);return await H(n),await lS("/tmp/llvm-setup-cpp.sh","755"),await R("bash",["/tmp/llvm-setup-cpp.sh",""+e,...(0===t?["all"]:[])],{stdio:"inherit",shell:!0,timeout:lb}),await F(`${r}/bin`),{installDir:""+r,binDir:`${r}/bin`,bin:`${r}/bin/clang++`};}async function tj(e,t,r,n){var i,o,a,s,l;let u=await lx(e,"utf-8");return o=n,a=u=(i=u,u=process.env.NODE_DEBUG?i:i.replace(/set -eux/g,"set -eu")).replace(/add-apt-repository "\${REPO_NAME}"/g,'add-apt-repository -y "${REPO_NAME}"'),s=r,u=1===o?a.replace(/ -y \$PKG/g," -y clang-format-"+s):a,l=u=await tq(u),u=z()?l.replace(/apt-get/g,"nala"):l,await lD(t,u),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tq(e){let t=e.replace(/apt-get install -y/g,'apt-get install -o Dpkg::Options::="--force-overwrite" -y --fix-broken');return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await ee(r))&&((0,rD.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tB(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tG(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tH(e){let t;if(lN.has(e))return null;let r="LLVM-",n=p(nq)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=p(nq)(e,"9.0.1"),o=!1;return i&&(t=tG(e,r,n),(await nW(t))||(o=!0)),(o||!i)&&(t=tB(e,r,n)),t;}function tV(e,t){switch(e){case"darwin":return function(e){if(lR.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return p(nq)(e,"9.0.1")?tG(e,r,n):tB(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=lI.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!lT.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eM(lT,e)[0];}else""!==n&&n in lO?t=lO[n]:(t=lO[lA],(0,rA.warning)(`Falling back to LLVM version ${lA} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,p(nq)(n,"9.0.1"))?tG(n,o,r):tB(n,o,r);}(t);case"win32":return tH(t);default:return null;}}async function tX(e,t,r){let[n,i]=await eF(lT,t,e,tV);return(0,rA.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,nN.addExeExt)("clang"),extractFunction:"win32"===t?eI:(e,t)=>eA(e,t,["--strip-components=1"])};}async function tz(e,t,r){let n=await lC(e,t,r);return await tQ(n.installDir??t),n;}async function tW(e,t,r){let[n,i,o]=await Promise.all([tK(e,t,r),lL(r),tZ()]);return n;}async function tK(e,t,r,n=n6.All){let i=parseInt(function(e){if(null===p(nY)(e))try{let t=p(nB)(e);if(null!==t)return(0,rA.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(ec())return await tF(i,n);}catch(e){(0,rA.info)("Failed to install llvm via system package manager "+e);}let o=await eS("llvm",e,tX,t,r);return await l_(i),o;}async function tY(e){ec()&&(e<=10?await H([{name:"libtinfo5"}]):await H([{name:"libtinfo-dev"}]));}async function tJ(e){"linux"===process.platform&&(await tx(e3("gcc",void 0,await sM()),"",e,40));}async function tQ(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[M("LLVM_PATH",e),M("LD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${t}`),M("DYLD_LIBRARY_PATH",`${e}/lib${ie.delimiter}${r}`),M("LDFLAGS",`-L"${e}/lib"`),M("CPPFLAGS",`-I"${e}/include"`),M("CC",(0,nN.addExeExt)(`${e}/bin/clang`)),M("CXX",(0,nN.addExeExt)(`${e}/bin/clang++`)),M("LIBRARY_PATH",`${e}/lib`),tw()];ec()&&n.push(Z("cc",`${e}/bin/clang`,60),Z("cxx",`${e}/bin/clang++`,60),Z("clang",`${e}/bin/clang`),Z("clang++",`${e}/bin/clang++`),Z("lld",`${e}/bin/lld`),Z("ld.lld",`${e}/bin/ld.lld`),Z("llvm-ar",`${e}/bin/llvm-ar`)),await Promise.all(n);}async function tZ(){if(rO.GITHUB_ACTIONS){let e=(0,nN.join)(n8,"llvm_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rA.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}}async function t0(e,t,r){switch(process.platform){case"win32":return eo("make",e);case"darwin":return await en("make",e),await F("/usr/local/opt/make/libexec/gnubin"),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(ea())return ed("make",e);if(es())return el([{name:"make",version:e}]);if(ec())return H([{name:"make",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}async function t1(e,t,r,n,i,o){let a,s;if("win32"!==process.platform)return;let l=n2(e);(0,rA.info)(`Checking if MSVC ${l} is already installed`);let u=!1;try{let e=n4(l);u=!0,(0,rA.info)("Found the pre-installed version of MSVC at "+e);}catch{}if(!u)try{"14.0"===l?(a="14.0",await eo("visualcpp-build-tools","14.0.25420.1",["--ignore-dependencies"]),s="C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140"):"15.0"===l?(a="14.16",await eo("visualstudio2017buildtools","15.9.41.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16"):"16.0"===l?(a="14.29",await eo("visualstudio2019buildtools","16.11.7.0",[]),s="C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133"):"17.0"===l?(a=void 0,await eo("visualstudio2022buildtools","117.0.5.0",[]),s=void 0):(0,rA.error)(`The given MSVC versions ${e} is not supported yet.`);}catch(e){(0,rA.error)(e);}await tk(l,s,r,a,n,i,o),rO.GITHUB_ACTIONS&&(await t3());}async function t3(){let e=(0,nN.join)(n9,"msvc_matcher.json");if(!(await(0,nD.pathExists)(e)))return(0,rA.warning)("the msvc_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rA.info)("::add-matcher::"+e);}async function t2(e,t,r){if(!ec())return;if("string"==typeof a)return{binDir:a};let n=p(rP).sync("nala",{nothrow:!0});if(null!==n)return{binDir:a=(0,nN.dirname)(n)};let i=await Q("volian-archive-scar-unstable.gpg","https://deb.volian.org/volian/scar.key");N("/bin/bash",["-c",`echo "deb [signed-by=${i}] http://deb.volian.org/volian/ scar main" | tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list`]);try{"legacy"!==e?await H([{name:"nala"}],!0):await H([{name:"nala-legacy"}],!0);}catch(e){await H([{name:"nala-legacy"}],!0);}return{binDir:a="/usr/bin"};}async function t4(e,t,r){if("win32"===process.platform)return await eo("opencppcoverage",e),{binDir:await t5()};}async function t5(){let e="C:/Program Files/OpenCppCoverage";return await F(e),e;}async function t6(e,t,r){switch(process.platform){case"win32":{await eo("powershell-core",e);let t="C:/Program Files/PowerShell/7";return await F(t),{binDir:t};}case"darwin":return en("powershell",e,["--cask"]);case"linux":if(ea())return ed("powershell-bin",e,"yay");if(es())return el([{name:"curl"}]),N("/bin/bash",["-c","curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo"]),el([{name:"powershell",version:e}]);if(ec()){await H([{name:"curl"}]);let t=await sM(),r=`${t[0]}.0${t[1]}`;return N("curl",["-LJO",`https://packages.microsoft.com/config/ubuntu/${r}/packages-microsoft-prod.deb`]),N("dpkg",["-i","packages-microsoft-prod.deb"]),H([{name:"powershell",version:e}],!0);}throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}}function t8(e,t,r){var n;let i="win32"===(n=t)?"windows":n,o=function(e){switch(e){case"x64":return"amd64";case"ia32":case"x86":case"i386":case"x32":return"386";default:return e;}}(r),a="win32"===t;return{binRelativeDir:"",binFileName:(0,nN.addExeExt)("task"),extractedFolderName:"",extractFunction:a?eO:eA,url:`https://github.com/go-task/task/releases/download/v${e}/task_${i}_${o}.${a?"zip":"tar.gz"}`};}async function t9(e,t,r){return l$&&null!==p(rP).sync("vcpkg",{nothrow:!0})?{binDir:(0,nN.dirname)(p(rP).sync("vcpkg"))}:("linux"===process.platform&&(ea()?await Promise.all([ed("curl"),ed("zip"),ed("unzip"),ed("tar"),ed("git"),ed("pkg-config")]):es()?await el([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]):ec()&&(await H([{name:"curl"},{name:"zip"},{name:"unzip"},{name:"tar"},{name:"git"},{name:"pkg-config"}]))),(await(0,nD.pathExists)((0,nN.join)(t,(0,nN.addShExt)("bootstrap-vcpkg",".bat"))))?(0,rA.notice)(`Vcpkg folder already exists at ${t}. This might mean that ~/vcpkg is restored from the cache.`):S("git",["clone","https://github.com/microsoft/vcpkg"],{cwd:(0,nN.dirname)(t),stdio:"inherit"}),S((0,nN.addShExt)((0,nN.addShRelativePrefix)("bootstrap-vcpkg"),".bat"),{cwd:t,shell:!0,stdio:"inherit"}),await A(t),await F(t),l$=!0,{binDir:t});}function t7(e,t){let r=`\u{2705} ${e} was installed successfully:`;return void 0===t||("installDir"in t&&(r+="\n- The installation directory is "+t.installDir),""!==t.binDir&&(r+="\n- The binary directory is "+t.binDir)),r;}async function re(e,t,r,n,i,o,a){try{let{compiler:s,version:l}=function(e){let t=e.split("-"),r=t[0];if(1 in t){let e=t[1];return null!==p(nY)(e)||(0,rA.info)(`Invalid semver version ${e} used for the compiler.`),{compiler:r,version:e};}return{compiler:r,version:void 0};}(e);switch((0,nw.startGroup)(`Installing ${s} ${l??""}`),s){case"llvm":case"clang":case"clang++":{let e=await tz(e3("llvm",l,t),(0,ie.join)(r,"llvm"),n);await M("GCOV","llvm-cov gcov"),i.push(t7("llvm",e));break;}case"gcc":case"mingw":case"cygwin":case"msys":{let e="mingw"===s?e3("mingw",l,t):e3("gcc",l,t),a="mingw"===s?await tD(e,(0,ie.join)(r,"gcc"),n):await tx(e,(0,ie.join)(r,"gcc"),n);o&&(await M("CPPFLAGS","")),await function(e){let t=p(nY)(e),r=null!==t?p(n0)(t):e;return M("GCOV",""!==r?"gcov-"+r:"gcov");}(e),i.push(t7("gcc",a));break;}case"cl":case"msvc":case"msbuild":case"vs":case"visualstudio":case"visualcpp":case"visualc++":{let e=await t1(e3("msvc",l,t),(0,ie.join)(r,"msvc"),n);o&&(await M("CPPFLAGS","")),i.push(t7("msvc",e));break;}case"appleclang":case"applellvm":(0,nw.notice)("Assuming apple-clang is already installed"),await Promise.all([M("CC","clang"),M("CXX","clang++")]),i.push(t7("apple-clang",void 0));break;default:a.push("Unsupported compiler "+s);}}catch(t){(0,rA.error)(t),a.push("Failed to install the "+e);}(0,nw.endGroup)();}async function rt(e){let t,r,n=Promise.resolve();rO.GITHUB_ACTIONS||(n=$(),process.env.ACTIONS_ALLOW_UNSECURE_COMMANDS="true");let i=function(e,t){t=t||{};var r,n,i,o,a,s={_:[]},l=0,u=0,c=0,p=(e=e||[]).length;let d=void 0!==t.alias,f=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=P(t.string),t.boolean=P(t.boolean),d)for(r in t.alias)for(l=0,n=t.alias[r]=P(t.alias[r]);l0;)for(u=(n=t.alias[t.boolean[l]]||[]).length;u-->0;)t.boolean.push(n[u]);for(l=t.string.length;l-->0;)for(u=(n=t.alias[t.string[l]]||[]).length;u-->0;)t.string.push(n[u]);if(h){for(r in t.default)if(o=typeof t.default[r],n=t.alias[r]=t.alias[r]||[],void 0!==t[o])for(t[o].push(r),l=0;ll;l++){if("--"===(i=e[l])){s._=s._.concat(e.slice(++l));break;}for(u=0;u0;)s[n.shift()]=s[r];return s;}(e,{string:[...lU,"timeout"],default:Object.fromEntries(lU.map(e=>[e,function(e){let t=(0,nw.getInput)(e.toLowerCase());if("false"!==t&&""!==t)return t;}(e)])),alias:{h:"help"},boolean:"help"});i.help&&((0,rA.info)(` setup-cpp [options] setup-cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true @@ -25,15 +25,15 @@ Install all the tools required for building and testing C++/C projects. --$tool_name pass "true" or pass the you would like to install for this tool. e.g. --conan true or --conan "1.42.1" All the available tools: -`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let o=i.architecture??process.arch,a=process.env.SETUP_CPP_DIR??C("~"),s=[],l=[],u=rL.create({autoloadLocales:!0});rL.addLocale(p(r$)),rC.addLocale(p(r_));let c=await s$();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(i,["llvm","clangtidy","clangformat"]))return(0,rA.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rA.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let d=!1,f=!1;for(let e of l_){if(rO.isCI&&0!==l.length){f=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),d=await tU(e,n,c,o,a,s,l,6e4*parseFloat(i.timeout??"20")),r=Date.now(),(0,rA.info)("took "+(u.format(t,r)||"0 seconds")));}if(!f){let e=i.compiler;if(void 0!==e){let t=Date.now();await re(e,c,a,o,s,d,l);let r=Date.now();(0,rA.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await G(),0===s.length&&0===l.length)return(0,rA.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(s.forEach(e=>(0,rA.success)(e)),l.forEach(e=>(0,rA.error)(e)),(0,rA.info)("setup-cpp finished"),!rO.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rA.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rA.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await n,0===l.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,ry,rw,rb,rx,rD,rS,rT,rN,rR,rI,rO,rA,rC,r_,rL,r$,rP,rk,rU,rM,rF,rj,rq,rB,rG,rH,rV,rX,rz,rW,rK,rY,rJ,rQ,rZ,r0,r1,r3,r2,r4,r5,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,ny,nw,nb,nx,nD,nS,nT,nN,nR,nI,nO,nA,nC,n_,nL,n$,nP,nk,nU,nM,nF,nj,nq,nB,nG,nH,nV,nX,nz,nW,nK,nY,nJ,nQ,nZ,n0,n1,n3,n2,n4,n5=require("os"),n6=require("path"),n8=require("fs"),n9=require("crypto"),n7=require("http"),ie=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),ry=require("stream"),rw=require("util"),rb=require("process"),rx=require("url"),rD=require("console"),rT={},rN={},null==(rR=(rS=globalThis).parcelRequire810d)&&((rR=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rS.parcelRequire810d=rR),(rI=rR.register)("52cQ1",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rR("jgqtC");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rI("jgqtC",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rI("ER74K",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rR("4t50X"),n=rR("52cQ1");}),rI("4t50X",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rR("dIPEE"),s=rR("aSbHp"),l=rR("i0ItD");let E=i(n5),y=i(n6);u=rR("6dNYa"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${y.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} -Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rR("dTpO2"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rR("dTpO2"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rR("azKnO"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rI("dIPEE",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n5);o=rR("i0ItD"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rI("i0ItD",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rI("aSbHp",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(n8),l=i(n5);o=rR("e3G3w"),a=rR("i0ItD"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rI("e3G3w",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rR("kDGEy"),n=rR("2ckr2"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rI("kDGEy",function(e,t){function r(){return i>n.length-16&&(p(n9).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rI("2ckr2",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rR("9IL8W");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rI("9IL8W",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rR("hDU47"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rI("hDU47",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rI("6dNYa",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rR("a7JAS"),i=rR("3T6Pq"),o=rR("4t50X");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. +`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--cppcache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let o=i.architecture??process.arch,a=process.env.SETUP_CPP_DIR??C("~"),s=[],l=[],u=rL.create({autoloadLocales:!0});rL.addLocale(p(r$)),rC.addLocale(p(r_));let c=await sM();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!e2(e[t])),i=n.length>=1?e[n[0]]:"true";return!n.some(t=>e[t]!==i)&&(r.forEach(t=>{e[t]=i;}),!0);}(i,["llvm","clangtidy","clangformat"]))return(0,rA.error)("The same version must be used for llvm, clangformat and clangtidy"),1;ea()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rA.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await ed("python-pygments"));let d=!1,f=!1;for(let e of lk){if(rO.isCI&&0!==l.length){f=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),d=await tU(e,n,c,o,a,s,l,6e4*parseFloat(i.timeout??"20")),r=Date.now(),(0,rA.info)("took "+(u.format(t,r)||"0 seconds")));}if(!f){let e=i.compiler;if(void 0!==e){let t=Date.now();await re(e,c,a,o,s,d,l);let r=Date.now();(0,rA.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await G(),0===s.length&&0===l.length)return(0,rA.warning)("setup-cpp was called without any arguments. Nothing to do."),0;if(s.forEach(e=>(0,rA.success)(e)),l.forEach(e=>(0,rA.error)(e)),(0,rA.info)("setup-cpp finished"),!rO.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rA.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rA.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await n,0===l.length?0:1;}var rr,rn,ri,ro,ra,rs,rl,ru,rc,rp,rd,rf,rh,rm,rg,rv,rE,ry,rw,rb,rx,rD,rS,rT,rN,rR,rI,rO,rA,rC,r_,rL,r$,rP,rk,rU,rM,rF,rj,rq,rB,rG,rH,rV,rX,rz,rW,rK,rY,rJ,rQ,rZ,r0,r1,r3,r2,r4,r5,r6,r8,r9,r7,ne,nt,nr,nn,ni,no,na,ns,nl,nu,nc,np,nd,nf,nh,nm,ng,nv,nE,ny,nw,nb,nx,nD,nS,nT,nN,nR,nI,nO,nA,nC,n_,nL,n$,nP,nk,nU,nM,nF,nj,nq,nB,nG,nH,nV,nX,nz,nW,nK,nY,nJ,nQ,nZ,n0,n1,n3,n2,n4,n5,n6,n8,n9,n7=require("os"),ie=require("path"),it=require("fs"),ir=require("crypto"),ii=require("http"),io=require("https");require("net"),ri=require("tls"),ro=require("events"),ra=require("assert"),rs=require("util"),rl=require("fs"),ru=require("child_process"),rc=require("string_decoder"),rp=require("timers"),rd=require("buffer"),rf=require("path"),rh=require("child_process"),rm=require("process"),rg=require("url"),rv=require("os"),rE=require("buffer"),ry=require("stream"),rw=require("util"),rb=require("process"),rx=require("url"),rD=require("console"),rT={},rN={},null==(rR=(rS=globalThis).parcelRequire810d)&&((rR=function(e){if(e in rT)return rT[e].exports;if(e in rN){var t=rN[e];delete rN[e];var r={id:e,exports:{}};return rT[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rN[e]=t;},rS.parcelRequire810d=rR),(rI=rR.register)("52cQ1",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rR("jgqtC");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.exports.isPR=t.pr.env in i&&i[t.pr.env]!==t.pr.ne:"any"in t.pr?e.exports.isPR=t.pr.any.some(function(e){return!!i[e];}):e.exports.isPR=n(t.pr);break;default:e.exports.isPR=null;}}),e.exports.isCI=!!("false"!==i.CI&&(i.BUILD_ID||i.BUILD_NUMBER||i.CI||i.CI_APP_ID||i.CI_BUILD_ID||i.CI_BUILD_NUMBER||i.CI_NAME||i.CONTINUOUS_INTEGRATION||i.RUN_ID||e.exports.name));}),rI("jgqtC",function(e,t){e.exports=JSON.parse('[{"name":"Agola CI","constant":"AGOLA","env":"AGOLA_GIT_REF","pr":"AGOLA_PULL_REQUEST_ID"},{"name":"Appcircle","constant":"APPCIRCLE","env":"AC_APPCIRCLE"},{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"TF_BUILD","pr":{"BUILD_REASON":"PullRequest"}},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"Codefresh","constant":"CODEFRESH","env":"CF_BUILD_ID","pr":{"any":["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{"name":"Codemagic","constant":"CODEMAGIC","env":"CM_BUILD_ID","pr":"CM_PULL_REQUEST"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"Earthly","constant":"EARTHLY","env":"EARTHLY_CI"},{"name":"Expo Application Services","constant":"EAS","env":"EAS_BUILD"},{"name":"Gerrit","constant":"GERRIT","env":"GERRIT_PROJECT"},{"name":"Gitea Actions","constant":"GITEA_ACTIONS","env":"GITEA_ACTIONS"},{"name":"GitHub Actions","constant":"GITHUB_ACTIONS","env":"GITHUB_ACTIONS","pr":{"GITHUB_EVENT_NAME":"pull_request"}},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI","pr":"CI_MERGE_REQUEST_ID"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Google Cloud Build","constant":"GOOGLE_CLOUD_BUILD","env":"BUILDER_OUTPUT"},{"name":"Harness CI","constant":"HARNESS","env":"HARNESS_BUILD_ID"},{"name":"Heroku","constant":"HEROKU","env":{"env":"NODE","includes":"/app/.heroku/node/bin/node"}},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"LayerCI","constant":"LAYERCI","env":"LAYERCI","pr":"LAYERCI_PULL_REQUEST"},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Nevercode","constant":"NEVERCODE","env":"NEVERCODE","pr":{"env":"NEVERCODE_PULL_REQUEST","ne":"false"}},{"name":"Prow","constant":"PROW","env":"PROW_JOB_ID"},{"name":"ReleaseHub","constant":"RELEASEHUB","env":"RELEASE_BUILD_ID"},{"name":"Render","constant":"RENDER","env":"RENDER","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Screwdriver","constant":"SCREWDRIVER","env":"SCREWDRIVER","pr":{"env":"SD_PULL_REQUEST","ne":"false"}},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Sourcehut","constant":"SOURCEHUT","env":{"CI_NAME":"sourcehut"}},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}},{"name":"Vela","constant":"VELA","env":"VELA","pr":{"VELA_PULL_REQUEST":"1"}},{"name":"Vercel","constant":"VERCEL","env":{"any":["NOW_BUILDER","VERCEL"]},"pr":"VERCEL_GIT_PULL_REQUEST_ID"},{"name":"Visual Studio App Center","constant":"APPCENTER","env":"APPCENTER_BUILD_ID"},{"name":"Woodpecker","constant":"WOODPECKER","env":{"CI":"woodpecker"},"pr":{"CI_BUILD_EVENT":"pull_request"}},{"name":"Xcode Cloud","constant":"XCODE_CLOUD","env":"CI_XCODE_PROJECT","pr":"CI_PULL_REQUEST_NUMBER"},{"name":"Xcode Server","constant":"XCODE_SERVER","env":"XCS"}]');}),rI("ER74K",function(e,t){var r,n;function i(e){return n.GITHUB_ACTIONS?r.error(e):console.log(`\x1b[31m${e}\x1b[0m`);}function o(e){return console.log(`\x1b[32m${e}\x1b[0m`);}function a(e){return n.GITHUB_ACTIONS?r.warning(e):console.log(`\x1b[33m${e}\x1b[0m`);}function s(e){return n.GITHUB_ACTIONS?r.notice(e):console.log(`\x1b[94m${e}\x1b[0m`);}function l(e){return n.GITHUB_ACTIONS?r.info(e):console.log(e);}c(e.exports,"error",()=>i),c(e.exports,"success",()=>o),c(e.exports,"warning",()=>a),c(e.exports,"notice",()=>s),c(e.exports,"info",()=>l),r=rR("4t50X"),n=rR("52cQ1");}),rI("4t50X",function(e,t){var r,n,i,o,a,s,l,u,c,p,d,f;function h(e,t){let r=process.env["INPUT_"+e.replace(/ /g,"_").toUpperCase()]||"";if(t&&t.required&&!r)throw Error("Input required and not supplied: "+e);return t&&!1===t.trimWhitespace?r:r.trim();}function m(e,t={}){a.issueCommand("error",l.toCommandProperties(t),e instanceof Error?e.toString():e);}function g(e){a.issue("group",e);}function v(){a.issue("endgroup");}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getIDToken=e.exports.getState=e.exports.saveState=e.exports.group=e.exports.endGroup=e.exports.startGroup=e.exports.info=e.exports.notice=e.exports.warning=e.exports.error=e.exports.debug=e.exports.isDebug=e.exports.setFailed=e.exports.setCommandEcho=e.exports.setOutput=e.exports.getBooleanInput=e.exports.getMultilineInput=e.exports.getInput=e.exports.addPath=e.exports.setSecret=e.exports.exportVariable=e.exports.ExitCode=void 0,a=rR("dIPEE"),s=rR("aSbHp"),l=rR("i0ItD");let E=i(n7),y=i(ie);u=rR("6dNYa"),(f=c=e.exports.ExitCode||(e.exports.ExitCode={}))[f.Success=0]="Success",f[f.Failure=1]="Failure",e.exports.exportVariable=function(e,t){let r=l.toCommandValue(t);if(process.env[e]=r,process.env.GITHUB_ENV)return s.issueFileCommand("ENV",s.prepareKeyValueMessage(e,t));a.issueCommand("set-env",{name:e},r);},e.exports.setSecret=function(e){a.issueCommand("add-mask",{},e);},e.exports.addPath=function(e){process.env.GITHUB_PATH?s.issueFileCommand("PATH",e):a.issueCommand("add-path",{},e),process.env.PATH=`${e}${y.delimiter}${process.env.PATH}`;},e.exports.getInput=h,e.exports.getMultilineInput=function(e,t){let r=h(e,t).split("\n").filter(e=>""!==e);return t&&!1===t.trimWhitespace?r:r.map(e=>e.trim());},e.exports.getBooleanInput=function(e,t){let r=h(e,t);if(["true","True","TRUE"].includes(r))return!0;if(["false","False","FALSE"].includes(r))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return s.issueFileCommand("OUTPUT",s.prepareKeyValueMessage(e,t));process.stdout.write(E.EOL),a.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){a.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=c.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){a.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){a.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){a.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+E.EOL);},e.exports.startGroup=g,e.exports.endGroup=v,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;g(e);try{r=yield t();}finally{v();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return s.issueFileCommand("STATE",s.prepareKeyValueMessage(e,t));a.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield u.OidcClient.getIDToken(e);});},p=rR("dTpO2"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rR("dTpO2"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),d=rR("azKnO"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return d.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return d.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return d.toPlatformPath;}});}),rI("dIPEE",function(e,t){var r,n,i,o;function a(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+s.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let s=i(n7);o=rR("i0ItD"),e.exports.issueCommand=a,e.exports.issue=function(e,t=""){a(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rI("i0ItD",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rI("aSbHp",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.prepareKeyValueMessage=e.exports.issueFileCommand=void 0;let s=i(it),l=i(n7);o=rR("e3G3w"),a=rR("i0ItD"),e.exports.issueFileCommand=function(e,t){let r=process.env["GITHUB_"+e];if(!r)throw Error("Unable to find environment variable for file command "+e);if(!s.existsSync(r))throw Error("Missing file at path: "+r);s.appendFileSync(r,`${a.toCommandValue(t)}${l.EOL}`,{encoding:"utf8"});},e.exports.prepareKeyValueMessage=function(e,t){let r="ghadelimiter_"+o.default(),n=a.toCommandValue(t);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(n.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${l.EOL}${n}${l.EOL}${r}`;};}),rI("e3G3w",function(e,t){var r,n,i;c(e.exports,"default",()=>i),r=rR("kDGEy"),n=rR("2ckr2"),i=function(e,t,i){let o=(e=e||{}).random||(e.rng||(0,r.default))();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=o[e];return t;}return(0,n.default)(o);};}),rI("kDGEy",function(e,t){function r(){return i>n.length-16&&(p(ir).randomFillSync(n),i=0),n.slice(i,i+=16);}c(e.exports,"default",()=>r);let n=new Uint8Array(256),i=n.length;}),rI("2ckr2",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rR("9IL8W");let i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).substr(1));n=function(e,t=0){let n=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n;};}),rI("9IL8W",function(e,t){var r,n;c(e.exports,"default",()=>n),r=rR("hDU47"),n=function(e){return"string"==typeof e&&(0,r.default).test(e);};}),rI("hDU47",function(e,t){c(e.exports,"default",()=>r);var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;}),rI("6dNYa",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.OidcClient=void 0;var n=rR("a7JAS"),i=rR("3T6Pq"),o=rR("4t50X");class a{static createHttpClient(e=!0,t=10){return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(a.getRequestToken())],{allowRetries:e,maxRetries:t});}static getRequestToken(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e;}static getIDTokenUrl(){let e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e;}static getCall(e){var t;return r(this,void 0,void 0,function*(){let r=a.createHttpClient(),n=null===(t=(yield r.getJson(e).catch(e=>{throw Error(`Failed to get ID Token. Error Code : ${e.statusCode} - Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rI("a7JAS",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(n7),d=i(ie),f=i(rR("8gh3V")),h=i(rR("7i1qo"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class y{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=y,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new y(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},w(this.requestOptions.headers),w(e||{})):w(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=w(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let w=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rI("8gh3V",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rI("7i1qo",function(e,t){e.exports=rR("fbmJm");}),rI("fbmJm",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||n7.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=n7.request,t;},n=function(e){var t=new l(e);return t.request=n7.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=ie.request,t;},o=function(e){var t=new l(e);return t.request=ie.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},a=s=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:function(){};}),rI("3T6Pq",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rI("dTpO2",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=n8.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,n8.constants.R_OK|n8.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n5.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rI("azKnO",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(n6);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rI("eCDnw",function(e,t){var r=n6.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rI("gMm9F",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rR("iWDmx"),i=rR("9xs9T");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){var t;let r=s[e.locale],n=e.unitTypeLookupOrder.slice();n.unshift(e.unitType),t=n;let i=null;if((n=Array.from(new Set(t))).some(function(e){if(void 0!==r[e])return i=r[e],!0;}),null===i)throw Error("Can not find any unit type data for locale: "+e.locale);return i;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rI("iWDmx",function(e,t){e.exports=rR("eCDnw");}),rI("9xs9T",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rI("bGwAu",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),m("COERCERTL",u[c.COERCE],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rI("3qgxS",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rI("3CqZ1",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rI("aMLnW",function(e,t){var r=rR("3CqZ1"),n=rR("3qgxS"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rR("9J5od"),s=a.safeRe,l=a.t,u=rR("6omBt"),c=rR("fx8Ft").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rI("6omBt",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rI("fx8Ft",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rI("UI3XL",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rI("l655J",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rI("jzJq8",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rI("b1nH1",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rI("inG4j",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rI("2aJGP",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).major;}),rI("h6Ixq",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).minor;}),rI("90ROK",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).patch;}),rI("8m4O1",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rI("3uysP",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rI("hYBTv",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(t,e,n);}),rI("ftcZo",function(e,t){var r=rR("3uysP");e.exports=(e,t)=>r(e,t,!0);}),rI("1CIrW",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rI("exBHN",function(e,t){var r=rR("1CIrW");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rI("lm1lq",function(e,t){var r=rR("1CIrW");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rI("cPjhN",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(e,t,n)>0;}),rI("avz3V",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0>r(e,t,n);}),rI("fXQFJ",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0===r(e,t,n);}),rI("bu0Ra",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0!==r(e,t,n);}),rI("9xdhv",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rI("8aNoG",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0>=r(e,t,n);}),rI("8gipG",function(e,t){var r=rR("fXQFJ"),n=rR("bu0Ra"),i=rR("cPjhN"),o=rR("9xdhv"),a=rR("avz3V"),s=rR("8aNoG");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rI("l8hao",function(e,t){var r=rR("aMLnW"),n=rR("UI3XL"),i=rR("9J5od"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let t;for(;(t=o[a.COERCERTL].exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&t.index+t[0].length===i.index+i[0].length||(i=t),o[a.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[a.COERCERTL].lastIndex=-1;}else i=e.match(o[a.COERCE]);return null===i?null:n(`${i[2]}.${i[3]||"0"}.${i[4]||"0"}`,t);};}),rI("dSz9p",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rR("6omBt"),o=rR("9J5od"),a=o.safeRe,s=o.t,l=rR("8gipG"),u=rR("3CqZ1"),c=rR("aMLnW"),p=rR("4FTez");}),rI("4FTez",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,A(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>w(e,this.options)).join(" ").split(/\s+/).map(e=>O(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>y(r,t)&&e.set.some(e=>y(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,y=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},w=(e,t)=>(a("comp",e,t),a("caret",e=S(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=I(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>D(e,t)).join(" "),D=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},S=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>R(e,t)).join(" ")),R=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},I=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),O=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),A=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),C=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rI("eGCLk",function(e,t){var r=rR("JD6z9");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let y=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;y(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;y(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rI("JD6z9",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rI("eRnrA",function(e,t){var r=rR("4FTez");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rI("aAvhf",function(e,t){var r=rR("aMLnW"),n=rR("4FTez");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rI("iWAcu",function(e,t){var r=rR("aMLnW"),n=rR("4FTez");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rI("32TwK",function(e,t){var r=rR("aMLnW"),n=rR("4FTez"),i=rR("cPjhN");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rI("194Ox",function(e,t){var r=rR("4FTez");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rI("a8VZj",function(e,t){var r=rR("aMLnW"),n=rR("dSz9p");let{ANY:i}=n;var o=rR("4FTez"),a=rR("2bU8Y"),s=rR("cPjhN"),l=rR("avz3V"),u=rR("8aNoG"),c=rR("9xdhv");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rI("2yv5J",function(e,t){var r=rR("a8VZj");e.exports=(e,t,n)=>r(e,t,">",n);}),rI("46KXA",function(e,t){var r=rR("a8VZj");e.exports=(e,t,n)=>r(e,t,"<",n);}),rI("e3Thp",function(e,t){var r=rR("4FTez");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rI("8g51l",function(e,t){var r=rR("2bU8Y"),n=rR("3uysP");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,y=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!y&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rI("i8A01",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rI("kY0n1",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rI("bzNgi",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function y(e,t=!0){return t?(0,n6.basename)(e):(0,n6.basename)(e,(0,n6.extname)(e));}function w(e){return(0,n6.normalize)(e).replace(RegExp((0,r.default)(n6.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,n6.extname)(e),n=`${t}${(0,n6.basename)(e,r)}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function D(e,t){let r=(0,n6.extname)(e),n=`${(0,n6.basename)(e,r)}${t}${r}`;return(0,n6.join)((0,n6.dirname)(e),n);}function S(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,n6.extname)(e).length;return e.slice(0,-t);}function R(e,t){return p(n)(e,t);}function I(e,t){let r=(0,n6.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+n6.sep)||r===(0,n6.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>S),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>n6.dirname),c(e.exports,"join",()=>n6.join),r=rR("iNGpn"),n=rR("axeRu"),i={},E(o={},"name",()=>y),E(a={},"normalizeTrim",()=>w),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>D),E(d={},"addShExt",()=>S),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>R),E(g={},"isPathInside",()=>I),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rI("iNGpn",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rI("axeRu",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=n6.basename(e,n6.extname(e))+t,i=n6.join(n6.dirname(e),n);return(r=e.slice(0,2))==="."+n6.sep||"./"===r?"."+n6.sep+i:i;};}),rI("hZdK0",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(n6),p=i(rR("ipB3d"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rI("ipB3d",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(n8),u=i(n6);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rI("42L4Y",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rR("lroIv"));a=rR("4t50X"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n5.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n5.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return n8.existsSync(e)?r=n8.readFileSync(e).toString():n8.existsSync(t)&&(r=n8.readFileSync(t).toString()),r;};}),rI("lroIv",function(e,t){function r(e){O[e]=A++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>D||!(t.loose?R[O.LOOSE]:R[O.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>D)throw TypeError("version is longer than "+D+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?R[O.LOOSE]:R[O.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>S||this.major<0)throw TypeError("Invalid major version");if(this.minor>S||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>S||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===$?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function y(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function w(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(w(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,y=y||e,i(e.semver,E.semver,n)?E=e:s(e.semver,y.semver,n)&&(y=e);}),E.operator===c||E.operator===p||(!y.operator||y.operator===c)&&a(e,y.semver)||y.operator===p&&s(e,y.semver))return!1;}return!0;}t=e.exports=o,x="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:function(){},t.SEMVER_SPEC_VERSION="2.0.0",D=256,S=Number.MAX_SAFE_INTEGER||9007199254740991,T=D-6,N=t.re=[],R=t.safeRe=[],I=t.src=[],O=t.tokens={},A=0,_=[["\\s",1],["\\d",D],[C="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),I[O.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),I[O.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),I[O.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+C+"*",r("MAINVERSION"),I[O.MAINVERSION]="("+I[O.NUMERICIDENTIFIER]+")\\.("+I[O.NUMERICIDENTIFIER]+")\\.("+I[O.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),I[O.MAINVERSIONLOOSE]="("+I[O.NUMERICIDENTIFIERLOOSE]+")\\.("+I[O.NUMERICIDENTIFIERLOOSE]+")\\.("+I[O.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),I[O.PRERELEASEIDENTIFIER]="(?:"+I[O.NUMERICIDENTIFIER]+"|"+I[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),I[O.PRERELEASEIDENTIFIERLOOSE]="(?:"+I[O.NUMERICIDENTIFIERLOOSE]+"|"+I[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),I[O.PRERELEASE]="(?:-("+I[O.PRERELEASEIDENTIFIER]+"(?:\\."+I[O.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),I[O.PRERELEASELOOSE]="(?:-?("+I[O.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+I[O.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),I[O.BUILDIDENTIFIER]=C+"+",r("BUILD"),I[O.BUILD]="(?:\\+("+I[O.BUILDIDENTIFIER]+"(?:\\."+I[O.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),I[O.FULLPLAIN]="v?"+I[O.MAINVERSION]+I[O.PRERELEASE]+"?"+I[O.BUILD]+"?",I[O.FULL]="^"+I[O.FULLPLAIN]+"$",r("LOOSEPLAIN"),I[O.LOOSEPLAIN]="[v=\\s]*"+I[O.MAINVERSIONLOOSE]+I[O.PRERELEASELOOSE]+"?"+I[O.BUILD]+"?",r("LOOSE"),I[O.LOOSE]="^"+I[O.LOOSEPLAIN]+"$",r("GTLT"),I[O.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),I[O.XRANGEIDENTIFIERLOOSE]=I[O.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),I[O.XRANGEIDENTIFIER]=I[O.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),I[O.XRANGEPLAIN]="[v=\\s]*("+I[O.XRANGEIDENTIFIER]+")(?:\\.("+I[O.XRANGEIDENTIFIER]+")(?:\\.("+I[O.XRANGEIDENTIFIER]+")(?:"+I[O.PRERELEASE]+")?"+I[O.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),I[O.XRANGEPLAINLOOSE]="[v=\\s]*("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:"+I[O.PRERELEASELOOSE]+")?"+I[O.BUILD]+"?)?)?",r("XRANGE"),I[O.XRANGE]="^"+I[O.GTLT]+"\\s*"+I[O.XRANGEPLAIN]+"$",r("XRANGELOOSE"),I[O.XRANGELOOSE]="^"+I[O.GTLT]+"\\s*"+I[O.XRANGEPLAINLOOSE]+"$",r("COERCE"),I[O.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[O.COERCERTL]=RegExp(I[O.COERCE],"g"),R[O.COERCERTL]=RegExp(n(I[O.COERCE]),"g"),r("LONETILDE"),I[O.LONETILDE]="(?:~>?)",r("TILDETRIM"),I[O.TILDETRIM]="(\\s*)"+I[O.LONETILDE]+"\\s+",N[O.TILDETRIM]=RegExp(I[O.TILDETRIM],"g"),R[O.TILDETRIM]=RegExp(n(I[O.TILDETRIM]),"g"),r("TILDE"),I[O.TILDE]="^"+I[O.LONETILDE]+I[O.XRANGEPLAIN]+"$",r("TILDELOOSE"),I[O.TILDELOOSE]="^"+I[O.LONETILDE]+I[O.XRANGEPLAINLOOSE]+"$",r("LONECARET"),I[O.LONECARET]="(?:\\^)",r("CARETTRIM"),I[O.CARETTRIM]="(\\s*)"+I[O.LONECARET]+"\\s+",N[O.CARETTRIM]=RegExp(I[O.CARETTRIM],"g"),R[O.CARETTRIM]=RegExp(n(I[O.CARETTRIM]),"g"),r("CARET"),I[O.CARET]="^"+I[O.LONECARET]+I[O.XRANGEPLAIN]+"$",r("CARETLOOSE"),I[O.CARETLOOSE]="^"+I[O.LONECARET]+I[O.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),I[O.COMPARATORLOOSE]="^"+I[O.GTLT]+"\\s*("+I[O.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),I[O.COMPARATOR]="^"+I[O.GTLT]+"\\s*("+I[O.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),I[O.COMPARATORTRIM]="(\\s*)"+I[O.GTLT]+"\\s*("+I[O.LOOSEPLAIN]+"|"+I[O.XRANGEPLAIN]+")",N[O.COMPARATORTRIM]=RegExp(I[O.COMPARATORTRIM],"g"),R[O.COMPARATORTRIM]=RegExp(n(I[O.COMPARATORTRIM]),"g"),r("HYPHENRANGE"),I[O.HYPHENRANGE]="^\\s*("+I[O.XRANGEPLAIN]+")\\s+-\\s+("+I[O.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),I[O.HYPHENRANGELOOSE]="^\\s*("+I[O.XRANGEPLAINLOOSE]+")\\s+-\\s+("+I[O.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),I[O.STAR]="(<|>)?=?\\s*\\*";for(var x,D,S,T,N,R,I,O,A,C,_,L,$,P=0;P=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,L=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,$={},m.prototype.parse=function(e){var t=this.options.loose?R[O.COMPARATORLOOSE]:R[O.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=$;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===$||e===$)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),w(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),w(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?R[O.HYPHENRANGELOOSE]:R[O.HYPHENRANGE];e=e.replace(r,y),x("hyphen replace",e),e=e.replace(R[O.COMPARATORTRIM],"$1$2$3"),x("comparator trim",e,R[O.COMPARATORTRIM]),e=(e=(e=e.replace(R[O.TILDETRIM],"$1~")).replace(R[O.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?R[O.COMPARATORLOOSE]:R[O.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?R[O.CARETLOOSE]:R[O.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?R[O.TILDELOOSE]:R[O.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?R[O.XRANGELOOSE]:R[O.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(R[O.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=w,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=R[O.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),R[O.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;R[O.COERCERTL].lastIndex=-1;}else n=e.match(R[O.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rI("eAF86",function(e,t){var r=rR("1W8as"),n=rR("hTpVN");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rI("1W8as",function(e,t){e.exports=function(){return n9.randomBytes(16);};}),rI("hTpVN",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rI("1f6JF",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rR("4B2AJ"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rI("4B2AJ",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n5),s=i(ro),l=i(ru),u=i(n6),c=i(rR("hZdK0")),p=i(rR("ipB3d")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rI("4JiFg",function(e,t){e.exports=Promise.resolve(require("./actions_python.6be0dfa4.js")).then(()=>rR("4kQHk"));}),rI("i9SYz",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rR("12jBw"),i=rR("fSAop"),o=rR("g5ebD"),a=rR("gqQA6"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rI("12jBw",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new C(S,Error(e.tagName+"@"+r));}function F(){}function j(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===j.DOCUMENT_TYPE_NODE;}function W(e){return e&&e.nodeType===j.ELEMENT_NODE;}function K(e){return e&&e.nodeType===j.TEXT_NODE;}function Y(e,t){var r=e.childNodes||[];if(o(r,W)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function J(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return W(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function Q(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===j.DOCUMENT_FRAGMENT_NODE){var a=i.filter(W);if(a.length>1||o(i,K))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!J(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(W(t)&&!J(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new C(D,"Only one doctype is allowed");var s=o(n,W);if(r&&n.indexOf(s)1||o(i,K))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!Y(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(W(t)&&!Y(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new C(D,"Only one doctype is allowed");var s=o(n,W);if(r&&n.indexOf(s)=0;D--){var S=i[D];if(""===S.prefix&&S.namespace===e.namespaceURI){o=S.namespace;break;}}if(o!==e.namespaceURI)for(var D=i.length-1;D>=0;D--){var S=i[D];if(S.namespace===e.namespaceURI){S.prefix&&(b=S.prefix+":"+w);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var R=N.prefix||"",I=N.namespaceURI;em(t,R?"xmlns:"+R:"xmlns",I),i.push({prefix:R,namespace:I});}eg(N,t,r,n,i);}if(w===b&&eh(e,r,i)){var R=e.prefix||"",I=e.namespaceURI;em(t,R?"xmlns:"+R:"xmlns",I),i.push({prefix:R,namespace:I});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(w)){if(t.push(">"),r&&/^script$/i.test(w))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case y:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var O=e.publicId,A=e.systemId;if(t.push("");else if(A&&"."!=A)t.push(" SYSTEM ",A,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rR("12jBw")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,y=s.DOCUMENT_FRAGMENT_NODE=11,w=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),D=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),S=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),C.prototype=Error.prototype,O(b,C),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},O(s,j),O(s,j.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==y){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),W(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case y:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=I(e);return new L(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=I(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},A(G,j),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===y?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new L(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new L(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,A(ee,j),et.prototype.nodeType=u,A(et,j),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[D]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},A(er,j),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},A(en,er),ei.prototype={nodeName:"#comment",nodeType:g},A(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},A(eo,er),ea.prototype.nodeType=E,A(ea,j),es.prototype.nodeType=w,A(es,j),el.prototype.nodeType=h,A(el,j),eu.prototype.nodeType=f,A(eu,j),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=y,A(ec,j),ep.prototype.nodeType=m,A(ep,j),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},j.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty(L.prototype,"length",{get:function(){return $(this),this.$$length;}}),Object.defineProperty(j.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case y:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case y:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=F,n=ed;}),rI("g5ebD",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rR("12jBw").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rI("gqQA6",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rR("12jBw").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$bf67dc97ecf5e14f$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>y){var r=e.substring(y,t).replace(/&#?\w+;/g,a);g&&c(y),n.characters(r,0,t-y),y=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},y=0;;){try{var w=e.indexOf("<",y);if(w<0){if(!e.substr(y).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(y));b.appendChild(x),n.currentElement=x;}return;}switch(w>y&&l(w),e.charAt(w+1)){case"/":var D=e.indexOf(">",w+3),S=e.substring(w+2,D).replace(/[ \t\n\r]+$/g,""),T=v.pop();D<0?(S=e.substring(w+2).replace(/[\s<].*/,""),o.error("end tag name: "+S+" is not complete:"+T.tagName),D=w+1+S.length):S.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,w,n);break;case"!":g&&c(w),D=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,w,n,o);break;default:g&&c(w);var O=new f(),A=v[v.length-1].currentNSMap,D=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,w,O,A,a,o),C=O.length;if(!O.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))L;L++){var $=O[L];c($.offset),$.locator=u(g,{});}n.locator=_,p(O,n,A)&&v.push(O),n.locator=g;}else p(O,n,A)&&v.push(O);i.isHTML(O.uri)&&!O.closed?D=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,D,O.tagName,a,n):D++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),D=-1;}D>y?y=D:l(Math.max(w,y)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rO=rR("52cQ1"),rA=rR("ER74K"),rC=rR("iWDmx"),function(){rR("eCDnw").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),rL={},rL=rR("gMm9F"),r$={},r$={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iR),c(rk,"sync",()=>iI),n8.promises;const{access:it,appendFile:ir,chmod:ii,chown:io,copyFile:ia,lchmod:is,lchown:il,link:iu,lstat:ic,mkdir:ip,mkdtemp:id,open:ih,readdir:im,readFile:ig,readlink:iv,realpath:iE,rename:iy,rmdir:iw,stat:ib,symlink:ix,truncate:iD,unlink:iS,utimes:iT,writeFile:iN}=n8.promises,iR=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iO(await ib(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iI=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iO((0,n8.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iO=(e,t)=>e.isFile()&&iA(e,t),iA=(e,t)=>{let r=t.uid??process.getuid?.(),n=t.groups??process.getgroups?.()??[],i=t.gid??process.getgid?.()??n[0];if(void 0===r||void 0===i)throw Error("cannot get uid or gid");let o=new Set([i,...n]),a=e.mode,s=e.uid,l=e.gid,u=parseInt("100",8),c=parseInt("010",8);return!!(a&parseInt("001",8)||a&c&&o.has(l)||a&u&&s===r||a&(u|c)&&0===r);};c(rU={},"isexe",()=>iC),c(rU,"sync",()=>i_);const iC=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return i$(await ib(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return i$((0,n8.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iL=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&iL(t,r),iP="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,ik=iP.isexe,iU=iP.sync;rM=n6.join,rF=n6.delimiter,rj=n6.sep,rq=n6.posix;const iM="win32"===process.platform,iF=new RegExp(`[${rq.sep}${rj===rq.sep?"":rj}]`.replace(/(\\)/g,"\\$1")),ij=RegExp("^\\."+iF.source),iq=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iB=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rF})=>{let i=e.match(iF)?[""]:[...(iM?[process.cwd()]:[]),...(t||"").split(n)];if(iM){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iG=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&ij.test(t)?t.slice(0,2):"")+rM(r,t);},iH=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(await ik(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);};rP=iH,iH.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iB(e,t),o=[];for(let a of r){let r=iG(a,e);for(let e of n){let n=r+e;if(iU(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iq(e);},rB={},rG={},rH={},rV={};const iV="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iX=iV?";":":";rX={},rz="win32"===process.platform||rS.TESTING_WINDOWS?rR("bGwAu"):rR("d3qS7"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iz=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iW=(e,t)=>{let r=t.colon||iX,n=e.match(/\//)||iV&&e.match(/\\/)?[""]:[...(iV?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iV?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iV?i.split(r):[""];return iV&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iK=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iW(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iz(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=n6.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iK,iK.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iW(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rW=iY).default=iY,rH=function(e){return f(e)||f(e,!0);};rK={},rY={},rJ={},rJ=/^#!(.*)/,rY=(e="")=>{let t=e.match(rJ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rK=function(e){let t;let r=Buffer.alloc(150);try{t=n8.openSync(e,"r"),n8.readSync(t,r,0,150,0),n8.closeSync(t);}catch(e){}return rY(r.toString());};const iJ="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!iJ)return e;let t=function(e){e.file=rH(e);let t=e.file&&rK(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){var n;let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=n6.normalize(e.command),e.command=n=(n=e.command).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),e.args=e.args.map(e=>{var t,n;return t=e,n=r,t=(t=(t=""+t).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),t=(t=`"${t}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),n&&(t=t.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),t;});let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},rQ={};const iQ="win32"===process.platform;rQ={hookChildProcess:function(e,t){if(!iQ)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return iQ&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||rQ.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=rQ;const iZ=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i0(i,o)||!n)&&Object.defineProperty(e,r,o);},i0=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i1=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i3=(e,t)=>`/* Wrapped ${e}*/ -${t}`,i2=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i4=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i5=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i3.bind(null,n,t.toString());Object.defineProperty(i,"name",i4),Object.defineProperty(e,"toString",{...i2,value:i});},i6=new WeakMap(),i8=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(i6.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))iZ(e,t,n,r);i1(e,t),i5(e,t,n);}(o,e),i6.set(o,n),o;};i8.callCount=e=>{if(!i6.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i6.get(e);},rZ=i8;const i9=()=>Array.from({length:ot-oe+1},i7),i7=(e,t)=>({name:"SIGRT"+(t+1),number:oe+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oe=34,ot=64,or=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],on=()=>[...or,...i9()].map(oi),oi=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},oo=Object.fromEntries(on().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oa=(e,t)=>{let r=os(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},os=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=on();return Object.assign({},...Array.from({length:ot+1},(t,r)=>oa(r,e)));})();const ol=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",ou=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,m=ol({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} -${n.message}`:g,y=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=y):n=Error(y),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oc=["stdin","stdout","stderr"],op=e=>oc.some(t=>void 0!==e[t]),od=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oc.map(t=>e[t]);if(op(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oc.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oc.length)},(e,r)=>t[r]);};r0={};const of=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(of(r1=rS.process)){var oh,om=ra,og=rR("e1Rfe"),ov=/^win/i.test(r1.platform),oE=ro;"function"!=typeof oE&&(oE=oE.EventEmitter),r1.__signal_exit_emitter__?oh=r1.__signal_exit_emitter__:((oh=r1.__signal_exit_emitter__=new oE()).count=0,oh.emitted={}),oh.infinite||(oh.setMaxListeners(1/0),oh.infinite=!0);var oy=function(){ox&&of(rS.process)&&(ox=!1,og.forEach(function(e){try{r1.removeListener(e,ob[e]);}catch(e){}}),r1.emit=oN,r1.reallyExit=oS,oh.count-=1);};(r0=function(e,t){if(!of(rS.process))return function(){};om.equal(typeof e,"function","a callback must be provided for exit handler"),!1===ox&&oD();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oh.on(r,e),function(){oh.removeListener(r,e),0===oh.listeners("exit").length&&0===oh.listeners("afterexit").length&&oy();};}).unload=oy;var ow=function(e,t,r){oh.emitted[e]||(oh.emitted[e]=!0,oh.emit(e,t,r));},ob={};og.forEach(function(e){ob[e]=function(){of(rS.process)&&r1.listeners(e).length===oh.count&&(oy(),ow("exit",null,e),ow("afterexit",null,e),ov&&"SIGHUP"===e&&(e="SIGINT"),r1.kill(r1.pid,e));};}),r0.signals=function(){return og;};var ox=!1,oD=function(){!ox&&of(rS.process)&&(ox=!0,oh.count+=1,og=og.filter(function(e){try{return r1.on(e,ob[e]),!0;}catch(e){return!1;}}),r1.emit=oR,r1.reallyExit=oT);};r0.load=oD;var oS=r1.reallyExit,oT=function(e){of(rS.process)&&(r1.exitCode=e||0,ow("exit",r1.exitCode,null),ow("afterexit",r1.exitCode,null),oS.call(r1,r1.exitCode));},oN=r1.emit,oR=function(e,t){if(!("exit"===e&&of(rS.process)))return oN.apply(this,arguments);void 0!==t&&(r1.exitCode=t);var r=oN.apply(this,arguments);return ow("exit",r1.exitCode,null),ow("afterexit",r1.exitCode,null),r;};}else r0=function(){return function(){};};const oI=(e,t="SIGTERM",r={})=>{let n=e(t);return oO(e,t,r,n),n;},oO=(e,t,r,n)=>{if(!oA(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},o_(r));i.unref&&i.unref();},oA=(e,{forceKillAfterTimeout:t},r)=>oC(e)&&!1!==t&&r,oC=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),o_=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oL=(e,t)=>{e.kill()&&(t.isCanceled=!0);},o$=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oP=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{o$(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},ok=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oU=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},oM=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oF=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oM(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oj=e=>{null!==e.stdout&&(e.pipeStdout=oF.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oF.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oF.bind(void 0,e,"all"));};r3={},r2=rE.constants,r4=rs.promisify,r5={},r6=ry.PassThrough,r5=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r6({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oq=r4(ry.pipeline);class oB extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r3=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r3.array=(e,t)=>x(e,{...t,array:!0}),r3.MaxBufferError=oB,r8={},r9=ry.PassThrough,r8=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new r9({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oG=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oH=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.readFileSync)(t)),oV=e=>{let t=oH(e);if(w(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oX=({input:e,inputFile:t})=>"string"!=typeof t?e:(oG(e),(0,rl.createReadStream)(t)),oz=(e,t)=>{let r=oX(t);void 0!==r&&(w(r)?r.pipe(e.stdin):e.stdin.end(r));},oW=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oK=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},oY=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},oJ=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=oY(e,{encoding:n,buffer:i,maxBuffer:o}),l=oY(t,{encoding:n,buffer:i,maxBuffer:o}),u=oY(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oK(e,s),oK(t,l),oK(r,u)]);}},oQ=(async()=>{})().constructor.prototype,oZ=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(oQ,e)]),o0=(e,t)=>{for(let[r,n]of oZ){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o1=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o3=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o2=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o4=(e,t)=>o3(e,t).join(" "),o5=(e,t)=>o3(e,t).map(e=>o2(e)).join(" "),o6=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},o8=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},o9=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],o7=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=o9(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return o9(a,Array.isArray(s)?s.map(e=>o8(e)):[o8(s)],o.endsWith(" "));},ae=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=o7({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},at=(0,rw.debuglog)("execa").enabled,ar=(e,t)=>(e+"").padStart(t,"0"),an=()=>{let e=new Date();return`${ar(e.getHours(),2)}:${ar(e.getMinutes(),2)}:${ar(e.getSeconds(),2)}.${ar(e.getMilliseconds(),3)}`;},ai=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${an()}] ${e} -`);},ao=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?y({env:o,cwd:n,execPath:i}):o;},aa=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:at,...r}).env=ao(r),r.stdio=od(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},as=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",al=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},au=(e={})=>({preferLocal:!0,...al(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ae(n,i);return D(o,a,au(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ae(e,r);return S(n,i,au(t));},r;}();const ac={stdio:"inherit",shell:!0},ap=/^~(?=$|\/|\\)/;rA=rR("ER74K"),r7={},ne=rR("bSUdl"),nt=rb.env.npm_package_json,nn=!!((nr=rb.env.npm_config_user_agent)&&nr.startsWith("npm")),ni=!!(nt&&nt.endsWith("package.json")),no=!!(nr&&nr.startsWith("yarn")),na=nn||ni||no,ns=n5.homedir(),nl=process.env.XDG_CONFIG_HOME||n6.join(ns,".config","simple-update-notifier"),nu=function(e){return n6.join(nl,"".concat(e.replace("@","").replace("/","__"),".json"));},nc=function(){n8.existsSync(nl)||n8.mkdirSync(nl,{recursive:!0});},np=function(e){var t=nu(e);try{if(!n8.existsSync(t))return;return JSON.parse(n8.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nd=function(e){var t=nu(e);n8.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},nf=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return L(this,function(i){switch(i.label){case 0:var l;if(nc(),e=np(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",af=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:oo[i].description,f=ad({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} -${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},ah=["stdin","stdout","stderr"],am=e=>ah.some(t=>void 0!==e[t]),ag=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ah.map(t=>e[t]);if(am(e))throw Error("It's not possible to provide `stdio` in combination with one of "+ah.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,ah.length)},(e,r)=>t[r]);},av=(e,t="SIGTERM",r={})=>{let n=e(t);return aE(e,t,r,n),n;},aE=(e,t,r,n)=>{if(!ay(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ab(r));i.unref&&i.unref();},ay=(e,{forceKillAfterTimeout:t},r)=>aw(e)&&!1!==t&&r,aw=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ab=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},ax=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aD=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aS=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aD(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aT=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aN=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r0)(()=>{e.kill();});return n.finally(()=>{i();});},aR=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,aI=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aR(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aO=e=>{null!==e.stdout&&(e.pipeStdout=aI.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=aI.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=aI.bind(void 0,e,"all"));},aA=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aC=({input:e,inputFile:t})=>"string"!=typeof t?e:(aA(e),(0,rl.readFileSync)(t)),a_=e=>{let t=aC(e);if(w(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},aL=({input:e,inputFile:t})=>"string"!=typeof t?e:(aA(e),(0,rl.createReadStream)(t)),a$=(e,t)=>{let r=aL(t);void 0!==r&&(w(r)?r.pipe(e.stdin):e.stdin.end(r));},aP=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r8)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},ak=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aU=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r3)(e,{encoding:t,maxBuffer:n}):p(r3).buffer(e,{maxBuffer:n});},aM=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aU(e,{encoding:n,buffer:i,maxBuffer:o}),l=aU(t,{encoding:n,buffer:i,maxBuffer:o}),u=aU(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},ak(e,s),ak(t,l),ak(r,u)]);}},aF=(async()=>{})().constructor.prototype,aj=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aF,e)]),aq=(e,t)=>{for(let[r,n]of aj){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aB=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),aG=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aH=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aV=(e,t)=>aG(e,t).join(" "),aX=(e,t)=>aG(e,t).map(e=>aH(e)).join(" "),az=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aW=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aK=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=aW(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aW(a,Array.isArray(s)?s.map(e=>az(e)):[az(s)],o.endsWith(" "));},aY=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aK({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},aJ=(0,rw.debuglog)("execa").enabled,aQ=(e,t)=>(e+"").padStart(t,"0"),aZ=()=>{let e=new Date();return`${aQ(e.getHours(),2)}:${aQ(e.getMinutes(),2)}:${aQ(e.getSeconds(),2)}.${aQ(e.getMilliseconds(),3)}`;},a0=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${aZ()}] ${e} -`);},a1=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?y({env:o,cwd:n,execPath:i}):o;},a3=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:aJ,...r}).env=a1(r),r.stdio=ag(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a2=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a4=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a5=(e={})=>({preferLocal:!0,...a4(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=aY(n,i);return k(o,a,a5(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=aY(e,r);return function(e,t,r){let n;let i=a3(e,t,r),o=aV(e,t),a=aX(e,t);a0(a,i.options);let s=a_(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw af({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a2(i.options,n.stdout,n.error),u=a2(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=af({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a5(t));},r;}(),nv={};const a6="win32"!==n5.platform(),a8=n5.release(),a9=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nv=function(e){return a6?e.replace(/(\s+)/g,"\\$1"):a9(.../(\d+\.\d+)\.(\d+)/.exec(a8).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rR("i8A01"),t=function(e){return e.split("").reverse().join("");},nE=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nE={}),ny=rR("kY0n1");const a7={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},se=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],st=C("~/.cpprc");let sr=!1;ny=rR("kY0n1"),nw=rR("iNGpn"),rA=rR("ER74K");const{appendFile:sn}=n8.promises;let si=!1,so=!1;const sa=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nb||(nb={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",ng=rR("4t50X"),nx=rR("bzNgi"),nx=rR("bzNgi"),nD=rR("hZdK0");let ss=!1;ny=rR("kY0n1"),nx=rR("bzNgi"),rA=rR("ER74K");let sl=!1;rA=rR("ER74K"),rA=rR("ER74K");let su=!1,sc=!1;const sp=/Version\s*:\s*(.*)/g;nS={},nT=n6.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nN=nS&&nS.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nR=nS&&nS.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nI=nS&&nS.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nN(t,e,r);return nR(t,e),t;},nO=nS&&nS.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},nA=nS&&nS.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nS,"__esModule",{value:!0}),nS.evaluateVersions=nS.isExplicitVersion=nS.findFromManifest=nS.getManifestFromRepo=nS.findAllVersions=nS.find=nS.cacheFile=nS.cacheDir=nS.extractZip=nS.extractXar=nS.extractTar=nS.extract7z=nS.downloadTool=nS.HTTPError=void 0;const sd=nI(rR("4t50X")),sf=nI(rR("hZdK0")),sh=nI(n8),sm=nI(rR("42L4Y")),sg=nI(n5),sv=nI(n6),sE=nI(rR("a7JAS")),sy=nI(rR("lroIv")),sw=nI(ry),sb=nI(rs),sx=nA(rR("eAF86"));nC=rR("1f6JF"),nL=(n_={},n_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),n$=n_&&n_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nP=n_&&n_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nL(t,e,r);return n$(t,e),t;},nk=n_&&n_.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(n_,"__esModule",{value:!0}),n_.RetryHelper=void 0;const sD=nP(rR("4t50X"));n_.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nk(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sS extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nS.HTTPError=sS;const sT="win32"===process.platform,sN="darwin"===process.platform;nS.downloadTool=function(e,t,r,n){return nO(this,void 0,void 0,function*(){t=t||sv.join(eb(),sx.default()),yield sf.mkdirP(sv.dirname(t)),sd.debug("Downloading "+e),sd.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new n_.RetryHelper(3,i,o);return yield a.execute(()=>nO(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nO(this,void 0,void 0,function*(){if(sh.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sE.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sd.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sS(o.message.statusCode);throw sd.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sb.promisify(sw.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sh.createWriteStream(t)),sd.debug("download complete"),l=!0,t;}finally{if(!l){sd.debug("download failed");try{yield sf.rmRF(t);}catch(e){sd.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sS)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nS.extract7z=function(e,t,r){return nO(this,void 0,void 0,function*(){ra.ok(sT,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sd.isDebug()?"-bb1":"-bb0";yield nC.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sv.join(nT,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sf.which("powershell",!0);yield nC.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nS.extractTar=function(e,t,r="xz"){return nO(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sd.debug("Checking tar --version");let i="";yield nC.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sd.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sd.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sT&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nC.exec("tar",n),t;});},nS.extractXar=function(e,t,r=[]){return nO(this,void 0,void 0,function*(){var n;let i;ra.ok(sN,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(i=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sd.isDebug()&&i.push("-v");let o=yield sf.which("xar",!0);return yield nC.exec(`"${o}"`,(n=i,Array.from(new Set(n)))),t;});},nS.extractZip=function(e,t){return nO(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sT?yield function(e,t){return nO(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sf.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sd.debug("Using pwsh at path: "+i),yield nC.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sf.which("powershell",!0);sd.debug("Using powershell at path: "+t),yield nC.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nO(this,void 0,void 0,function*(){let r=yield sf.which("unzip",!0),n=[e];sd.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nC.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nS.cacheDir=function(e,t,r,n){return nO(this,void 0,void 0,function*(){if(r=sy.clean(r)||r,n=n||sg.arch(),sd.debug(`Caching tool ${t} ${r} ${n}`),sd.debug("source dir: "+e),!sh.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sh.readdirSync(e)){let r=sv.join(e,t);yield sf.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nS.cacheFile=function(e,t,r,n,i){return nO(this,void 0,void 0,function*(){if(n=sy.clean(n)||n,i=i||sg.arch(),sd.debug(`Caching tool ${r} ${n} ${i}`),sd.debug("source file: "+e),!sh.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sv.join(o,t);return sd.debug("destination file "+a),yield sf.cp(e,a),ev(r,n,i),o;});},nS.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sg.arch(),eE(t)||(t=ey(eh(e,r),t));let n="";if(t){t=sy.clean(t)||"";let i=sv.join(ew(),e,t,r);sd.debug("checking cache: "+i),sh.existsSync(i)&&sh.existsSync(`${i}.complete`)?(sd.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sd.debug("not found");}return n;},nS.findAllVersions=eh,nS.getManifestFromRepo=function(e,t,r,n="master"){return nO(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sE.HttpClient("tool-cache"),s={};r&&(sd.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sd.debug("Invalid json");}}return i;});},nS.findFromManifest=function(e,t,r,n=sg.arch()){return nO(this,void 0,void 0,function*(){return yield sm._findMatch(e,t,r,n);});},nS.isExplicitVersion=eE,nS.evaluateVersions=ey,nU=rR("8aNoG"),nM=rR("l8hao"),nx=rR("bzNgi"),rA=rR("ER74K"),rO=rR("52cQ1"),ny=rR("kY0n1"),Object.defineProperty(nF={},"__esModule",{value:!0}),nF.retryAsPromised=nF.TimeoutError=void 0;class sR extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nF.TimeoutError=sR,nF.retryAsPromised=eD,nF.default=eD;let sI=!1;nx=rR("bzNgi"),nD=rR("hZdK0"),rA=rR("ER74K"),ng=rR("4t50X"),ny=rR("kY0n1"),nx=rR("bzNgi"),nC=rR("1f6JF"),rO=rR("52cQ1"),rA=rR("ER74K"),nj={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nq=Array.prototype.slice,nB=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:eL(this.keys),size:this.size,values:eL(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nx=rR("bzNgi"),nG=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nH=async e=>{if(!nG(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nV=rR("3uysP"),nM=rR("l8hao"),nX=rR("l655J"),nC=rR("1f6JF"),rA=rR("ER74K");const sO=/v?(\d\S*)/,sA={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sC={pip:"22.2.0",python:"3.7.9"},s_={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};ny=rR("kY0n1");const sL=ek(e1,{isPromise:!0});rA=rR("ER74K"),Object.defineProperty(nz={},"__esModule",{value:!0}),nz.getUbuntuVersion=void 0,nz.getUbuntuVersion=e4;const s$=ek(e5,{isPromise:!0}),sP=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||n8.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||n8.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||n8.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||n8.mkdirSync,t;},sk=(e,t,r)=>{let n=(0,n6.dirname)(e),i={...sP(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,i,sk(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sU=Object.assign(async(e,t,r)=>{let n=sP(t);n.recursive=!1;let i=(0,n6.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sU(i,n).then(t=>sU(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sk}),sM=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sM(e,(0,n6.dirname)(t),t):void 0);},sF=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sF(e,(0,n6.dirname)(t),t):void 0;}},sj=(e,t)=>{let r=sP(t);if(r.recursive=!0,(0,n6.dirname)(e)===e)return r.mkdirSync(e,r);let n=sF(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sk(e,r);throw t;}},sq=Object.assign(async(e,t)=>{let r={...sP(t),recursive:!0};return(0,n6.dirname)(e)===e?await r.mkdirAsync(e,r):sM(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sU(e,r);throw t;}));},{sync:sj}),sB=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sG=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,n6.resolve)(e),"win32"===sB){let{root:t}=(0,n6.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sH=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sV=+sH[0]>10||10==+sH[0]&&+sH[1]>=12,sX=sV?e=>sP(e).mkdirSync===n8.mkdirSync:()=>!1,sz=Object.assign(sV?e=>sP(e).mkdir===n8.mkdir:()=>!1,{sync:sX}),sW=(e,t)=>{e=sG(e);let r=sP(t);return sX(r)?sj(e,r):sk(e,r);},sK=Object.assign(async(e,t)=>{e=sG(e);let r=sP(t);return sz(r)?sq(e,r):sU(e,r);},{mkdirpSync:sW,mkdirpNative:sq,mkdirpNativeSync:sj,mkdirpManual:sU,mkdirpManualSync:sk,sync:sW,native:sq,nativeSync:sj,manual:sU,manualSync:sk,useNative:sz,useNativeSync:sX}),sY=ek(te,{isPromise:!0}),sJ=ek(tt,{isPromise:!0}),sQ=ek(tr,{isPromise:!0});nx=rR("bzNgi"),rA=rR("ER74K"),ny=rR("kY0n1");const sZ=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s0=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=sZ.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nK=rR("fSAop")).DOMImplementation,nK.XMLSerializer,nW=rR("i9SYz").DOMParser;const s1=63,s3="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s2=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s4{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s5 extends s4{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t);return this.value?`${r}`:`${r}`;}}class s6 extends s4{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){tf(e,"data");let t=td(e)?.nodeValue||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s2[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s2[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s1)<<18|(i&s1)<<12|(o&s1)<<6|a&s1,o>s1?a>s1?2:0:a>s1?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(t);}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=e?.dataColumns??68,i=(e?.indentString??" ").repeat(t),o=`${i}`;if(n>0)for(let e=th(this.value);e;e=e.substring(n))o+=`${r}${i}${e.substring(0,n)}`;else o+=`${r}${i}${th(this.value)}`;return o+`${r}${i}`;}}class s8 extends s4{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){tf(e,"integer");let t=td(e)?.nodeValue||"";if(!/^[-+]?[0-9]+$/.test(t))throw Error("Invalid integer data: "+t);let r=+t;this.value=r>9007199254740991||r<-9007199254740991?BigInt(t):r;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return tm(n),`${r}${n}`;}}class s9 extends s4{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){tf(e,"real");let t=td(e)?.nodeValue||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(t))throw Error("Invalid real data: "+t);this.value=+t;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return`${r}${n}`;}}class s7 extends s4{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){tf(e,"string"),this.value=td(e)?.nodeValue||"";}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${r}${n}`;}}class le extends s4{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[le,s5,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=(e?.indentString??" ").repeat(t),i=this.value;if(!i.length)return`${n}`;let o=`${n}`;for(let n of i)o+=`${r}${n.toXml(e,t+1)}`;return o+`${r}${n}`;}}class lt extends s4{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[le,s5,s6,lt,s8,s9,s7]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){let r=t[e],i=t[e+1];tf(r,"key");let o=td(r)?.nodeValue||"",a=this.childFromXmlElement(i);n.set(o,a);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.indentString??" ",n=e?.newlineString??"\n",i=r.repeat(t),o=this.value;if(!o.size)return`${i}`;let a=r.repeat(t+1),s=`${i}`;for(let[r,i]of o){let o=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");s+=`${n}${a}${o}${n}${i.toXml(e,t+1)}`;}return s+`${n}${i}`;}}const lr='',ln='';class li{static XML_DECLARATION=lr;static XML_DOCTYPE=ln;xmlDeclaration=lr;xmlDoctype=ln;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lt().childFromXmlElement(e);}toXml(e=null){let t=e?.indentRoot??!1,r=e?.newlineString??"\n",n=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(n?[n.toXml(e,t?1:0)]:[]),"",""].join(r);}}class lo{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new li();t.fromXml(e);let r=t.valueCastAs(lt).getValue("system-entities").castAs(le),n=[];for(let e of r.value){let t=e.castAs(lt),r=t.getValue("dev-entry").castAs(s7).value,i=t.getValue("potentially-mountable").castAs(s5).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(s7).value),a&&(u.unmappedContentHint=a.castAs(s7).value),s&&(u.volumeKind=s.castAs(s7).value),l&&(u.mountPoint=l.castAs(s7).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){let r=this._findRootDevice(e)?.devEntry,n=null,i={eject:async(e=null)=>{r&&(await this.eject(r,e),r="",n&&process.off("exit",n));},ejectSync:(e=null)=>{r&&(this.ejectSync(r,e),r="",n&&process.off("exit",n));}};return t&&(n=()=>{i.ejectSync(t);},process.once("exit",n)),i;}}nY=rR("2aJGP"),nM=rR("l8hao"),nC=rR("1f6JF"),rA=rR("ER74K"),nx=rR("bzNgi"),rA=rR("ER74K"),rO=rR("52cQ1"),ny=rR("kY0n1"),nJ=n6.resolve(__dirname,"../../src/gcc");const la={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nX=rR("l655J"),nY=rR("2aJGP"),nx=rR("bzNgi"),rA=rR("ER74K"),nx=rR("bzNgi"),nQ=n6.resolve(__dirname,"../../src/kcov"),rO=rR("52cQ1"),rA=rR("ER74K"),ny=rR("kY0n1"),nx=rR("bzNgi"),ng=rR("4t50X"),rA=rR("ER74K"),nx=rR("bzNgi"),ng=rR("4t50X");const ls=rb.env["ProgramFiles(x86)"],ll=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lu=["Enterprise","Professional","Community","BuildTools"],lc=["2022","2019","2017"],lp={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};nZ=t$;const ld=`${ls}\\Microsoft Visual Studio\\Installer`;n0=tP,n1=function(e,t,r,n,i,o){if("win32"!=rb.platform){ng.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=n6.delimiter+ld;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;ng.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(ng.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(ng.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),ng.exportVariable(t,r));}ng.endGroup(),ng.info("Configured Developer Command Prompt");},rA=rR("ER74K"),ny=rR("kY0n1");class lf extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lh extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const lm=e=>void 0===globalThis.DOMException?new lh(e):new DOMException(e),lg=e=>{let t=void 0===e.reason?lm("This operation was aborted."):e.reason;return t instanceof Error?t:lm(t);},lv=12e5,{readFile:lE,writeFile:ly,chmod:lw}=n8.promises;(rn=n3||(n3={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nU=rR("8aNoG"),rA=rR("ER74K"),nx=rR("bzNgi");const lb=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lx=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lD=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lS=new Map(),lT={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lN="17.0.6";n2=n6.resolve(__dirname,"../../src/llvm");const lR=ek(tW,{isPromise:!0}),lI=ek(tY,{isPromise:!0}),lO=ek(tJ,{isPromise:!0});rO=rR("52cQ1"),nx=rR("bzNgi"),rA=rR("ER74K"),ny=rR("kY0n1"),n4=n6.resolve(__dirname,"../../src/msvc"),nx=rR("bzNgi"),nx=rR("bzNgi"),rA=rR("ER74K"),ny=rR("kY0n1"),nx=rR("bzNgi");let lA=!1;const lC={nala:t2,cmake:e_,ninja:tI,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t4,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tK(e,t,r);},clangformat:function(e,t,r){return tK(e,t,r,n3.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:tL,make:t0,task:function(e,t,r){return eS("task",e,t8,t,r);},sevenzip:eT},l_=Object.keys(lC),lL=["compiler","architecture","timeout",...l_];ng=rR("4t50X"),rA=rR("ER74K"),nX=rR("l655J"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rA.error)("main() panicked!"),(0,rA.error)(e),process.exitCode=1;}); + Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=a.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield a.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=a;}),rI("a7JAS",function(e,t){var r,n,i,o,a,s,l,u,c;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(ii),d=i(io),f=i(rR("8gh3V")),h=i(rR("7i1qo"));(u=a=e.exports.HttpCodes||(e.exports.HttpCodes={}))[u.OK=200]="OK",u[u.MultipleChoices=300]="MultipleChoices",u[u.MovedPermanently=301]="MovedPermanently",u[u.ResourceMoved=302]="ResourceMoved",u[u.SeeOther=303]="SeeOther",u[u.NotModified=304]="NotModified",u[u.UseProxy=305]="UseProxy",u[u.SwitchProxy=306]="SwitchProxy",u[u.TemporaryRedirect=307]="TemporaryRedirect",u[u.PermanentRedirect=308]="PermanentRedirect",u[u.BadRequest=400]="BadRequest",u[u.Unauthorized=401]="Unauthorized",u[u.PaymentRequired=402]="PaymentRequired",u[u.Forbidden=403]="Forbidden",u[u.NotFound=404]="NotFound",u[u.MethodNotAllowed=405]="MethodNotAllowed",u[u.NotAcceptable=406]="NotAcceptable",u[u.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",u[u.RequestTimeout=408]="RequestTimeout",u[u.Conflict=409]="Conflict",u[u.Gone=410]="Gone",u[u.TooManyRequests=429]="TooManyRequests",u[u.InternalServerError=500]="InternalServerError",u[u.NotImplemented=501]="NotImplemented",u[u.BadGateway=502]="BadGateway",u[u.ServiceUnavailable=503]="ServiceUnavailable",u[u.GatewayTimeout=504]="GatewayTimeout",(c=s=e.exports.Headers||(e.exports.Headers={})).Accept="accept",c.ContentType="content-type",(l=e.exports.MediaTypes||(e.exports.MediaTypes={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=f.getProxyUrl(new URL(e));return t?t.href:"";};let m=[a.MovedPermanently,a.ResourceMoved,a.SeeOther,a.TemporaryRedirect,a.PermanentRedirect],g=[a.BadGateway,a.ServiceUnavailable,a.GatewayTimeout],v=["OPTIONS","GET","DELETE","HEAD"];class E extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,E.prototype);}}e.exports.HttpClientError=E;class y{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}}e.exports.HttpClientResponse=y,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=Math.max(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries));}options(e,t){return o(this,void 0,void 0,function*(){return this.request("OPTIONS",e,null,t||{});});}get(e,t){return o(this,void 0,void 0,function*(){return this.request("GET",e,null,t||{});});}del(e,t){return o(this,void 0,void 0,function*(){return this.request("DELETE",e,null,t||{});});}post(e,t,r){return o(this,void 0,void 0,function*(){return this.request("POST",e,t,r||{});});}patch(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PATCH",e,t,r||{});});}put(e,t,r){return o(this,void 0,void 0,function*(){return this.request("PUT",e,t,r||{});});}head(e,t){return o(this,void 0,void 0,function*(){return this.request("HEAD",e,null,t||{});});}sendStream(e,t,r,n){return o(this,void 0,void 0,function*(){return this.request(e,t,r,n);});}getJson(e,t={}){return o(this,void 0,void 0,function*(){t[s.Accept]=this._getExistingOrDefaultHeader(t,s.Accept,l.ApplicationJson);let r=yield this.get(e,t);return this._processResponse(r,this.requestOptions);});}postJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.post(e,n,r);return this._processResponse(i,this.requestOptions);});}putJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.put(e,n,r);return this._processResponse(i,this.requestOptions);});}patchJson(e,t,r={}){return o(this,void 0,void 0,function*(){let n=JSON.stringify(t,null,2);r[s.Accept]=this._getExistingOrDefaultHeader(r,s.Accept,l.ApplicationJson),r[s.ContentType]=this._getExistingOrDefaultHeader(r,s.ContentType,l.ApplicationJson);let i=yield this.patch(e,n,r);return this._processResponse(i,this.requestOptions);});}request(e,t,r,n){return o(this,void 0,void 0,function*(){let i;if(this._disposed)throw Error("Client has already been disposed.");let o=new URL(t),s=this._prepareRequest(e,o,n),l=this._allowRetries&&v.includes(e)?this._maxRetries+1:1,u=0;do{if((i=yield this.requestRaw(s,r))&&i.message&&i.message.statusCode===a.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(i)){e=t;break;}if(e)return e.handleAuthentication(this,s,r);break;}let t=this._maxRedirects;for(;i.message.statusCode&&m.includes(i.message.statusCode)&&this._allowRedirects&&t>0;){let a=i.message.headers.location;if(!a)break;let l=new URL(a);if("https:"===o.protocol&&o.protocol!==l.protocol&&!this._allowRedirectDowngrade)throw Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield i.readBody(),l.hostname!==o.hostname)for(let e in n)"authorization"===e.toLowerCase()&&delete n[e];s=this._prepareRequest(e,l,n),i=yield this.requestRaw(s,r),t--;}if(!i.message.statusCode||!g.includes(i.message.statusCode))break;(u+=1){this.requestRawWithCallback(e,t,function(e,t){e?n(e):t?r(t):n(Error("Unknown error"));});});});}requestRawWithCallback(e,t,r){let n;function i(e,t){o||(o=!0,r(e,t));}"string"==typeof t&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let o=!1,a=e.httpModule.request(e.options,e=>{i(void 0,new y(e));});a.on("socket",e=>{n=e;}),a.setTimeout(this._socketTimeout||18e4,()=>{n&&n.end(),i(Error("Request timeout: "+e.options.path));}),a.on("error",function(e){i(e);}),t&&"string"==typeof t&&a.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){a.end();}),t.pipe(a)):a.end();}getAgent(e){let t=new URL(e);return this._getAgent(t);}_prepareRequest(e,t,r){let n={};n.parsedUrl=t;let i="https:"===n.parsedUrl.protocol;if(n.httpModule=i?d:p,n.options={},n.options.host=n.parsedUrl.hostname,n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):i?443:80,n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||""),n.options.method=e,n.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(n.options.headers["user-agent"]=this.userAgent),n.options.agent=this._getAgent(n.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(n.options);return n;}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},w(this.requestOptions.headers),w(e||{})):w(e||{});}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=w(this.requestOptions.headers)[t]),e[t]||n||r;}_getAgent(e){let t;let r=f.getProxyUrl(e),n=r&&r.hostname;if(this._keepAlive&&n&&(t=this._proxyAgent),this._keepAlive&&!n&&(t=this._agent),t)return t;let i="https:"===e.protocol,o=100;if(this.requestOptions&&(o=this.requestOptions.maxSockets||p.globalAgent.maxSockets),r&&r.hostname){let e;let n={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})},a="https:"===r.protocol;t=(i?a?h.httpsOverHttps:h.httpsOverHttp:a?h.httpOverHttps:h.httpOverHttp)(n),this._proxyAgent=t;}if(this._keepAlive&&!t){let e={keepAlive:this._keepAlive,maxSockets:o};t=i?new d.Agent(e):new p.Agent(e),this._agent=t;}return t||(t=i?d.globalAgent:p.globalAgent),i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t;}_performExponentialBackoff(e){return o(this,void 0,void 0,function*(){let t=5*Math.pow(2,e=Math.min(10,e));return new Promise(e=>setTimeout(()=>e(),t));});}_processResponse(e,t){return o(this,void 0,void 0,function*(){return new Promise((r,n)=>o(this,void 0,void 0,function*(){let i,o;let s=e.message.statusCode||0,l={statusCode:s,result:null,headers:{}};s===a.NotFound&&r(l);try{(o=yield e.readBody())&&o.length>0&&(i=t&&t.deserializeDates?JSON.parse(o,function(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e;}return t;}):JSON.parse(o),l.result=i),l.headers=e.message.headers;}catch(e){}if(s>299){let e;let t=new E(i&&i.message?i.message:o&&o.length>0?o:`Failed request: (${s})`,s);t.result=l.result,n(t);}else r(l);}));});}};let w=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});}),rI("8gh3V",function(e,t){function r(e){let t;if(!e.hostname)return!1;if(function(e){let t=e.toLowerCase();return"localhost"===t||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]");}(e.hostname))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;e.port?t=+e.port:"http:"===e.protocol?t=80:"https:"===e.protocol&&(t=443);let n=[e.hostname.toUpperCase()];for(let e of("number"==typeof t&&n.push(`${n[0]}:${t}`),r.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e)))if("*"===e||n.some(t=>t===e||t.endsWith("."+e)||e.startsWith(".")&&t.endsWith(""+e)))return!0;return!1;}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.checkBypass=e.exports.getProxyUrl=void 0,e.exports.getProxyUrl=function(e){let t="https:"===e.protocol;if(r(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return n?new URL(n):void 0;},e.exports.checkBypass=r;}),rI("7i1qo",function(e,t){e.exports=rR("fbmJm");}),rI("fbmJm",function(e,t){var r,n,i,o,a,s;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||ii.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,i){for(var o=p(r,n,i),a=0,s=t.requests.length;s>a;++a){var l=t.requests[a];if(l.host===o.host&&l.port===o.port){t.requests.splice(a,1),l.request.onSocket(e);return;}}e.destroy(),t.removeSocket(e);});}function u(e,t){var r=this;l.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=d({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),a=ri.connect(0,o);r.sockets[r.sockets.indexOf(n)]=a,t(a);});}function p(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e;}function d(e){for(var t=1,r=arguments.length;r>t;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o];void 0!==n[s]&&(e[s]=n[s]);}}return e;}c(e.exports,"httpOverHttp",()=>r,e=>r=e),c(e.exports,"httpsOverHttp",()=>n,e=>n=e),c(e.exports,"httpOverHttps",()=>i,e=>i=e),c(e.exports,"httpsOverHttps",()=>o,e=>o=e),c(e.exports,"debug",()=>a,e=>a=e),r=function(e){var t=new l(e);return t.request=ii.request,t;},n=function(e){var t=new l(e);return t.request=ii.request,t.createSocket=u,t.defaultPort=443,t;},i=function(e){var t=new l(e);return t.request=io.request,t;},o=function(e){var t=new l(e);return t.request=io.request,t.createSocket=u,t.defaultPort=443,t;},rs.inherits(l,ro.EventEmitter),l.prototype.addRequest=function(e,t,r,n){var i=this,o=d({request:e},i.options,p(t,r,n));if(i.sockets.length>=this.maxSockets){i.requests.push(o);return;}i.createSocket(o,function(t){function r(){i.emit("free",t,o);}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n);}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t);});},l.prototype.createSocket=function(e,t){function r(r,n,l){if(i.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){s("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var u=Error("tunneling socket could not be established, statusCode="+r.statusCode);u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}if(l.length>0){s("got illegal response body from proxy"),n.destroy();var u=Error("got illegal response body from proxy");u.code="ECONNRESET",e.request.emit("error",u),o.removeSocket(a);return;}return s("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=n,t(n);}var n,i,o=this,a={};o.sockets.push(a),n=d({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}}),e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),s("making CONNECT request"),(i=o.request(n)).useChunkedEncodingByDefault=!1,i.once("response",function(e){e.upgrade=!0;}),i.once("upgrade",function(e,t,n){process.nextTick(function(){r(e,t,n);});}),i.once("connect",r),i.once("error",function(t){i.removeAllListeners(),s("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var r=Error("tunneling socket could not be established, cause="+t.message);r.code="ECONNRESET",e.request.emit("error",r),o.removeSocket(a);}),i.end();},l.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,function(e){r.request.onSocket(e);});}},process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?s=function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e);}:s=function(){},a=s;}),rI("3T6Pq",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.PersonalAccessTokenCredentialHandler=e.exports.BearerCredentialHandler=e.exports.BasicCredentialHandler=void 0,e.exports.BasicCredentialHandler=class{constructor(e,t){this.username=e,this.password=t;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from(`${this.username}:${this.password}`).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.BearerCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Bearer "+this.token;}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}},e.exports.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e;}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization="Basic "+Buffer.from("PAT:"+this.token).toString("base64");}canHandleAuthentication(){return!1;}handleAuthentication(){return r(this,void 0,void 0,function*(){throw Error("not implemented");});}};}),rI("dTpO2",function(e,t){var r=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.summary=e.exports.markdownSummary=e.exports.SUMMARY_DOCS_URL=e.exports.SUMMARY_ENV_VAR=void 0;let{access:n,appendFile:i,writeFile:o}=it.promises;e.exports.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",e.exports.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";let a=new class{constructor(){this._buffer="";}filePath(){return r(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[e.exports.SUMMARY_ENV_VAR];if(!t)throw Error(`Unable to find environment variable for $${e.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield n(t,it.constants.R_OK|it.constants.W_OK);}catch(e){throw Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`);}return this._filePath=t,this._filePath;});}wrap(e,t,r={}){let n=Object.entries(r).map(([e,t])=>` ${e}="${t}"`).join("");return t?`<${e}${n}>${t}`:`<${e}${n}>`;}write(e){return r(this,void 0,void 0,function*(){let t=!!(null==e?void 0:e.overwrite),r=yield this.filePath();return yield(t?o:i)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer();});}clear(){return r(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0});});}stringify(){return this._buffer;}isEmptyBuffer(){return 0===this._buffer.length;}emptyBuffer(){return this._buffer="",this;}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this;}addEOL(){return this.addRaw(n7.EOL);}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL();}addList(e,t=!1){let r=e.map(e=>this.wrap("li",e)).join(""),n=this.wrap(t?"ol":"ul",r);return this.addRaw(n).addEOL();}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if("string"==typeof e)return this.wrap("td",e);let{header:t,data:r,colspan:n,rowspan:i}=e,o=Object.assign(Object.assign({},n&&{colspan:n}),i&&{rowspan:i});return this.wrap(t?"th":"td",r,o);}).join("");return this.wrap("tr",t);}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL();}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL();}addImage(e,t,r){let{width:n,height:i}=r||{},o=Object.assign(Object.assign({},n&&{width:n}),i&&{height:i}),a=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(a).addEOL();}addHeading(e,t){let r="h"+t,n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(n,e);return this.addRaw(i).addEOL();}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL();}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL();}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL();}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL();}}();e.exports.markdownSummary=a,e.exports.summary=a;}),rI("azKnO",function(e,t){var r,n,i;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toPlatformPath=e.exports.toWin32Path=e.exports.toPosixPath=void 0;let o=i(ie);e.exports.toPosixPath=function(e){return e.replace(/[\\]/g,"/");},e.exports.toWin32Path=function(e){return e.replace(/[/]/g,"\\");},e.exports.toPlatformPath=function(e){return e.replace(/[/\\]/g,o.sep);};}),rI("eCDnw",function(e,t){var r=ie.resolve(__dirname,"../../node_modules/numerous/lib");(function(){var t,n;function i(e,r,n){if(o(e),"object"!=typeof n)throw Error("List of variants should be specified as an object");var i=t[e](r);return void 0!==n[i]?n[i]:null;}function o(e){!(void 0!==t[e])&&function(e){try{require(r+"/../locales/"+e+".js");}catch(t){throw Error("Failed to load the following locale: "+e);}}(e);}t={},n={create:function(e){return o(e),{pluralize:function(t,r){return i(e,t,r);}};},addLocale:function(e,r){t[e]=r;},pluralize:i},void 0!==e.exports?e.exports=n:this.numerous=n;}).call(e.exports);}),rI("gMm9F",function(e,t){function r(e){for(let t of(Array.isArray(e)||(e=[e]),e)){let{id:e,data:r}=t;s[e]=r;}}var n=rR("iWDmx"),i=rR("9xs9T");let o=[["years",290304e5],["months",24192e5],["weeks",6048e5],["days",864e5],["hours",36e5],["minutes",6e4],["seconds",1e3]],a={locale:"en",span:2,delimiter:", ",unitType:"long",unitTypeLookupOrder:["long","short","narrow"],autoloadLocales:!0},s={};e.exports={create:function(e){return e=Object.assign({},a,e||{}),{format:function(t,a,l){return function(e,t,a){if(function(e,t){let{autoload:n}=t;if(!s[e]){if(i&&n)(function(e){try{r(require(`../locales/${e}.js`));}catch(t){throw Error(`Failed to load locale: ${e} from ../locales/${e}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${t}`);}})(e);else throw Error(`Missing locale: ${e}, you must load it manually before using it`);}}(a.locale,{autoload:a.autoloadLocales}),!e)throw Error("Missing first date argument");if(!t)throw Error("Missing second date argument");let l=function(e,t){let r=t-e,n=[];return o.some(function(e){let t=e[0],i=e[1],o=Math.floor(r/i);if(r-=o*i,n.push([t,o]),r<=0)return!0;}),n;}(e,t),u=[];for(let e of l){let[t,r]=e;if(r>0&&u.push(function(e,t,r){let i=function(e){let t=s[e.locale],r=e.unitTypeLookupOrder.slice();r.unshift(e.unitType);let n=null;if((r=Array.from(new Set(r))).some(function(e){if(void 0!==t[e])return n=t[e],!0;}),null===n)throw Error("Can not find any unit type data for locale: "+e.locale);return n;}(r);return n.pluralize(r.locale,t,i[e]).replace("{0}",t);}(t,r,a)),u.length>=a.span)break;}return u.join(a.delimiter);}(t,a,l=Object.assign({},e,l||{}));}};},addLocale:r,defaultConfig:a};}),rI("iWDmx",function(e,t){e.exports=rR("eCDnw");}),rI("9xs9T",function(e,t){e.exports=!!("undefined"!=typeof process&&process.versions&&process.versions.node);}),rI("bGwAu",function(e,t){function r(e,t,r){return!!(e.isSymbolicLink()||e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r||-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{for(let[t,r]of f)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e;},m=(e,t,r)=>{let n=h(t),i=p++;a(e,i,t),c[e]=i,u[i]=t,s[i]=new RegExp(t,r?"g":void 0),l[i]=new RegExp(n,r?"g":void 0);};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${d}*`),m("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${u[c.NUMERICIDENTIFIER]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NUMERICIDENTIFIERLOOSE]}|${u[c.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${d}+`),m("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),m("FULL",`^${u[c.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),m("LOOSE",`^${u[c.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),m("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${u[c.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",u[c.COERCEPLAIN]+`(?:${u[c.PRERELEASE]})?`+`(?:${u[c.BUILD]})?`+"(?:$|[^\\d])"),m("COERCERTL",u[c.COERCE],!0),m("COERCERTLFULL",u[c.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$");}),rI("3qgxS",function(e,t){let r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};}),rI("3CqZ1",function(e,t){let r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r;}),rI("aMLnW",function(e,t){var r=rR("3CqZ1"),n=rR("3qgxS"),i=n.MAX_LENGTH,o=n.MAX_SAFE_INTEGER,a=rR("9J5od"),s=a.safeRe,l=a.t,u=rR("6omBt"),c=rR("fx8Ft").compareIdentifiers;class p{constructor(e,t){if(t=u(t),e instanceof p){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;e=e.version;}else if("string"!=typeof e)throw TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>i)throw TypeError(`version is longer than ${i} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?s[l.LOOSE]:s[l.FULL]);if(!n)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===r)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(e);}}if(t){let n=[t,e];!1===r&&(n=[t]),0===c(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n;}break;}default:throw Error("invalid increment argument: "+e);}return this.raw=this.format(),this.build.length&&(this.raw+="+"+this.build.join(".")),this;}}e.exports=p;}),rI("6omBt",function(e,t){let r=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:n;}),rI("fx8Ft",function(e,t){let r=(e,t)=>{let r=/^[0-9]+$/.test(e),n=/^[0-9]+$/.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:t>e?-1:1;};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)};}),rI("UI3XL",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t);}catch(e){if(!n)return null;throw e;}};}),rI("l655J",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,t);return n?n.version:null;};}),rI("jzJq8",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null;};}),rI("b1nH1",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n,i,o)=>{"string"==typeof n&&(o=i,i=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,i,o).version;}catch(e){return null;}};}),rI("inG4j",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,null,!0),i=r(t,null,!0),o=n.compare(i);if(0===o)return null;let a=o>0,s=a?n:i,l=a?i:n,u=!!s.prerelease.length;if(l.prerelease.length&&!u)return l.patch||l.minor?s.patch?"patch":s.minor?"minor":"major":"major";let c=u?"pre":"";return n.major!==i.major?c+"major":n.minor!==i.minor?c+"minor":n.patch!==i.patch?c+"patch":"prerelease";};}),rI("2aJGP",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).major;}),rI("h6Ixq",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).minor;}),rI("90ROK",function(e,t){var r=rR("aMLnW");e.exports=(e,t)=>new r(e,t).patch;}),rI("8m4O1",function(e,t){var r=rR("UI3XL");e.exports=(e,t)=>{let n=r(e,t);return n&&n.prerelease.length?n.prerelease:null;};}),rI("3uysP",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n));}),rI("hYBTv",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(t,e,n);}),rI("ftcZo",function(e,t){var r=rR("3uysP");e.exports=(e,t)=>r(e,t,!0);}),rI("1CIrW",function(e,t){var r=rR("aMLnW");e.exports=(e,t,n)=>{let i=new r(e,n),o=new r(t,n);return i.compare(o)||i.compareBuild(o);};}),rI("exBHN",function(e,t){var r=rR("1CIrW");e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t));}),rI("lm1lq",function(e,t){var r=rR("1CIrW");e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t));}),rI("cPjhN",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(e,t,n)>0;}),rI("avz3V",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0>r(e,t,n);}),rI("fXQFJ",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0===r(e,t,n);}),rI("bu0Ra",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0!==r(e,t,n);}),rI("9xdhv",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>r(e,t,n)>=0;}),rI("8aNoG",function(e,t){var r=rR("3uysP");e.exports=(e,t,n)=>0>=r(e,t,n);}),rI("8gipG",function(e,t){var r=rR("fXQFJ"),n=rR("bu0Ra"),i=rR("cPjhN"),o=rR("9xdhv"),a=rR("avz3V"),s=rR("8aNoG");e.exports=(e,t,l,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e===l;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof l&&(l=l.version),e!==l;case"":case"=":case"==":return r(e,l,u);case"!=":return n(e,l,u);case">":return i(e,l,u);case">=":return o(e,l,u);case"<":return a(e,l,u);case"<=":return s(e,l,u);default:throw TypeError("Invalid operator: "+t);}};}),rI("l8hao",function(e,t){var r=rR("aMLnW"),n=rR("UI3XL"),i=rR("9J5od"),o=i.safeRe,a=i.t;e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;let i=null;if((t=t||{}).rtl){let r;let n=t.includePrerelease?o[a.COERCERTLFULL]:o[a.COERCERTL];for(;(r=n.exec(e))&&(!i||i.index+i[0].length!==e.length);)i&&r.index+r[0].length===i.index+i[0].length||(i=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1;}else i=e.match(t.includePrerelease?o[a.COERCEFULL]:o[a.COERCE]);if(null===i)return null;let s=i[2],l=i[3]||"0",u=i[4]||"0",c=t.includePrerelease&&i[5]?"-"+i[5]:"",p=t.includePrerelease&&i[6]?"+"+i[6]:"";return n(`${s}.${l}.${u}${c}${p}`,t);};}),rI("dSz9p",function(e,t){let r=Symbol();class n{static get ANY(){return r;}constructor(e,t){if(t=i(t),e instanceof n){if(!!t.loose===e.loose)return e;e=e.value;}u("comparator",e=e.trim().split(/\s+/).join(" "),t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this);}parse(e){let t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new c(n[2],this.options.loose):this.semver=r;}toString(){return this.value;}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new c(e,this.options);}catch(e){return!1;}return l(e,this.operator,this.semver,this.options);}intersects(e,t){if(!(e instanceof n))throw TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(e.value,t).test(this.value):""===e.operator?""===e.value||new p(this.value,t).test(e.semver):!((t=i(t)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">"));}}e.exports=n;var i=rR("6omBt"),o=rR("9J5od"),a=o.safeRe,s=o.t,l=rR("8gipG"),u=rR("3CqZ1"),c=rR("aMLnW"),p=rR("4FTez");}),rI("4FTez",function(e,t){class r{constructor(e,t){if(t=i(t),e instanceof r){if(!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease)return e;return new r(e.raw,t);}if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!v(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(1===e.length&&E(e[0])){this.set=[e];break;}}}this.format();}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range;}toString(){return this.range;}parseRange(e){let t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=n.get(t);if(r)return r;let i=this.options.loose,s=i?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];a("hyphen replace",e=e.replace(s,A(this.options.includePrerelease))),a("comparator trim",e=e.replace(u[c.COMPARATORTRIM],p)),a("tilde trim",e=e.replace(u[c.TILDETRIM],d)),a("caret trim",e=e.replace(u[c.CARETTRIM],f));let l=e.split(" ").map(e=>w(e,this.options)).join(" ").split(/\s+/).map(e=>O(e,this.options));i&&(l=l.filter(e=>(a("loose invalid filter",e,this.options),!!e.match(u[c.COMPARATORLOOSE])))),a("range list",l);let h=new Map();for(let e of l.map(e=>new o(e,this.options))){if(v(e))return[e];h.set(e.value,e);}h.size>1&&h.has("")&&h.delete("");let E=[...h.values()];return n.set(t,E),E;}intersects(e,t){if(!(e instanceof r))throw TypeError("a Range is required");return this.set.some(r=>y(r,t)&&e.set.some(e=>y(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))));}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options);}catch(e){return!1;}for(let t=0;t"<0.0.0-0"===e.value,E=e=>""===e.value,y=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r;},w=(e,t)=>(a("comp",e,t),a("caret",e=S(e,t)),a("tildes",e=x(e,t)),a("xrange",e=N(e,t)),a("stars",e=I(e,t)),e),b=e=>!e||"x"===e.toLowerCase()||"*"===e,x=(e,t)=>e.trim().split(/\s+/).map(e=>D(e,t)).join(" "),D=(e,t)=>{let r=t.loose?u[c.TILDELOOSE]:u[c.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return a("tilde",e,t,r,n,i,o),b(r)?s="":b(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:b(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(a("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,a("tilde return",s),s;});},S=(e,t)=>e.trim().split(/\s+/).map(e=>T(e,t)).join(" "),T=(e,t)=>{a("caret",e,t);let r=t.loose?u[c.CARETLOOSE]:u[c.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let l;return a("caret",e,t,r,i,o,s),b(r)?l="":b(i)?l=`>=${r}.0.0${n} <${+r+1}.0.0-0`:b(o)?l="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(a("replaceCaret pr",s),l="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(a("no pr"),l="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),a("caret return",l),l;});},N=(e,t)=>(a("replaceXRanges",e,t),e.split(/\s+/).map(e=>R(e,t)).join(" ")),R=(e,t)=>{e=e.trim();let r=t.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return e.replace(r,(r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);let u=b(i),c=u||b(o),p=c||b(s);return"="===n&&p&&(n=""),l=t.includePrerelease?"-0":"",u?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(o=0),s=0,">"===n?(n=">=",c?(i=+i+1,o=0):o=+o+1,s=0):"<="===n&&(n="<",c?i=+i+1:o=+o+1),"<"===n&&(l="-0"),r=`${n+i}.${o}.${s}${l}`):c?r=`>=${i}.0.0${l} <${+i+1}.0.0-0`:p&&(r=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),a("xRange return",r),r;});},I=(e,t)=>(a("replaceStars",e,t),e.trim().replace(u[c.STAR],"")),O=(e,t)=>(a("replaceGTE0",e,t),e.trim().replace(u[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),A=e=>(t,r,n,i,o,a,s,l,u,c,p,d,f)=>(r=b(n)?"":b(i)?`>=${n}.0.0${e?"-0":""}`:b(o)?`>=${n}.${i}.0${e?"-0":""}`:a?">="+r:`>=${r}${e?"-0":""}`,l=b(u)?"":b(c)?`<${+u+1}.0.0-0`:b(p)?`<${u}.${+c+1}.0-0`:d?`<=${u}.${c}.${p}-${d}`:e?`<${u}.${c}.${+p+1}-0`:"<="+l,`${r} ${l}`.trim()),C=(e,t,r)=>{for(let r=0;r0){let n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0;}return!1;}return!0;};}),rI("eGCLk",function(e,t){var r=rR("JD6z9");let n=Symbol(),i=Symbol(),o=Symbol(),a=Symbol(),s=Symbol(),l=Symbol(),u=Symbol(),c=Symbol(),p=Symbol(),d=Symbol(),f=()=>1,h=(e,t,r)=>{let n=e[p].get(t);if(n){let t=n.value;if(m(e,t)){if(v(e,n),!e[a])return;}else r&&(e[d]&&(n.value.now=Date.now()),e[c].unshiftNode(n));return t.value;}},m=(e,t)=>{if(!t||!t.maxAge&&!e[s])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s];},g=e=>{if(e[i]>e[n])for(let t=e[c].tail;e[i]>e[n]&&null!==t;){let r=t.prev;v(e,t),t=r;}},v=(e,t)=>{if(t){let r=t.value;e[l]&&e[l](r.key,r.value),e[i]-=r.length,e[p].delete(r.key),e[c].removeNode(t);}};class E{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0;}}let y=(e,t,r,n)=>{let i=r.value;m(e,i)&&(v(e,r),e[a]||(i=void 0)),i&&t.call(n,i.value,i.key,e);};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw TypeError("max must be a non-negative number");this[n]=e.max||1/0;let t=e.length||f;if(this[o]="function"!=typeof t?f:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[d]=e.updateAgeOnGet||!1,this.reset();}set max(e){if("number"!=typeof e||e<0)throw TypeError("max must be a non-negative number");this[n]=e||1/0,g(this);}get max(){return this[n];}set allowStale(e){this[a]=!!e;}get allowStale(){return this[a];}set maxAge(e){if("number"!=typeof e)throw TypeError("maxAge must be a non-negative number");this[s]=e,g(this);}get maxAge(){return this[s];}set lengthCalculator(e){"function"!=typeof e&&(e=f),e!==this[o]&&(this[o]=e,this[i]=0,this[c].forEach(e=>{e.length=this[o](e.value,e.key),this[i]+=e.length;})),g(this);}get lengthCalculator(){return this[o];}get length(){return this[i];}get itemCount(){return this[c].length;}rforEach(e,t){t=t||this;for(let r=this[c].tail;null!==r;){let n=r.prev;y(this,e,r,t),r=n;}}forEach(e,t){t=t||this;for(let r=this[c].head;null!==r;){let n=r.next;y(this,e,r,t),r=n;}}keys(){return this[c].toArray().map(e=>e.key);}values(){return this[c].toArray().map(e=>e.value);}reset(){this[l]&&this[c]&&this[c].length&&this[c].forEach(e=>this[l](e.key,e.value)),this[p]=new Map(),this[c]=new r(),this[i]=0;}dump(){return this[c].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e);}dumpLru(){return this[c];}set(e,t,r){if((r=r||this[s])&&"number"!=typeof r)throw TypeError("maxAge must be a number");let a=r?Date.now():0,d=this[o](t,e);if(this[p].has(e)){if(d>this[n])return v(this,this[p].get(e)),!1;let o=this[p].get(e).value;return this[l]&&!this[u]&&this[l](e,o.value),o.now=a,o.maxAge=r,o.value=t,this[i]+=d-o.length,o.length=d,this.get(e),g(this),!0;}let f=new E(e,t,d,a,r);return f.length>this[n]?(this[l]&&this[l](e,t),!1):(this[i]+=f.length,this[c].unshift(f),this[p].set(e,this[c].head),g(this),!0);}has(e){return!!this[p].has(e)&&!m(this,this[p].get(e).value);}get(e){return h(this,e,!0);}peek(e){return h(this,e,!1);}pop(){let e=this[c].tail;return e?(v(this,e),e.value):null;}del(e){v(this,this[p].get(e));}load(e){this.reset();let t=Date.now();for(let r=e.length-1;r>=0;r--){let n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{let e=i-t;e>0&&this.set(n.k,n.v,e);}}}prune(){this[p].forEach((e,t)=>h(this,t,!1));}};}),rI("JD6z9",function(e,t){function r(e){var t=this;if(t instanceof r||(t=new r()),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e);});else if(arguments.length>0)for(var n=0,i=arguments.length;i>n;n++)t.push(arguments[n]);return t;}function n(e,t,r,i){if(!(this instanceof n))return new n(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null;}e.exports=r,r.Node=n,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t;},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++;}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++;}},r.prototype.push=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.tail=new n(e,this.tail,null,this),this.head||(this.head=this.tail),this.length++;return this.length;},r.prototype.unshift=function(){for(var e,t=0,r=arguments.length;r>t;t++)e=arguments[t],this.head=new n(e,null,this.head,this),this.tail||(this.tail=this.head),this.length++;return this.length;},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e;}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e;}},r.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next;},r.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev;},r.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&e>t;t++)r=r.next;if(t===e&&null!==r)return r.value;},r.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&e>t;t++)r=r.prev;if(t===e&&null!==r)return r.value;},r.prototype.map=function(e,t){t=t||this;for(var n=new r(),i=this.head;null!==i;)n.push(e.call(t,i.value,this)),i=i.next;return n;},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r(),i=this.tail;null!==i;)n.push(e.call(t,i.value,this)),i=i.prev;return n;},r.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else if(this.head)n=this.head.next,r=this.head.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r;},r.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r;},r.prototype.toArray=function(){for(var e=Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e;},r.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e;},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ii;i++,o=o.next)n.push(o.value);return n;},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r();if(tthis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)n.push(o.value);return n;},r.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,o=this.head;null!==o&&e>i;i++)o=o.next;for(var a=[],i=0;o&&i{try{t=new r(t,n);}catch(e){return!1;}return t.test(e);};}),rI("eRnrA",function(e,t){var r=rR("4FTez");e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));}),rI("aAvhf",function(e,t){var r=rR("aMLnW"),n=rR("4FTez");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||-1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rI("iWAcu",function(e,t){var r=rR("aMLnW"),n=rR("4FTez");e.exports=(e,t,i)=>{let o=null,a=null,s=null;try{s=new n(t,i);}catch(e){return null;}return e.forEach(e=>{s.test(e)&&(!o||1===a.compare(e))&&(a=new r(o=e,i));}),o;};}),rI("32TwK",function(e,t){var r=rR("aMLnW"),n=rR("4FTez"),i=rR("cPjhN");e.exports=(e,t)=>{e=new n(e,t);let o=new r("0.0.0");if(e.test(o)||(o=new r("0.0.0-0"),e.test(o)))return o;o=null;for(let t=0;t{let t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!a||i(t,a))&&(a=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}}),a&&(!o||i(o,a))&&(o=a);}return o&&e.test(o)?o:null;};}),rI("194Ox",function(e,t){var r=rR("4FTez");e.exports=(e,t)=>{try{return new r(e,t).range||"*";}catch(e){return null;}};}),rI("a8VZj",function(e,t){var r=rR("aMLnW"),n=rR("dSz9p");let{ANY:i}=n;var o=rR("4FTez"),a=rR("2bU8Y"),s=rR("cPjhN"),l=rR("avz3V"),u=rR("8aNoG"),c=rR("9xdhv");e.exports=(e,t,p,d)=>{let f,h,m,g,v;switch(e=new r(e,d),t=new o(t,d),p){case">":f=s,h=u,m=l,g=">",v=">=";break;case"<":f=l,h=c,m=s,g="<",v="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(a(e,t,d))return!1;for(let r=0;r{e.semver===i&&(e=new n(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,d)?a=e:m(e.semver,s.semver,d)&&(s=e);}),a.operator===g||a.operator===v||(!s.operator||s.operator===g)&&h(e,s.semver)||s.operator===v&&m(e,s.semver))return!1;}return!0;};}),rI("2yv5J",function(e,t){var r=rR("a8VZj");e.exports=(e,t,n)=>r(e,t,">",n);}),rI("46KXA",function(e,t){var r=rR("a8VZj");e.exports=(e,t,n)=>r(e,t,"<",n);}),rI("e3Thp",function(e,t){var r=rR("4FTez");e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n));}),rI("8g51l",function(e,t){var r=rR("2bU8Y"),n=rR("3uysP");e.exports=(e,t,i)=>{let o=[],a=null,s=null,l=e.sort((e,t)=>n(e,t,i));for(let e of l)r(e,t,i)?(s=e,a||(a=e)):(s&&o.push([a,s]),s=null,a=null);a&&o.push([a,null]);let u=[];for(let[e,t]of o)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push("<="+t):u.push(`${e} - ${t}`):u.push(">="+e):u.push("*");let c=u.join(" || "),p="string"==typeof t.raw?t.raw:t+"";return c.length=0.0.0-0")],l=[new n(">=0.0.0")],u=(e,t,r)=>{let n,u,d,f,h,m,g;if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=r.includePrerelease?s:l;}if(1===t.length&&t[0].semver===i){if(r.includePrerelease)return!0;t=l;}let v=new Set();for(let t of e)">"===t.operator||">="===t.operator?n=c(n,t,r):"<"===t.operator||"<="===t.operator?u=p(u,t,r):v.add(t.semver);if(v.size>1||n&&u&&((d=a(n.semver,u.semver,r))>0||0===d&&(">="!==n.operator||"<="!==u.operator)))return null;for(let e of v){if(n&&!o(e,n+"",r)||u&&!o(e,u+"",r))return null;for(let n of t)if(!o(e,n+"",r))return!1;return!0;}let E=!!u&&!r.includePrerelease&&!!u.semver.prerelease.length&&u.semver,y=!!n&&!r.includePrerelease&&!!n.semver.prerelease.length&&n.semver;for(let e of(E&&1===E.prerelease.length&&"<"===u.operator&&0===E.prerelease[0]&&(E=!1),t)){if(g=g||">"===e.operator||">="===e.operator,m=m||"<"===e.operator||"<="===e.operator,n){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),">"===e.operator||">="===e.operator){if((f=c(n,e,r))===e&&f!==n)return!1;}else if(">="===n.operator&&!o(n.semver,e+"",r))return!1;}if(u){if(E&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===E.major&&e.semver.minor===E.minor&&e.semver.patch===E.patch&&(E=!1),"<"===e.operator||"<="===e.operator){if((h=p(u,e,r))===e&&h!==u)return!1;}else if("<="===u.operator&&!o(u.semver,e+"",r))return!1;}if(!e.operator&&(u||n)&&0!==d)return!1;}return(!n||!m||!!u||0===d)&&(!u||!g||!!n||0===d)&&!y&&!E;},c=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n>0?e:n<0?t:">"===t.operator&&">="===e.operator?t:e;},p=(e,t,r)=>{if(!e)return t;let n=a(e.semver,t.semver,r);return n<0?e:n>0?t:"<"===t.operator&&"<="===e.operator?t:e;};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let i=!1;e:for(let r of e.set){for(let e of t.set){let t=u(r,e,n);if(i=i||null!==t,t)continue e;}if(i)return!1;}return!0;};}),rI("i8A01",function(e,t){e.exports=function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");};}),rI("kY0n1",function(e,t){async function r(e){try{return await(0,rl.promises).access(e),!0;}catch{return!1;}}c(e.exports,"pathExists",()=>r);}),rI("bzNgi",function(e,t){var r,n,i,o,a,s,l,u,d,f,h,m,g;function v(e,t){return Object.keys(t).forEach(r=>{"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]});}),e;}function E(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function y(e,t=!0){return t?(0,ie.basename)(e):(0,ie.basename)(e,(0,ie.extname)(e));}function w(e){return(0,ie.normalize)(e).replace(RegExp((0,r.default)(ie.sep)+"$"),"");}function b(e,t=".exe",r=""){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function x(e,t){let r=(0,ie.extname)(e),n=`${t}${(0,ie.basename)(e,r)}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function D(e,t){let r=(0,ie.extname)(e),n=`${(0,ie.basename)(e,r)}${t}${r}`;return(0,ie.join)((0,ie.dirname)(e),n);}function S(e,t=".cmd",r=".sh"){return"win32"===process.platform?`${e}${t}`:`${e}${r}`;}function T(e){return"win32"===process.platform?e:"./"+e;}function N(e){let t=(0,ie.extname)(e).length;return e.slice(0,-t);}function R(e,t){return p(n)(e,t);}function I(e,t){let r=(0,ie.relative)(t,e);return!(!r||".."===r||r.startsWith(".."+ie.sep)||r===(0,ie.resolve)(e));}c(e.exports,"addExeExt",()=>b),c(e.exports,"addShExt",()=>S),c(e.exports,"addShRelativePrefix",()=>T),c(e.exports,"dirname",()=>ie.dirname),c(e.exports,"join",()=>ie.join),r=rR("iNGpn"),n=rR("axeRu"),i={},E(o={},"name",()=>y),E(a={},"normalizeTrim",()=>w),E(s={},"addExeExt",()=>b),E(l={},"addNamePrefix",()=>x),E(u={},"addNameSuffix",()=>D),E(d={},"addShExt",()=>S),E(f={},"addShRelativePrefix",()=>T),E(h={},"removeExt",()=>N),E(m={},"replaceExt",()=>R),E(g={},"isPathInside",()=>I),v(i,o),v(i,a),v(i,s),v(i,l),v(i,u),v(i,d),v(i,f),v(i,h),v(i,m),v(i,g);}),rI("iNGpn",function(e,t){function r(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d");}c(e.exports,"default",()=>r);}),rI("axeRu",function(e,t){e.exports=function(e,t){if("string"!=typeof e||0===e.length)return e;var r,n=ie.basename(e,ie.extname(e))+t,i=ie.join(ie.dirname(e),n);return(r=e.slice(0,2))==="."+ie.sep||"./"===r?"."+ie.sep+i:i;};}),rI("hZdK0",function(e,t){var r,n,i,o;function a(e){return o(this,void 0,void 0,function*(){if(p.IS_WINDOWS&&/[*"<>|]/.test(e))throw Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield p.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300});}catch(e){throw Error("File was unable to be removed "+e);}});}function s(e){return o(this,void 0,void 0,function*(){ra.ok(e,"a path argument must be provided"),yield p.mkdir(e,{recursive:!0});});}function l(e){return o(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'tool' is required");let t=[];if(p.IS_WINDOWS&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(c.delimiter))e&&t.push(e);if(p.isRooted(e)){let r=yield p.tryGetExecutablePath(e,t);return r?[r]:[];}if(e.includes(c.sep))return[];let r=[];if(process.env.PATH)for(let e of process.env.PATH.split(c.delimiter))e&&r.push(e);let n=[];for(let i of r){let r=yield p.tryGetExecutablePath(c.join(i,e),t);r&&n.push(r);}return n;});}function u(e,t,r){return o(this,void 0,void 0,function*(){if((yield p.lstat(e)).isSymbolicLink()){try{yield p.lstat(t),yield p.unlink(t);}catch(e){"EPERM"===e.code&&(yield p.chmod(t,"0666"),yield p.unlink(t));}let r=yield p.readlink(e);yield p.symlink(r,t,p.IS_WINDOWS?"junction":null);}else(!(yield p.exists(t))||r)&&(yield p.copyFile(e,t));});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.findInPath=e.exports.which=e.exports.mkdirP=e.exports.rmRF=e.exports.mv=e.exports.cp=void 0;let c=i(ie),p=i(rR("ipB3d"));e.exports.cp=function(e,t,r={}){return o(this,void 0,void 0,function*(){let{force:n,recursive:i,copySourceDirectory:a}=function(e){let t=null==e.force||e.force;return{force:t,recursive:!!e.recursive,copySourceDirectory:null==e.copySourceDirectory||!!e.copySourceDirectory};}(r),l=(yield p.exists(t))?yield p.stat(t):null;if(l&&l.isFile()&&!n)return;let d=l&&l.isDirectory()&&a?c.join(t,c.basename(e)):t;if(!(yield p.exists(e)))throw Error("no such file or directory: "+e);if((yield p.stat(e)).isDirectory()){if(i)yield function e(t,r,n,i){return o(this,void 0,void 0,function*(){if(!(n>=255)){for(let o of(n++,yield s(r),yield p.readdir(t))){let a=`${t}/${o}`,s=`${r}/${o}`;(yield p.lstat(a)).isDirectory()?yield e(a,s,n,i):yield u(a,s,i);}yield p.chmod(r,(yield p.stat(t)).mode);}});}(e,d,0,n);else throw Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);}else{if(""===c.relative(e,d))throw Error(`'${d}' and '${e}' are the same file`);yield u(e,d,n);}});},e.exports.mv=function(e,t,r={}){return o(this,void 0,void 0,function*(){if(yield p.exists(t)){let n=!0;if((yield p.isDirectory(t))&&(t=c.join(t,c.basename(e)),n=yield p.exists(t)),n){if(null==r.force||r.force)yield a(t);else throw Error("Destination already exists");}}yield s(c.dirname(t)),yield p.rename(e,t);});},e.exports.rmRF=a,e.exports.mkdirP=s,e.exports.which=function e(t,r){return o(this,void 0,void 0,function*(){if(!t)throw Error("parameter 'tool' is required");if(r){let r=yield e(t,!1);if(!r){if(p.IS_WINDOWS)throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);throw Error(`Unable to locate executable file: ${t}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);}return r;}let n=yield l(t);return n&&n.length>0?n[0]:"";});},e.exports.findInPath=l;}),rI("ipB3d",function(e,t){var r,n,i,o,a;function s(e){return(1&e.mode)>0||(8&e.mode)>0&&e.gid===process.getgid()||(64&e.mode)>0&&e.uid===process.getuid();}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getCmdPath=e.exports.tryGetExecutablePath=e.exports.isRooted=e.exports.isDirectory=e.exports.exists=e.exports.READONLY=e.exports.UV_FS_O_EXLOCK=e.exports.IS_WINDOWS=e.exports.unlink=e.exports.symlink=e.exports.stat=e.exports.rmdir=e.exports.rm=e.exports.rename=e.exports.readlink=e.exports.readdir=e.exports.open=e.exports.mkdir=e.exports.lstat=e.exports.copyFile=e.exports.chmod=void 0;let l=i(it),u=i(ie);a=l.promises,e.exports.chmod=a.chmod,e.exports.copyFile=a.copyFile,e.exports.lstat=a.lstat,e.exports.mkdir=a.mkdir,e.exports.open=a.open,e.exports.readdir=a.readdir,e.exports.readlink=a.readlink,e.exports.rename=a.rename,e.exports.rm=a.rm,e.exports.rmdir=a.rmdir,e.exports.stat=a.stat,e.exports.symlink=a.symlink,e.exports.unlink=a.unlink,e.exports.IS_WINDOWS="win32"===process.platform,e.exports.UV_FS_O_EXLOCK=268435456,e.exports.READONLY=l.constants.O_RDONLY,e.exports.exists=function(t){return o(this,void 0,void 0,function*(){try{yield e.exports.stat(t);}catch(e){if("ENOENT"===e.code)return!1;throw e;}return!0;});},e.exports.isDirectory=function(t,r=!1){return o(this,void 0,void 0,function*(){return(r?yield e.exports.stat(t):yield e.exports.lstat(t)).isDirectory();});},e.exports.isRooted=function(t){var r;if(r=(r=t)||"",!(t=e.exports.IS_WINDOWS?(r=r.replace(/\//g,"\\")).replace(/\\\\+/g,"\\"):r.replace(/\/\/+/g,"/")))throw Error('isRooted() parameter "p" cannot be empty');return e.exports.IS_WINDOWS?t.startsWith("\\")||/^[A-Z]:/i.test(t):t.startsWith("/");},e.exports.tryGetExecutablePath=function(t,r){return o(this,void 0,void 0,function*(){let n;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){let e=u.extname(t).toUpperCase();if(r.some(t=>t.toUpperCase()===e))return t;}else if(s(n))return t;}let i=t;for(let o of r){t=i+o,n=void 0;try{n=yield e.exports.stat(t);}catch(e){"ENOENT"!==e.code&&console.log(`Unexpected error attempting to determine if executable file exists '${t}': ${e}`);}if(n&&n.isFile()){if(e.exports.IS_WINDOWS){try{let r=u.dirname(t),n=u.basename(t).toUpperCase();for(let i of yield e.exports.readdir(r))if(n===i.toUpperCase()){t=u.join(r,i);break;}}catch(e){console.log(`Unexpected error attempting to determine the actual case of the file '${t}': ${e}`);}return t;}if(s(n))return t;}}return"";});},e.exports.getCmdPath=function(){var e;return null!==(e=process.env.COMSPEC)&&void 0!==e?e:"cmd.exe";};}),rI("42L4Y",function(e,t){var r,n,i,o,a;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports._readLinuxVersionFile=e.exports._getOsVersion=e.exports._findMatch=void 0;let s=i(rR("lroIv"));a=rR("4t50X"),e.exports._findMatch=function(t,r,n,i){return o(this,void 0,void 0,function*(){let o,l,u;let c=n7.platform();for(let o of n){let n=o.version;if(a.debug(`check ${n} satisfies ${t}`),s.satisfies(n,t)&&(!r||o.stable===r)&&(u=o.files.find(t=>{a.debug(`${t.arch}===${i} && ${t.platform}===${c}`);let r=t.arch===i&&t.platform===c;if(r&&t.platform_version){let n=e.exports._getOsVersion();r=n===t.platform_version||s.satisfies(n,t.platform_version);}return r;}))){a.debug("matched "+o.version),l=o;break;}}return l&&u&&((o=Object.assign({},l)).files=[u]),o;});},e.exports._getOsVersion=function(){let t=n7.platform(),r="";if("darwin"===t)r=ru.execSync("sw_vers -productVersion").toString();else if("linux"===t){let t=e.exports._readLinuxVersionFile();if(t)for(let e of t.split("\n")){let t=e.split("=");if(2===t.length&&("VERSION_ID"===t[0].trim()||"DISTRIB_RELEASE"===t[0].trim())){r=t[1].trim().replace(/^"/,"").replace(/"$/,"");break;}}}return r;},e.exports._readLinuxVersionFile=function(){let e="/etc/lsb-release",t="/etc/os-release",r="";return it.existsSync(e)?r=it.readFileSync(e).toString():it.existsSync(t)&&(r=it.readFileSync(t).toString()),r;};}),rI("lroIv",function(e,t){function r(e){O[e]=A++;}function n(e){for(var t=0;t<_.length;t++){var r=_[t][0],n=_[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}");}return e;}function i(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e||e.length>D||!(t.loose?R[O.LOOSE]:R[O.FULL]).test(e))return null;try{return new o(e,t);}catch(e){return null;}}function o(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o){if(e.loose===t.loose)return e;e=e.version;}else if("string"!=typeof e)throw TypeError("Invalid Version: "+e);if(e.length>D)throw TypeError("version is longer than "+D+" characters");if(!(this instanceof o))return new o(e,t);x("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?R[O.LOOSE]:R[O.FULL]);if(!r)throw TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>S||this.major<0)throw TypeError("Invalid major version");if(this.minor>S||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>S||this.patch<0)throw TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&te?-1:1;}function s(e,t,r){return new o(e,r).compare(new o(t,r));}function l(e,t,r){return s(e,t,r)>0;}function u(e,t,r){return 0>s(e,t,r);}function c(e,t,r){return 0===s(e,t,r);}function p(e,t,r){return 0!==s(e,t,r);}function d(e,t,r){return s(e,t,r)>=0;}function f(e,t,r){return 0>=s(e,t,r);}function h(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return c(e,r,n);case"!=":return p(e,r,n);case">":return l(e,r,n);case">=":return d(e,r,n);case"<":return u(e,r,n);case"<=":return f(e,r,n);default:throw TypeError("Invalid operator: "+t);}}function m(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof m){if(!!t.loose===e.loose)return e;e=e.value;}if(!(this instanceof m))return new m(e,t);e=e.trim().split(/\s+/).join(" "),x("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===P?this.value="":this.value=this.operator+this.semver.version,x("comp",this);}function g(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof g)return!!t.loose===e.loose&&!!t.includePrerelease===e.includePrerelease?e:new g(e.raw,t);if(e instanceof m)return new g(e.value,t);if(!(this instanceof g))return new g(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim());},this).filter(function(e){return e.length;}),!this.set.length)throw TypeError("Invalid SemVer Range: "+this.raw);this.format();}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(e){return i.intersects(e,t);}),i=n.pop();return r;}function E(e){return!e||"x"===e.toLowerCase()||"*"===e;}function y(e,t,r,n,i,o,a,s,l,u,c,p,d){return((t=E(r)?"":E(n)?">="+r+".0.0":E(i)?">="+r+"."+n+".0":">="+t)+" "+(s=E(l)?"":E(u)?"<"+(+l+1)+".0.0":E(c)?"<"+l+"."+(+u+1)+".0":p?"<="+l+"."+u+"."+c+"-"+p:"<="+s)).trim();}function w(e,t,r){try{t=new g(t,r);}catch(e){return!1;}return t.test(e);}function b(e,t,r,n){switch(e=new o(e,n),t=new g(t,n),r){case">":i=l,a=f,s=u,c=">",p=">=";break;case"<":i=u,a=d,s=l,c="<",p="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"');}if(w(e,t,n))return!1;for(var i,a,s,c,p,h=0;h=0.0.0")),E=E||e,y=y||e,i(e.semver,E.semver,n)?E=e:s(e.semver,y.semver,n)&&(y=e);}),E.operator===c||E.operator===p||(!y.operator||y.operator===c)&&a(e,y.semver)||y.operator===p&&s(e,y.semver))return!1;}return!0;}t=e.exports=o,"object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?x=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e);}:x=function(){},t.SEMVER_SPEC_VERSION="2.0.0",D=256,S=Number.MAX_SAFE_INTEGER||9007199254740991,T=D-6,N=t.re=[],R=t.safeRe=[],I=t.src=[],O=t.tokens={},A=0,_=[["\\s",1],["\\d",D],[C="[a-zA-Z0-9-]",T]],r("NUMERICIDENTIFIER"),I[O.NUMERICIDENTIFIER]="0|[1-9]\\d*",r("NUMERICIDENTIFIERLOOSE"),I[O.NUMERICIDENTIFIERLOOSE]="\\d+",r("NONNUMERICIDENTIFIER"),I[O.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+C+"*",r("MAINVERSION"),I[O.MAINVERSION]="("+I[O.NUMERICIDENTIFIER]+")\\.("+I[O.NUMERICIDENTIFIER]+")\\.("+I[O.NUMERICIDENTIFIER]+")",r("MAINVERSIONLOOSE"),I[O.MAINVERSIONLOOSE]="("+I[O.NUMERICIDENTIFIERLOOSE]+")\\.("+I[O.NUMERICIDENTIFIERLOOSE]+")\\.("+I[O.NUMERICIDENTIFIERLOOSE]+")",r("PRERELEASEIDENTIFIER"),I[O.PRERELEASEIDENTIFIER]="(?:"+I[O.NUMERICIDENTIFIER]+"|"+I[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASEIDENTIFIERLOOSE"),I[O.PRERELEASEIDENTIFIERLOOSE]="(?:"+I[O.NUMERICIDENTIFIERLOOSE]+"|"+I[O.NONNUMERICIDENTIFIER]+")",r("PRERELEASE"),I[O.PRERELEASE]="(?:-("+I[O.PRERELEASEIDENTIFIER]+"(?:\\."+I[O.PRERELEASEIDENTIFIER]+")*))",r("PRERELEASELOOSE"),I[O.PRERELEASELOOSE]="(?:-?("+I[O.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+I[O.PRERELEASEIDENTIFIERLOOSE]+")*))",r("BUILDIDENTIFIER"),I[O.BUILDIDENTIFIER]=C+"+",r("BUILD"),I[O.BUILD]="(?:\\+("+I[O.BUILDIDENTIFIER]+"(?:\\."+I[O.BUILDIDENTIFIER]+")*))",r("FULL"),r("FULLPLAIN"),I[O.FULLPLAIN]="v?"+I[O.MAINVERSION]+I[O.PRERELEASE]+"?"+I[O.BUILD]+"?",I[O.FULL]="^"+I[O.FULLPLAIN]+"$",r("LOOSEPLAIN"),I[O.LOOSEPLAIN]="[v=\\s]*"+I[O.MAINVERSIONLOOSE]+I[O.PRERELEASELOOSE]+"?"+I[O.BUILD]+"?",r("LOOSE"),I[O.LOOSE]="^"+I[O.LOOSEPLAIN]+"$",r("GTLT"),I[O.GTLT]="((?:<|>)?=?)",r("XRANGEIDENTIFIERLOOSE"),I[O.XRANGEIDENTIFIERLOOSE]=I[O.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",r("XRANGEIDENTIFIER"),I[O.XRANGEIDENTIFIER]=I[O.NUMERICIDENTIFIER]+"|x|X|\\*",r("XRANGEPLAIN"),I[O.XRANGEPLAIN]="[v=\\s]*("+I[O.XRANGEIDENTIFIER]+")(?:\\.("+I[O.XRANGEIDENTIFIER]+")(?:\\.("+I[O.XRANGEIDENTIFIER]+")(?:"+I[O.PRERELEASE]+")?"+I[O.BUILD]+"?)?)?",r("XRANGEPLAINLOOSE"),I[O.XRANGEPLAINLOOSE]="[v=\\s]*("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+I[O.XRANGEIDENTIFIERLOOSE]+")(?:"+I[O.PRERELEASELOOSE]+")?"+I[O.BUILD]+"?)?)?",r("XRANGE"),I[O.XRANGE]="^"+I[O.GTLT]+"\\s*"+I[O.XRANGEPLAIN]+"$",r("XRANGELOOSE"),I[O.XRANGELOOSE]="^"+I[O.GTLT]+"\\s*"+I[O.XRANGEPLAINLOOSE]+"$",r("COERCE"),I[O.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",r("COERCERTL"),N[O.COERCERTL]=RegExp(I[O.COERCE],"g"),R[O.COERCERTL]=RegExp(n(I[O.COERCE]),"g"),r("LONETILDE"),I[O.LONETILDE]="(?:~>?)",r("TILDETRIM"),I[O.TILDETRIM]="(\\s*)"+I[O.LONETILDE]+"\\s+",N[O.TILDETRIM]=RegExp(I[O.TILDETRIM],"g"),R[O.TILDETRIM]=RegExp(n(I[O.TILDETRIM]),"g"),r("TILDE"),I[O.TILDE]="^"+I[O.LONETILDE]+I[O.XRANGEPLAIN]+"$",r("TILDELOOSE"),I[O.TILDELOOSE]="^"+I[O.LONETILDE]+I[O.XRANGEPLAINLOOSE]+"$",r("LONECARET"),I[O.LONECARET]="(?:\\^)",r("CARETTRIM"),I[O.CARETTRIM]="(\\s*)"+I[O.LONECARET]+"\\s+",N[O.CARETTRIM]=RegExp(I[O.CARETTRIM],"g"),R[O.CARETTRIM]=RegExp(n(I[O.CARETTRIM]),"g"),r("CARET"),I[O.CARET]="^"+I[O.LONECARET]+I[O.XRANGEPLAIN]+"$",r("CARETLOOSE"),I[O.CARETLOOSE]="^"+I[O.LONECARET]+I[O.XRANGEPLAINLOOSE]+"$",r("COMPARATORLOOSE"),I[O.COMPARATORLOOSE]="^"+I[O.GTLT]+"\\s*("+I[O.LOOSEPLAIN]+")$|^$",r("COMPARATOR"),I[O.COMPARATOR]="^"+I[O.GTLT]+"\\s*("+I[O.FULLPLAIN]+")$|^$",r("COMPARATORTRIM"),I[O.COMPARATORTRIM]="(\\s*)"+I[O.GTLT]+"\\s*("+I[O.LOOSEPLAIN]+"|"+I[O.XRANGEPLAIN]+")",N[O.COMPARATORTRIM]=RegExp(I[O.COMPARATORTRIM],"g"),R[O.COMPARATORTRIM]=RegExp(n(I[O.COMPARATORTRIM]),"g"),L="$1$2$3",r("HYPHENRANGE"),I[O.HYPHENRANGE]="^\\s*("+I[O.XRANGEPLAIN]+")\\s+-\\s+("+I[O.XRANGEPLAIN]+")\\s*$",r("HYPHENRANGELOOSE"),I[O.HYPHENRANGELOOSE]="^\\s*("+I[O.XRANGEPLAINLOOSE]+")\\s+-\\s+("+I[O.XRANGEPLAINLOOSE]+")\\s*$",r("STAR"),I[O.STAR]="(<|>)?=?\\s*\\*";for(var x,D,S,T,N,R,I,O,A,C,_,L,$,P,k=0;k=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0);}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw Error("invalid increment argument: "+e);}return this.format(),this.raw=this.version,this;},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new o(e,r).inc(t,n).version;}catch(e){return null;}},t.diff=function(e,t){if(c(e,t))return null;var r=i(e),n=i(t),o="";if(r.prerelease.length||n.prerelease.length){o="pre";var a="prerelease";}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return o+s;return a;},t.compareIdentifiers=a,$=/^[0-9]+$/,t.rcompareIdentifiers=function(e,t){return a(t,e);},t.major=function(e,t){return new o(e,t).major;},t.minor=function(e,t){return new o(e,t).minor;},t.patch=function(e,t){return new o(e,t).patch;},t.compare=s,t.compareLoose=function(e,t){return s(e,t,!0);},t.compareBuild=function(e,t,r){var n=new o(e,r),i=new o(t,r);return n.compare(i)||n.compareBuild(i);},t.rcompare=function(e,t,r){return s(t,e,r);},t.sort=function(e,r){return e.sort(function(e,n){return t.compareBuild(e,n,r);});},t.rsort=function(e,r){return e.sort(function(e,n){return t.compareBuild(n,e,r);});},t.gt=l,t.lt=u,t.eq=c,t.neq=p,t.gte=d,t.lte=f,t.cmp=h,t.Comparator=m,P={},m.prototype.parse=function(e){var t=this.options.loose?R[O.COMPARATORLOOSE]:R[O.COMPARATOR],r=e.match(t);if(!r)throw TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new o(r[2],this.options.loose):this.semver=P;},m.prototype.toString=function(){return this.value;},m.prototype.test=function(e){if(x("Comparator.test",e,this.options.loose),this.semver===P||e===P)return!0;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}return h(e,this.operator,this.semver,this.options);},m.prototype.intersects=function(e,t){if(!(e instanceof m))throw TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new g(e.value,t),w(this.value,r,t));if(""===e.operator)return""===e.value||(r=new g(this.value,t),w(e.semver,r,t));var r,n=(">="===this.operator||">"===this.operator)&&(">="===e.operator||">"===e.operator),i=("<="===this.operator||"<"===this.operator)&&("<="===e.operator||"<"===e.operator),o=this.semver.version===e.semver.version,a=(">="===this.operator||"<="===this.operator)&&(">="===e.operator||"<="===e.operator),s=h(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=h(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&a||s||l;},t.Range=g,g.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim();}).join("||").trim(),this.range;},g.prototype.toString=function(){return this.range;},g.prototype.parseRange=function(e){var t=this.options.loose,r=t?R[O.HYPHENRANGELOOSE]:R[O.HYPHENRANGE];e=e.replace(r,y),x("hyphen replace",e),e=e.replace(R[O.COMPARATORTRIM],L),x("comparator trim",e,R[O.COMPARATORTRIM]),e=(e=(e=e.replace(R[O.TILDETRIM],"$1~")).replace(R[O.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?R[O.COMPARATORLOOSE]:R[O.COMPARATOR],i=e.split(" ").map(function(e){var t,r,n,i,o,a,s,l,u;return t=e,r=this.options,x("comp",t,r),n=t,i=r,t=n.trim().split(/\s+/).map(function(e){var t,r,n;return x("caret",t=e,r=i),n=r.loose?R[O.CARETLOOSE]:R[O.CARET],t.replace(n,function(e,r,n,i,o){var a;return x("caret",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a="0"===r?">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":">="+r+"."+n+".0 <"+(+r+1)+".0.0":o?(x("replaceCaret pr",o),a="0"===r?"0"===n?">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+"-"+o+" <"+(+r+1)+".0.0"):(x("no pr"),a="0"===r?"0"===n?">="+r+"."+n+"."+i+" <"+r+"."+n+"."+(+i+1):">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0":">="+r+"."+n+"."+i+" <"+(+r+1)+".0.0"),x("caret return",a),a;});}).join(" "),x("caret",t),o=t,a=r,t=o.trim().split(/\s+/).map(function(e){var t,r;return t=e,r=a.loose?R[O.TILDELOOSE]:R[O.TILDE],t.replace(r,function(e,r,n,i,o){var a;return x("tilde",t,e,r,n,i,o),E(r)?a="":E(n)?a=">="+r+".0.0 <"+(+r+1)+".0.0":E(i)?a=">="+r+"."+n+".0 <"+r+"."+(+n+1)+".0":o?(x("replaceTilde pr",o),a=">="+r+"."+n+"."+i+"-"+o+" <"+r+"."+(+n+1)+".0"):a=">="+r+"."+n+"."+i+" <"+r+"."+(+n+1)+".0",x("tilde return",a),a;});}).join(" "),x("tildes",t),x("replaceXRanges",s=t,l=r),t=s.split(/\s+/).map(function(e){var t,r,n;return t=e,r=l,t=t.trim(),n=r.loose?R[O.XRANGELOOSE]:R[O.XRANGE],t.replace(n,function(e,n,i,o,a,s){x("xRange",t,e,n,i,o,a,s);var l=E(i),u=l||E(o),c=u||E(a);return"="===n&&c&&(n=""),s=r.includePrerelease?"-0":"",l?e=">"===n||"<"===n?"<0.0.0-0":"*":n&&c?(u&&(o=0),a=0,">"===n?(n=">=",u?(i=+i+1,o=0):o=+o+1,a=0):"<="===n&&(n="<",u?i=+i+1:o=+o+1),e=n+i+"."+o+"."+a+s):u?e=">="+i+".0.0"+s+" <"+(+i+1)+".0.0"+s:c&&(e=">="+i+"."+o+".0"+s+" <"+i+"."+(+o+1)+".0"+s),x("xRange return",e),e;});}).join(" "),x("xrange",t),x("replaceStars",u=t,r),t=u.trim().replace(R[O.STAR],""),x("stars",t),t;},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(e){return!!e.match(n);})),i=i.map(function(e){return new m(e,this.options);},this);},g.prototype.intersects=function(e,t){if(!(e instanceof g))throw TypeError("a Range is required");return this.set.some(function(r){return v(r,t)&&e.set.some(function(e){return v(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t);});});});});},t.toComparators=function(e,t){return new g(e,t).set.map(function(e){return e.map(function(e){return e.value;}).join(" ").trim().split(" ");});},g.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options);}catch(e){return!1;}for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0;}return!1;}return!0;}(this.set[t],e,this.options))return!0;return!1;},t.satisfies=w,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||-1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var a=new g(t,r);}catch(e){return null;}return e.forEach(function(e){a.test(e)&&(!n||1===i.compare(e))&&(i=new o(n=e,r));}),n;},t.minVersion=function(e,t){e=new g(e,t);var r=new o("0.0.0");if(e.test(r)||(r=new o("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":(!r||l(r,t))&&(r=t);break;case"<":case"<=":break;default:throw Error("Unexpected operation: "+e.operator);}});return r&&e.test(r)?r:null;},t.validRange=function(e,t){try{return new g(e,t).range||"*";}catch(e){return null;}},t.ltr=function(e,t,r){return b(e,t,"<",r);},t.gtr=function(e,t,r){return b(e,t,">",r);},t.outside=b,t.prerelease=function(e,t){var r=i(e,t);return r&&r.prerelease.length?r.prerelease:null;},t.intersects=function(e,t,r){return e=new g(e,r),t=new g(t,r),e.intersects(t);},t.coerce=function(e,t){if(e instanceof o)return e;if("number"==typeof e&&(e+=""),"string"!=typeof e)return null;var r,n=null;if((t=t||{}).rtl){for(;(r=R[O.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&r.index+r[0].length===n.index+n[0].length||(n=r),R[O.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;R[O.COERCERTL].lastIndex=-1;}else n=e.match(R[O.COERCE]);return null===n?null:i(n[2]+"."+(n[3]||"0")+"."+(n[4]||"0"),t);};}),rI("eAF86",function(e,t){var r=rR("1W8as"),n=rR("hTpVN");e.exports=function(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||r)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||n(a);};}),rI("1W8as",function(e,t){e.exports=function(){return ir.randomBytes(16);};}),rI("hTpVN",function(e,t){for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("");};}),rI("1f6JF",function(e,t){var r,n,i,o;function a(e,t,r){return o(this,void 0,void 0,function*(){let n=s.argStringToArray(e);if(0===n.length)throw Error("Parameter 'commandLine' cannot be null or empty.");let i=n[0];return t=n.slice(1).concat(t||[]),new s.ToolRunner(i,t,r).exec();});}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.getExecOutput=e.exports.exec=void 0;let s=i(rR("4B2AJ"));e.exports.exec=a,e.exports.getExecOutput=function(e,t,r){var n,i;return o(this,void 0,void 0,function*(){let o="",s="",l=new rc.StringDecoder("utf8"),u=new rc.StringDecoder("utf8"),c=null===(n=null==r?void 0:r.listeners)||void 0===n?void 0:n.stdout,p=null===(i=null==r?void 0:r.listeners)||void 0===i?void 0:i.stderr,d=Object.assign(Object.assign({},null==r?void 0:r.listeners),{stdout(e){o+=l.write(e),c&&c(e);},stderr(e){s+=u.write(e),p&&p(e);}}),f=yield a(e,t,Object.assign(Object.assign({},r),{listeners:d}));return o+=l.end(),s+=u.end(),{exitCode:f,stdout:o,stderr:s};});};}),rI("4B2AJ",function(e,t){var r,n,i,o;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.argStringToArray=e.exports.ToolRunner=void 0;let a=i(n7),s=i(ro),l=i(ru),u=i(ie),c=i(rR("hZdK0")),p=i(rR("ipB3d")),d="win32"===process.platform;class f extends s.EventEmitter{constructor(e,t,r){if(super(),!e)throw Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=e,this.args=t||[],this.options=r||{};}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e);}_getCommandString(e,t){let r=this._getSpawnFileName(),n=this._getSpawnArgs(e),i=t?"":"[command]";if(d){if(this._isCmdFile())for(let e of(i+=r,n))i+=" "+e;else if(e.windowsVerbatimArguments)for(let e of(i+=`"${r}"`,n))i+=" "+e;else for(let e of(i+=this._windowsQuoteCmdArg(r),n))i+=" "+this._windowsQuoteCmdArg(e);}else for(let e of(i+=r,n))i+=" "+e;return i;}_processLineBuffer(e,t,r){try{let n=t+e.toString(),i=n.indexOf(a.EOL);for(;i>-1;){let e=n.substring(0,i);r(e),i=(n=n.substring(i+a.EOL.length)).indexOf(a.EOL);}return n;}catch(e){return this._debug("error processing line. Failed with error "+e),"";}}_getSpawnFileName(){return d&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath;}_getSpawnArgs(e){if(d&&this._isCmdFile()){let t='/D /S /C "'+this._windowsQuoteCmdArg(this.toolPath);for(let r of this.args)t+=" "+(e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r));return[t+='"'];}return this.args;}_endsWith(e,t){return e.endsWith(t);}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT");}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of e)if(t.some(e=>e===n)){r=!0;break;}if(!r)return e;let n='"',i=!0;for(let t=e.length;t>0;t--)n+=e[t-1],i&&"\\"===e[t-1]?n+="\\":'"'===e[t-1]?(i=!0,n+='"'):i=!1;return(n+='"').split("").reverse().join("");}_uvQuoteCmdArg(e){if(!e)return'""';if(!e.includes(" ")&&!e.includes(" ")&&!e.includes('"'))return e;if(!e.includes('"')&&!e.includes("\\"))return`"${e}"`;let t='"',r=!0;for(let n=e.length;n>0;n--)t+=e[n-1],r&&"\\"===e[n-1]?t+="\\":'"'===e[n-1]?(r=!0,t+="\\"):r=!1;return(t+='"').split("").reverse().join("");}_cloneExecOptions(e){let t={cwd:(e=e||{}).cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t;}_getSpawnOptions(e,t){e=e||{};let r={};return r.cwd=e.cwd,r.env=e.env,r.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r;}exec(){return o(this,void 0,void 0,function*(){return!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||d&&this.toolPath.includes("\\"))&&(this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield c.which(this.toolPath,!0),new Promise((e,t)=>o(this,void 0,void 0,function*(){for(let e of(this._debug("exec tool: "+this.toolPath),this._debug("arguments:"),this.args))this._debug(" "+e);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+a.EOL);let n=new h(r,this.toolPath);if(n.on("debug",e=>{this._debug(e);}),this.options.cwd&&!(yield p.exists(this.options.cwd)))return t(Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),o=l.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),s="";o.stdout&&o.stdout.on("data",e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e);});});let u="";if(o.stderr&&o.stderr.on("data",e=>{n.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),u=this._processLineBuffer(e,u,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e);});}),o.on("error",e=>{n.processError=e.message,n.processExited=!0,n.processClosed=!0,n.CheckComplete();}),o.on("exit",e=>{n.processExitCode=e,n.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),n.CheckComplete();}),o.on("close",e=>{n.processExitCode=e,n.processExited=!0,n.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),n.CheckComplete();}),n.on("done",(r,n)=>{s.length>0&&this.emit("stdline",s),u.length>0&&this.emit("errline",u),o.removeAllListeners(),r?t(r):e(n);}),this.options.input){if(!o.stdin)throw Error("child process missing stdin");o.stdin.end(this.options.input);}}));});}}e.exports.ToolRunner=f,e.exports.argStringToArray=function(e){function t(e){i&&'"'!==e&&(o+="\\"),o+=e,i=!1;}let r=[],n=!1,i=!1,o="";for(let a=0;a0&&(r.push(o),o="");continue;}t(s);}return o.length>0&&r.push(o.trim()),r;};class h extends s.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error("toolPath must not be empty");this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay);}CheckComplete(){!this.done&&(this.processClosed?this._setResult():this.processExited&&(this.timeout=rp.setTimeout(h.HandleTimeout,this.delay,this)));}_debug(e){this.emit("debug",e);}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):0===this.processExitCode||this.options.ignoreReturnCode?this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)):e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",e,this.processExitCode);}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t);}e._setResult();}}}}),rI("4JiFg",function(e,t){e.exports=Promise.resolve(require("./actions_python.4fb6b558.js")).then(()=>rR("4kQHk"));}),rI("i9SYz",function(e,t){var r,n,i,o,a,s,l,u,p;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n");}function f(e){this.options=e||{locator:{}};}function h(){this.cdata=!1;}function m(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber;}function g(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]";}function v(e,t,r){return"string"==typeof e?e.substr(t,r):e.length>=t+r||t?new java.lang.String(e,t,r)+"":e;}function E(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t);}c(e.exports,"DOMParser",()=>r,e=>r=e),n=rR("12jBw"),i=rR("fSAop"),o=rR("g5ebD"),a=rR("gqQA6"),s=i.DOMImplementation,l=n.NAMESPACE,u=a.ParseError,p=a.XMLReader,f.prototype.parseFromString=function(e,t){var r=this.options,n=new p(),i=r.domBuilder||new h(),a=r.errorHandler,s=r.locator,u=r.xmlns||{},c=/\/x?html?$/.test(t),f=c?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),n.errorHandler=function(e,t,r){var n,i;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(r){e(t,r);}:e),n[t]=o&&function(e){o("[xmldom "+t+"] "+e+g(r));}||function(){};}if(!e){if(t instanceof h)return t;e=t;}return n={},i=e instanceof Function,r=r||{},o("warning"),o("error"),o("fatalError"),n;}(a,i,s),n.domBuilder=r.domBuilder||i,c&&(u[""]=l.HTML),u.xml=u.xml||l.XML;var m=r.normalizeLineEndings||d;return e&&"string"==typeof e?n.parse(m(e),u,f):n.errorHandler.error("invalid doc source"),i.doc;},h.prototype={startDocument:function(){this.doc=new s().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId);},startElement:function(e,t,r,n){var i=this.doc,o=i.createElementNS(e,r||t),a=n.length;E(this,o),this.currentElement=o,this.locator&&m(this.locator,o);for(var s=0;a>s;s++){var e=n.getURI(s),l=n.getValue(s),r=n.getQName(s),u=i.createAttributeNS(e,r);this.locator&&m(n.getLocator(s),u),u.value=u.nodeValue=l,o.setAttributeNode(u);}},endElement:function(e,t,r){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode;},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var r=this.doc.createProcessingInstruction(e,t);this.locator&&m(this.locator,r),E(this,r);},ignorableWhitespace:function(e,t,r){},characters:function(e,t,r){if(e=v.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(e);else var n=this.doc.createTextNode(e);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(e)&&this.doc.appendChild(n),this.locator&&m(this.locator,n);}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize();},setDocumentLocator:function(e){(this.locator=e)&&(e.lineNumber=0);},comment:function(e,t,r){e=v.apply(this,arguments);var n=this.doc.createComment(e);this.locator&&m(this.locator,n),E(this,n);},startCDATA:function(){this.cdata=!0;},endCDATA:function(){this.cdata=!1;},startDTD:function(e,t,r){var n=this.doc.implementation;if(n&&n.createDocumentType){var i=n.createDocumentType(e,t,r);this.locator&&m(this.locator,i),E(this,i),this.doc.doctype=i;}},warning:function(e){console.warn("[xmldom warning] "+e,g(this.locator));},error:function(e){console.error("[xmldom error] "+e,g(this.locator));},fatalError:function(e){throw new u(e,this.locator);}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(e){h.prototype[e]=function(){return null;};}),r=f;}),rI("12jBw",function(e,t){var r,n,i,o,a;function s(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e;}c(e.exports,"find",()=>r,e=>r=e),c(e.exports,"freeze",()=>n,e=>n=e),c(e.exports,"NAMESPACE",()=>i,e=>i=e),o=s({HTML:"text/html",isHTML:function(e){return e===o.HTML;},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),a=s({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===a.HTML;},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}),r=function(e,t,r){if(void 0===r&&(r=Array.prototype),e&&"function"==typeof r.find)return r.find.call(e,t);for(var n=0;n=0){for(var i=t.length-1;i>n;)t[n]=t[++n];if(t.length=i,e){var o=e.ownerDocument;o&&(H(o,e,r),r.ownerElement=null);}}else throw new C(S,Error(e.tagName+"@"+r));}function F(){}function j(){}function q(e){return"<"==e&&"<"||">"==e&&">"||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";";}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do if(B(e,t))return!0;while(e=e.nextSibling);}function G(){this.ownerDocument=this;}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===a.XMLNS&&delete t._nsMap[r.prefix?r.localName:""];}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,o=0;i;)n[o++]=i,i=i.nextSibling;n.length=o,delete n[n.length];}}}function X(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t;}function z(e){return e&&e.nodeType===j.DOCUMENT_TYPE_NODE;}function W(e){return e&&e.nodeType===j.ELEMENT_NODE;}function K(e){return e&&e.nodeType===j.TEXT_NODE;}function Y(e,t){var r=e.childNodes||[];if(o(r,W)||z(t))return!1;var n=o(r,z);return!(t&&n&&r.indexOf(n)>r.indexOf(t));}function J(e,t){var r,n=e.childNodes||[];return!o(n,function(e){return W(e)&&e!==t;})&&(r=o(n,z),!(t&&r&&n.indexOf(r)>n.indexOf(t)));}function Q(e,t,r){var n=e.childNodes||[],i=t.childNodes||[];if(t.nodeType===j.DOCUMENT_FRAGMENT_NODE){var a=i.filter(W);if(a.length>1||o(i,K))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!J(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(W(t)&&!J(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,function(e){return z(e)&&e!==r;}))throw new C(D,"Only one doctype is allowed");var s=o(n,W);if(r&&n.indexOf(s)1||o(i,K))throw new C(D,"More than one element or text in fragment");if(1===a.length&&!Y(e,r))throw new C(D,"Element in fragment can not be inserted before doctype");}if(W(t)&&!Y(e,r))throw new C(D,"Only one element can be added and only after doctype");if(z(t)){if(o(n,z))throw new C(D,"Only one doctype is allowed");var s=o(n,W);if(r&&n.indexOf(s)=0;D--){var S=i[D];if(""===S.prefix&&S.namespace===e.namespaceURI){o=S.namespace;break;}}if(o!==e.namespaceURI)for(var D=i.length-1;D>=0;D--){var S=i[D];if(S.namespace===e.namespaceURI){S.prefix&&(b=S.prefix+":"+w);break;}}}t.push("<",b);for(var T=0;c>T;T++){var N=s.item(T);"xmlns"==N.prefix?i.push({prefix:N.localName,namespace:N.value}):"xmlns"==N.nodeName&&i.push({prefix:"",namespace:N.value});}for(var T=0;c>T;T++){var N=s.item(T);if(eh(N,r,i)){var R=N.prefix||"",I=N.namespaceURI;em(t,R?"xmlns:"+R:"xmlns",I),i.push({prefix:R,namespace:I});}eg(N,t,r,n,i);}if(w===b&&eh(e,r,i)){var R=e.prefix||"",I=e.namespaceURI;em(t,R?"xmlns:"+R:"xmlns",I),i.push({prefix:R,namespace:I});}if(h||r&&!/^(?:meta|link|img|br|hr|input)$/i.test(w)){if(t.push(">"),r&&/^script$/i.test(w))for(;h;)h.data?t.push(h.data):eg(h,t,r,n,i.slice()),h=h.nextSibling;else for(;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;t.push("");}else t.push("/>");return;case v:case y:for(var h=e.firstChild;h;)eg(h,t,r,n,i.slice()),h=h.nextSibling;return;case u:return em(t,e.name,e.value);case p:return t.push(e.data.replace(/[<&>]/g,q));case d:return t.push("");case g:return t.push("");case E:var O=e.publicId,A=e.systemId;if(t.push("");else if(A&&"."!=A)t.push(" SYSTEM ",A,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">");}return;case m:return t.push("");case f:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName);}}function ev(e,t,r){e[t]=r;}c(e.exports,"DOMImplementation",()=>r,e=>r=e),c(e.exports,"XMLSerializer",()=>n,e=>n=e),o=(i=rR("12jBw")).find,a=i.NAMESPACE,l=(s={}).ELEMENT_NODE=1,u=s.ATTRIBUTE_NODE=2,p=s.TEXT_NODE=3,d=s.CDATA_SECTION_NODE=4,f=s.ENTITY_REFERENCE_NODE=5,h=s.ENTITY_NODE=6,m=s.PROCESSING_INSTRUCTION_NODE=7,g=s.COMMENT_NODE=8,v=s.DOCUMENT_NODE=9,E=s.DOCUMENT_TYPE_NODE=10,y=s.DOCUMENT_FRAGMENT_NODE=11,w=s.NOTATION_NODE=12,x={},(b={}).INDEX_SIZE_ERR=(x[1]="Index size error",1),b.DOMSTRING_SIZE_ERR=(x[2]="DOMString size error",2),D=b.HIERARCHY_REQUEST_ERR=(x[3]="Hierarchy request error",3),b.WRONG_DOCUMENT_ERR=(x[4]="Wrong document",4),b.INVALID_CHARACTER_ERR=(x[5]="Invalid character",5),b.NO_DATA_ALLOWED_ERR=(x[6]="No data allowed",6),b.NO_MODIFICATION_ALLOWED_ERR=(x[7]="No modification allowed",7),S=b.NOT_FOUND_ERR=(x[8]="Not found",8),b.NOT_SUPPORTED_ERR=(x[9]="Not supported",9),T=b.INUSE_ATTRIBUTE_ERR=(x[10]="Attribute in use",10),b.INVALID_STATE_ERR=(x[11]="Invalid state",11),b.SYNTAX_ERR=(x[12]="Syntax error",12),b.INVALID_MODIFICATION_ERR=(x[13]="Invalid modification",13),b.NAMESPACE_ERR=(x[14]="Invalid namespace",14),b.INVALID_ACCESS_ERR=(x[15]="Invalid access",15),C.prototype=Error.prototype,O(b,C),_.prototype={length:0,item:function(e){return e>=0&&ed;d++)i.setAttributeNode(e(t,s.item(d),!0));break;case u:n=!0;}if(n)for(var f=r.firstChild;f;)i.appendChild(e(t,f,n)),f=f.nextSibling;return i;}(this.ownerDocument||this,this,e);},normalize:function(){for(var e=this.firstChild;e;){var t=e.nextSibling;t&&t.nodeType==p&&e.nodeType==p?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t);}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t);},hasAttributes:function(){return this.attributes.length>0;},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r){for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;}t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==u?t.ownerDocument:t.parentNode;}return null;},isDefaultNamespace:function(e){return null==this.lookupPrefix(e);}},O(s,j),O(s,j.prototype),G.prototype={nodeName:"#document",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==y){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n;}return e;}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===l&&(this.documentElement=e),e;},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),X(this,e);},replaceChild:function(e,t){Z(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),W(e)&&(this.documentElement=e);},importNode:function(e,t){return function e(t,r,n){var i;switch(r.nodeType){case l:(i=r.cloneNode(!1)).ownerDocument=t;case y:break;case u:n=!0;}if(i||(i=r.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var o=r.firstChild;o;)i.appendChild(e(t,o,n)),o=o.nextSibling;return i;}(this,e,t);},getElementById:function(e){var t=null;return B(this.documentElement,function(r){if(r.nodeType==l&&r.getAttribute("id")==e)return t=r,!0;}),t;},getElementsByClassName:function(e){var t=I(e);return new L(this,function(r){var n=[];return t.length>0&&B(r.documentElement,function(i){if(i!==r&&i.nodeType===l){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=I(o);a=t.every(function(e){return s&&-1!==s.indexOf(e);});}a&&n.push(i);}}}),n;});},createElement:function(e){var t=new ee();return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new _(),(t.attributes=new P())._ownerElement=t,t;},createDocumentFragment:function(){var e=new ec();return e.ownerDocument=this,e.childNodes=new _(),e;},createTextNode:function(e){var t=new en();return t.ownerDocument=this,t.appendData(e),t;},createComment:function(e){var t=new ei();return t.ownerDocument=this,t.appendData(e),t;},createCDATASection:function(e){var t=new eo();return t.ownerDocument=this,t.appendData(e),t;},createProcessingInstruction:function(e,t){var r=new ep();return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r;},createAttribute:function(e){var t=new et();return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t;},createEntityReference:function(e){var t=new eu();return t.ownerDocument=this,t.nodeName=e,t;},createElementNS:function(e,t){var r=new ee(),n=t.split(":"),i=r.attributes=new P();return r.childNodes=new _(),r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r;},createAttributeNS:function(e,t){var r=new et(),n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r;}},A(G,j),ee.prototype={nodeType:l,hasAttribute:function(e){return null!=this.getAttributeNode(e);},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||"";},getAttributeNode:function(e){return this.attributes.getNamedItem(e);},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r);},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t);},appendChild:function(e){return e.nodeType===y?this.insertBefore(e,null):(e.parentNode&&e.parentNode.removeChild(e),e.parentNode=this,e.previousSibling=this.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:this.firstChild=e,this.lastChild=e,V(this.ownerDocument,this,e),e);},setAttributeNode:function(e){return this.attributes.setNamedItem(e);},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e);},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName);},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r);},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t);},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||"";},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n);},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t);},getElementsByTagName:function(e){return new L(this,function(t){var r=[];return B(t,function(n){n!==t&&n.nodeType==l&&("*"===e||n.tagName==e)&&r.push(n);}),r;});},getElementsByTagNameNS:function(e,t){return new L(this,function(r){var n=[];return B(r,function(i){i!==r&&i.nodeType===l&&("*"===e||i.namespaceURI===e)&&("*"===t||i.localName==t)&&n.push(i);}),n;});}},G.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,G.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,A(ee,j),et.prototype.nodeType=u,A(et,j),er.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t);},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length;},insertData:function(e,t){this.replaceData(e,0,t);},appendChild:function(e){throw Error(x[D]);},deleteData:function(e,t){this.replaceData(e,t,"");},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length;}},A(er,j),en.prototype={nodeName:"#text",nodeType:p,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n;}},A(en,er),ei.prototype={nodeName:"#comment",nodeType:g},A(ei,er),eo.prototype={nodeName:"#cdata-section",nodeType:d},A(eo,er),ea.prototype.nodeType=E,A(ea,j),es.prototype.nodeType=w,A(es,j),el.prototype.nodeType=h,A(el,j),eu.prototype.nodeType=f,A(eu,j),ec.prototype.nodeName="#document-fragment",ec.prototype.nodeType=y,A(ec,j),ep.prototype.nodeType=m,A(ep,j),ed.prototype.serializeToString=function(e,t,r){return ef.call(e,t,r);},j.prototype.toString=ef;try{Object.defineProperty&&(Object.defineProperty(L.prototype,"length",{get:function(){return $(this),this.$$length;}}),Object.defineProperty(j.prototype,"textContent",{get:function(){return function e(t){switch(t.nodeType){case l:case y:var r=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&r.push(e(t)),t=t.nextSibling;return r.join("");default:return t.nodeValue;}}(this);},set:function(e){switch(this.nodeType){case l:case y:for(;this.firstChild;)this.removeChild(this.firstChild);(e||e+"")&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e;}}}),ev=function(e,t,r){e["$$"+t]=r;});}catch(e){}r=F,n=ed;}),rI("g5ebD",function(e,t){c(e.exports,"XML_ENTITIES",()=>r,e=>r=e),c(e.exports,"HTML_ENTITIES",()=>n,e=>n=e);var r,n,i=rR("12jBw").freeze;r=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),n=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"\uD835\uDD04",afr:"\uD835\uDD1E",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",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:"\uD835\uDD38",aopf:"\uD835\uDD52",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"\uD835\uDC9C",ascr:"\uD835\uDCB6",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:"\uD835\uDD05",bfr:"\uD835\uDD1F",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:"\uD835\uDD39",bopf:"\uD835\uDD53",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:"\uD835\uDCB7",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:"\uD835\uDD20",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:"\uD835\uDD54",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"\uD835\uDC9E",cscr:"\uD835\uDCB8",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:"\uD835\uDD07",dfr:"\uD835\uDD21",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:"\uD835\uDD3B",dopf:"\uD835\uDD55",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:"\uD835\uDC9F",dscr:"\uD835\uDCB9",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:"\uD835\uDD08",efr:"\uD835\uDD22",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"\uD835\uDD3C",eopf:"\uD835\uDD56",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:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"\uD835\uDD09",ffr:"\uD835\uDD23",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"\uD835\uDD3D",fopf:"\uD835\uDD57",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:"\uD835\uDCBB",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:"\uD835\uDD0A",gfr:"\uD835\uDD24",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"\uD835\uDD3E",gopf:"\uD835\uDD58",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",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:"\uD835\uDD25",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"\uD835\uDD59",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"\uD835\uDCBD",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"\uD835\uDD26",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",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:"\uD835\uDD40",iopf:"\uD835\uDD5A",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"\uD835\uDCBE",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"\uD835\uDD0D",jfr:"\uD835\uDD27",jmath:"ȷ",Jopf:"\uD835\uDD41",jopf:"\uD835\uDD5B",Jscr:"\uD835\uDCA5",jscr:"\uD835\uDCBF",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"\uD835\uDD0E",kfr:"\uD835\uDD28",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"\uD835\uDD42",kopf:"\uD835\uDD5C",Kscr:"\uD835\uDCA6",kscr:"\uD835\uDCC0",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",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:"\uD835\uDD0F",lfr:"\uD835\uDD29",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:"\uD835\uDD43",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"\uD835\uDCC1",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",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:"\uD835\uDD10",mfr:"\uD835\uDD2A",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"\uD835\uDD44",mopf:"\uD835\uDD5E",mp:"∓",Mscr:"ℳ",mscr:"\uD835\uDCC2",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",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:"\n",nexist:"∄",nexists:"∄",Nfr:"\uD835\uDD11",nfr:"\uD835\uDD2B",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:"\uD835\uDD5F",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:"\uD835\uDCA9",nscr:"\uD835\uDCC3",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:"\uD835\uDD12",ofr:"\uD835\uDD2C",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"\uD835\uDD46",oopf:"\uD835\uDD60",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"\uD835\uDCAA",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:"\uD835\uDD13",pfr:"\uD835\uDD2D",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:"\uD835\uDD61",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:"\uD835\uDCAB",pscr:"\uD835\uDCC5",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"\uD835\uDD14",qfr:"\uD835\uDD2E",qint:"⨌",Qopf:"ℚ",qopf:"\uD835\uDD62",qprime:"⁗",Qscr:"\uD835\uDCAC",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',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:"\uD835\uDD2F",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:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"\uD835\uDCC7",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:"\uD835\uDD16",sfr:"\uD835\uDD30",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:"\uD835\uDD4A",sopf:"\uD835\uDD64",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:"\uD835\uDCAE",sscr:"\uD835\uDCC8",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:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"\uD835\uDD17",tfr:"\uD835\uDD31",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:"\uD835\uDD4B",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"\uD835\uDCAF",tscr:"\uD835\uDCC9",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:"\uD835\uDD18",ufr:"\uD835\uDD32",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"\uD835\uDD4C",uopf:"\uD835\uDD66",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:"\uD835\uDCB0",uscr:"\uD835\uDCCA",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:"\uD835\uDD19",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"\uD835\uDD4D",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",Vscr:"\uD835\uDCB1",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"\uD835\uDD1A",wfr:"\uD835\uDD34",Wopf:"\uD835\uDD4E",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",Wscr:"\uD835\uDCB2",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"\uD835\uDD1B",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"\uD835\uDD4F",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"\uD835\uDCB3",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"\uD835\uDD1C",yfr:"\uD835\uDD36",YIcy:"Ї",yicy:"ї",Yopf:"\uD835\uDD50",yopf:"\uD835\uDD6A",Yscr:"\uD835\uDCB4",yscr:"\uD835\uDCCE",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"\uD835\uDD37",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"\uD835\uDD6B",Zscr:"\uD835\uDCB5",zscr:"\uD835\uDCCF",zwj:"‍",zwnj:"‌"});}),rI("gqQA6",function(e,t){var r,n,i,o,a;function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s);}function l(){}function u(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t;}function p(e,t,r){for(var n=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,u=s.value,c=l.indexOf(":");if(c>0)var p=s.prefix=l.slice(0,c),f=l.slice(c+1),h="xmlns"===p&&f;else f=l,p=null,h="xmlns"===l&&"";s.localName=f,!1!==h&&(null==o&&(o={},d(r,r={})),r[h]=o[h]=u,s.uri=i.XMLNS,t.startPrefixMapping(h,u));}for(var a=e.length;a--;){var p=(s=e[a]).prefix;p&&("xml"===p&&(s.uri=i.XML),"xmlns"!==p&&(s.uri=r[p||""]));}var c=n.indexOf(":");c>0?(p=e.prefix=n.slice(0,c),f=e.localName=n.slice(c+1)):(p=null,f=e.localName=n);var m=e.uri=r[p||""];if(t.startElement(m,f,n,e),!e.closed)return e.currentNSMap=r,e.localNSMap=o,!0;if(t.endElement(m,f,n),o)for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&t.endPrefixMapping(p);}function d(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);}function f(){this.attributeNames={};}c(e.exports,"XMLReader",()=>r,e=>r=e),c(e.exports,"ParseError",()=>n,e=>n=e),i=rR("12jBw").NAMESPACE,o=RegExp("[\\-\\.0-9"+/[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]/.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=RegExp("^"+/[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]/.source+o.source+"*(?::"+/[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]/.source+o.source+"*)?$"),s.prototype=Error(),s.prototype.name="$bf67dc97ecf5e14f$var$ParseError",l.prototype={parse:function(e,t,r){var n=this.domBuilder;n.startDocument(),d(t,t={}),function(e,t,r,n,o){function a(e){var t,n=e.slice(1,-1);return Object.hasOwnProperty.call(r,n)?r[n]:"#"===n.charAt(0)?(t=parseInt(n.substr(1).replace("x","0x")))>65535?String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t)):String.fromCharCode(t):(o.error("entity not found:"+e),e);}function l(t){if(t>y){var r=e.substring(y,t).replace(/&#?\w+;/g,a);g&&c(y),n.characters(r,0,t-y),y=t;}}function c(t,r){for(;t>=h&&(r=m.exec(e));)h=(d=r.index)+r[0].length,g.lineNumber++;g.columnNumber=t-d+1;}for(var d=0,h=0,m=/.*(?:\r\n?|\n)|.*$/g,g=n.locator,v=[{currentNSMap:t}],E={},y=0;;){try{var w=e.indexOf("<",y);if(w<0){if(!e.substr(y).match(/^\s*$/)){var b=n.doc,x=b.createTextNode(e.substr(y));b.appendChild(x),n.currentElement=x;}return;}switch(w>y&&l(w),e.charAt(w+1)){case"/":var D=e.indexOf(">",w+3),S=e.substring(w+2,D).replace(/[ \t\n\r]+$/g,""),T=v.pop();D<0?(S=e.substring(w+2).replace(/[\s<].*/,""),o.error("end tag name: "+S+" is not complete:"+T.tagName),D=w+1+S.length):S.match(/\s",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i)return i[0].length,r.processingInstruction(i[1],i[2]),n+2;}return-1;}(e,w,n);break;case"!":g&&c(w),D=function(e,t,r,n){if("-"===e.charAt(t+2)){if("-"===e.charAt(t+3)){var i=e.indexOf("-->",t+4);if(i>t)return r.comment(e,t+4,i-t-4),i+3;n.error("Unclosed comment");}}else{if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3;}var o=function(e,t){var r,n=[];for(/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.lastIndex=t,/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g.exec(e);)if(n.push(r),r[1])return n;}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,u=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],u=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(u=o[3][0]));var c=o[a-1];return r.startDTD(s,l,u),r.endDTD(),c.index+c[0].length;}}return-1;}(e,w,n,o);break;default:g&&c(w);var O=new f(),A=v[v.length-1].currentNSMap,D=function(e,t,r,n,o,a){function s(e,t,n){r.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),n);}for(var l,u,c=++t,p=0;;){var d=e.charAt(c);switch(d){case"=":if(1===p)l=e.slice(t,c),p=3;else if(2===p)p=3;else throw Error("attribute equal must after attrName");break;case"'":case'"':if(3===p||1===p){if(1===p&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,(c=e.indexOf(d,t))>0)s(l,u=e.slice(t,c),t-1),p=5;else throw Error("attribute value no end '"+d+"' match");}else if(4==p)s(l,u=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,p=5;else throw Error('attribute value must after "="');break;case"/":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:p=7,r.closed=!0;case 4:case 1:break;case 2:r.closed=!0;break;default:throw Error("attribute invalid close char('/')");}break;case"":return a.error("unexpected end of input"),0==p&&r.setTagName(e.slice(t,c)),c;case">":switch(p){case 0:r.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=e.slice(t,c)).slice(-1)&&(r.closed=!0,u=u.slice(0,-1));case 2:2===p&&(u=l),4==p?(a.warning('attribute "'+u+'" missed quot(")!'),s(l,u,t)):(i.isHTML(n[""])&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),s(u,u,t));break;case 3:throw Error("attribute value missed!!");}return c;case"€":d=" ";default:if(d<=" ")switch(p){case 0:r.setTagName(e.slice(t,c)),p=6;break;case 1:l=e.slice(t,c),p=2;break;case 4:var u=e.slice(t,c);a.warning('attribute "'+u+'" missed quot(")!!'),s(l,u,t);case 5:p=6;}else switch(p){case 2:r.tagName,i.isHTML(n[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,p=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:p=1,t=c;break;case 3:p=4,t=c;break;case 7:throw Error("elements closed character '/' and '>' must be connected to");}}c++;}}(e,w,O,A,a,o),C=O.length;if(!O.closed&&function(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))L;L++){var $=O[L];c($.offset),$.locator=u(g,{});}n.locator=_,p(O,n,A)&&v.push(O),n.locator=g;}else p(O,n,A)&&v.push(O);i.isHTML(O.uri)&&!O.closed?D=function(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return /^script$/i.test(r)||(a=a.replace(/&#?\w+;/g,n)),i.characters(a,0,a.length),o;}return t+1;}(e,D,O.tagName,a,n):D++;}}catch(e){if(e instanceof s)throw e;o.error("element parse error: "+e),D=-1;}D>y?y=D:l(Math.max(w,y)+1);}}(e,t,r,n,this.errorHandler),n.endDocument();}},f.prototype={setTagName:function(e){if(!a.test(e))throw Error("invalid tagName:"+e);this.tagName=e;},addValue:function(e,t,r){if(!a.test(e))throw Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r};},length:0,getLocalName:function(e){return this[e].localName;},getLocator:function(e){return this[e].locator;},getQName:function(e){return this[e].qName;},getURI:function(e){return this[e].uri;},getValue:function(e){return this[e].value;}},r=l,n=s;}),rO=rR("52cQ1"),rA=rR("ER74K"),rC=rR("iWDmx"),function(){rR("eCDnw").addLocale("en",function(e){var t=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return("string"==typeof e&&(e=parseInt(e,10)),1===t&&0===r)?"one":"other";});}.call(r_={}),rL={},rL=rR("gMm9F"),r$={},r$={id:"en",data:{long:{years:{one:"{0} year",other:"{0} years"},months:{one:"{0} month",other:"{0} months"},weeks:{one:"{0} week",other:"{0} weeks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hour",other:"{0} hours"},minutes:{one:"{0} minute",other:"{0} minutes"},seconds:{one:"{0} second",other:"{0} seconds"}},narrow:{years:{one:"{0}y",other:"{0}y"},months:{one:"{0}m",other:"{0}m"},weeks:{one:"{0}w",other:"{0}w"},days:{one:"{0}d",other:"{0}d"},hours:{one:"{0}h",other:"{0}h"},minutes:{one:"{0}m",other:"{0}m"},seconds:{one:"{0}s",other:"{0}s"}},short:{years:{one:"{0} yr",other:"{0} yrs"},months:{one:"{0} mth",other:"{0} mths"},weeks:{one:"{0} wk",other:"{0} wks"},days:{one:"{0} day",other:"{0} days"},hours:{one:"{0} hr",other:"{0} hr"},minutes:{one:"{0} min",other:"{0} min"},seconds:{one:"{0} sec",other:"{0} sec"}}}},rP={},c(rk={},"isexe",()=>iC),c(rk,"sync",()=>i_),it.promises;const{access:ia,appendFile:is,chmod:il,chown:iu,copyFile:ic,lchmod:ip,lchown:id,link:ih,lstat:im,mkdir:ig,mkdtemp:iv,open:iE,readdir:iy,readFile:iw,readlink:ib,realpath:ix,rename:iD,rmdir:iS,stat:iT,symlink:iN,truncate:iR,unlink:iI,utimes:iO,writeFile:iA}=it.promises,iC=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL(await iT(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},i_=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iL((0,it.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iL=(e,t)=>e.isFile()&&i$(e,t),i$=(e,t)=>{let r=t.uid??process.getuid?.(),n=t.groups??process.getgroups?.()??[],i=t.gid??process.getgid?.()??n[0];if(void 0===r||void 0===i)throw Error("cannot get uid or gid");let o=new Set([i,...n]),a=e.mode,s=e.uid,l=e.gid,u=parseInt("100",8),c=parseInt("010",8);return!!(a&parseInt("001",8)||a&c&&o.has(l)||a&u&&s===r||a&(u|c)&&0===r);};c(rU={},"isexe",()=>iP),c(rU,"sync",()=>ik);const iP=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iM(await iT(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},ik=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return iM((0,it.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},iU=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;te.isFile()&&iU(t,r),iF="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?rU:rk,ij=iF.isexe,iq=iF.sync;rM=ie.join,rF=ie.delimiter,rj=ie.sep,rq=ie.posix;const iB="win32"===process.platform,iG=new RegExp(`[${rq.sep}${rj===rq.sep?"":rj}]`.replace(/(\\)/g,"\\$1")),iH=RegExp("^\\."+iG.source),iV=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iX=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=rF})=>{let i=e.match(iG)?[""]:[...(iB?[process.cwd()]:[]),...(t||"").split(n)];if(iB){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},iz=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&iH.test(t)?t.slice(0,2):"")+rM(r,t);},iW=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(await ij(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);};rP=iW,iW.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iX(e,t),o=[];for(let a of r){let r=iz(a,e);for(let e of n){let n=r+e;if(iq(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw iV(e);},rB={},rG={},rH={},rV={};const iK="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,iY=iK?";":":";rX={},"win32"===process.platform||rS.TESTING_WINDOWS?rz=rR("bGwAu"):rz=rR("d3qS7"),rX=d,d.sync=function(e,t){try{return rz.sync(e,t||{});}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e;}};const iJ=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),iQ=(e,t)=>{let r=t.colon||iY,n=e.match(/\//)||iK&&e.match(/\\/)?[""]:[...(iK?[process.cwd()]:[]),...(t.path||process.env.PATH||"").split(r)],i=iK?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=iK?i.split(r):[""];return iK&&-1!==e.indexOf(".")&&""!==o[0]&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:i};},iZ=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:o}=iQ(e,t),a=[],s=r=>new Promise((i,o)=>{if(r===n.length)return t.all&&a.length?i(a):o(iJ(e));let s=n[r],u=/^".*"$/.test(s)?s.slice(1,-1):s,c=ie.join(u,e);i(l(!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c,r,0));}),l=(e,r,n)=>new Promise((u,c)=>{if(n===i.length)return u(s(r+1));let p=i[n];rX(e+p,{pathExt:o},(i,o)=>{if(!i&&o){if(!t.all)return u(e+p);a.push(e+p);}return u(l(e,r,n+1));});});return r?s(0).then(e=>r(null,e),r):s(0);};rV=iZ,iZ.sync=(e,t)=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=iQ(e,t=t||{}),o=[];for(let a=0;a{let t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";};(rW=i0).default=i0,rH=function(e){return f(e)||f(e,!0);};rK=function(e){return e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1");},rY=function(e,t){return e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1"),e=(e=`"${e}"`).replace(/([()\][%!^"`<>&|;, *?])/g,"^$1"),t&&(e=e.replace(/([()\][%!^"`<>&|;, *?])/g,"^$1")),e;},rJ={},rQ={},rZ={},rZ=/^#!(.*)/,rQ=(e="")=>{let t=e.match(rZ);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return"env"===i?n:n?`${i} ${n}`:i;},rJ=function(e){let t;let r=Buffer.alloc(150);try{t=it.openSync(e,"r"),it.readSync(t,r,0,150,0),it.closeSync(t);}catch(e){}return rQ(r.toString());};const i1="win32"===process.platform;rG=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);let n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:function(e){if(!i1)return e;let t=function(e){e.file=rH(e);let t=e.file&&rJ(e.file);return t?(e.args.unshift(e.file),e.command=t,rH(e)):e.file;}(e),r=!/\.(?:com|exe)$/i.test(t);if(e.options.forceShell||r){let r=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i.test(t);e.command=ie.normalize(e.command),e.command=rK(e.command),e.args=e.args.map(e=>rY(e,r));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e;}(n);},r0={};const i3="win32"===process.platform;r0={hookChildProcess:function(e,t){if(!i3)return;let r=e.emit;e.emit=function(n,i){if("exit"===n){let n=m(i,t,"spawn");if(n)return r.call(e,"error",n);}return r.apply(e,arguments);};},verifyENOENT:m,verifyENOENTSync:function(e,t){return i3&&1===e&&!t.file?h(t.original,"spawnSync"):null;},notFoundError:h},(rB=g).spawn=g,rB.sync=function(e,t,r){let n=rG(e,t,r),i=ru.spawnSync(n.command,n.args,n.options);return i.error=i.error||r0.verifyENOENTSync(i.status,n),i;},rB._parse=rG,rB._enoent=r0;const i2=(e,t,r,n)=>{if("length"===r||"prototype"===r||"arguments"===r||"caller"===r)return;let i=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);(i4(i,o)||!n)&&Object.defineProperty(e,r,o);},i4=function(e,t){return void 0===e||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value);},i5=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r);},i6=(e,t)=>`/* Wrapped ${e}*/ +${t}`,i8=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),i9=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),i7=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=i6.bind(null,n,t.toString());Object.defineProperty(i,"name",i9),Object.defineProperty(e,"toString",{...i8,value:i});},oe=new WeakMap(),ot=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"",o=function(...a){if(oe.set(o,++n),1===n)r=e.apply(this,a),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))i2(e,t,n,r);i5(e,t),i7(e,t,n);}(o,e),oe.set(o,n),o;};ot.callCount=e=>{if(!oe.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return oe.get(e);},r1=ot;const or=()=>Array.from({length:oo-oi+1},on),on=(e,t)=>({name:"SIGRT"+(t+1),number:oi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),oi=34,oo=64,oa=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}],os=()=>[...oa,...or()].map(ol),ol=({name:e,number:t,description:r,action:n,forced:i=!1,standard:o})=>{let{signals:{[e]:a}}=rv.constants,s=void 0!==a;return{name:e,number:s?a:t,description:r,supported:s,action:n,forced:i,standard:o};},ou=Object.fromEntries(os().map(({name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a})=>[e,{name:e,number:t,description:r,supported:n,action:i,forced:o,standard:a}])),oc=(e,t)=>{let r=op(e,t);if(void 0===r)return{};let{name:n,description:i,supported:o,action:a,forced:s,standard:l}=r;return{[e]:{name:n,number:e,description:i,supported:o,action:a,forced:s,standard:l}};},op=(e,t)=>{let r=t.find(({name:t})=>rv.constants.signals[t]===e);return void 0!==r?r:t.find(t=>t.number===e);};(()=>{let e=os();return Object.assign({},...Array.from({length:oo+1},(t,r)=>oc(r,e)));})();const od=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:o,isCanceled:a})=>e?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",of=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:d,cwd:f=p(rm).cwd()}}})=>{o=null===o?void 0:o;let h=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,m=od({timedOut:l,timeout:d,errorCode:n&&n.code,signal:i,signalDescription:h,exitCode:o,isCanceled:u}),g=`Command ${m}: ${a}`,v="[object Error]"===Object.prototype.toString.call(n),E=v?`${g} +${n.message}`:g,y=[E,t,e].filter(Boolean).join("\n");return v?(n.originalMessage=n.message,n.message=y):n=Error(y),n.shortMessage=E,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=f,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},oh=["stdin","stdout","stderr"],om=e=>oh.some(t=>void 0!==e[t]),og=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return oh.map(t=>e[t]);if(om(e))throw Error("It's not possible to provide `stdio` in combination with one of "+oh.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,oh.length)},(e,r)=>t[r]);};r3={};const ov=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(ov(r2=rS.process)){var oE,oy=ra,ow=rR("e1Rfe"),ob=/^win/i.test(r2.platform),ox=ro;"function"!=typeof ox&&(ox=ox.EventEmitter),r2.__signal_exit_emitter__?oE=r2.__signal_exit_emitter__:((oE=r2.__signal_exit_emitter__=new ox()).count=0,oE.emitted={}),oE.infinite||(oE.setMaxListeners(1/0),oE.infinite=!0);var oD=function(){oN&&ov(rS.process)&&(oN=!1,ow.forEach(function(e){try{r2.removeListener(e,oT[e]);}catch(e){}}),r2.emit=oA,r2.reallyExit=oI,oE.count-=1);};(r3=function(e,t){if(!ov(rS.process))return function(){};oy.equal(typeof e,"function","a callback must be provided for exit handler"),!1===oN&&oR();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oE.on(r,e),function(){oE.removeListener(r,e),0===oE.listeners("exit").length&&0===oE.listeners("afterexit").length&&oD();};}).unload=oD;var oS=function(e,t,r){oE.emitted[e]||(oE.emitted[e]=!0,oE.emit(e,t,r));},oT={};ow.forEach(function(e){oT[e]=function(){ov(rS.process)&&r2.listeners(e).length===oE.count&&(oD(),oS("exit",null,e),oS("afterexit",null,e),ob&&"SIGHUP"===e&&(e="SIGINT"),r2.kill(r2.pid,e));};}),r3.signals=function(){return ow;};var oN=!1,oR=function(){!oN&&ov(rS.process)&&(oN=!0,oE.count+=1,ow=ow.filter(function(e){try{return r2.on(e,oT[e]),!0;}catch(e){return!1;}}),r2.emit=oC,r2.reallyExit=oO);};r3.load=oR;var oI=r2.reallyExit,oO=function(e){ov(rS.process)&&(r2.exitCode=e||0,oS("exit",r2.exitCode,null),oS("afterexit",r2.exitCode,null),oI.call(r2,r2.exitCode));},oA=r2.emit,oC=function(e,t){if(!("exit"===e&&ov(rS.process)))return oA.apply(this,arguments);void 0!==t&&(r2.exitCode=t);var r=oA.apply(this,arguments);return oS("exit",r2.exitCode,null),oS("afterexit",r2.exitCode,null),r;};}else r3=function(){return function(){};};const o_=(e,t="SIGTERM",r={})=>{let n=e(t);return oL(e,t,r,n),n;},oL=(e,t,r,n)=>{if(!o$(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},ok(r));i.unref&&i.unref();},o$=(e,{forceKillAfterTimeout:t},r)=>oP(e)&&!1!==t&&r,oP=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),ok=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oU=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oM=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oF=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{oM(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},oj=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oq=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},oB=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,oG=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!oB(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},oH=e=>{null!==e.stdout&&(e.pipeStdout=oG.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=oG.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=oG.bind(void 0,e,"all"));};r4={},r5=rE.constants,r6=rs.promisify,r8={},r9=ry.PassThrough,r8=e=>{let{array:t}=e={...e},{encoding:r}=e,n="buffer"===r,i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let o=new r9({objectMode:i});r&&o.setEncoding(r);let a=0,s=[];return o.on("data",e=>{s.push(e),i?a=s.length:a+=e.length;}),o.getBufferedValue=()=>t?s:n?Buffer.concat(s,a):s.join(""),o.getBufferedLength=()=>a,o;};const oV=r6(ry.pipeline);class oX extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError";}}(r4=x).buffer=(e,t)=>x(e,{...t,encoding:"buffer"}),r4.array=(e,t)=>x(e,{...t,array:!0}),r4.MaxBufferError=oX,r7={},ne=ry.PassThrough,r7=function(){function e(i){return Array.isArray(i)?i.forEach(e):(r.push(i),i.once("end",t.bind(null,i)),i.once("error",n.emit.bind(n,"error")),i.pipe(n,{end:!1})),this;}function t(e){!(r=r.filter(function(t){return t!==e;})).length&&n.readable&&n.end();}var r=[],n=new ne({objectMode:!0});return n.setMaxListeners(0),n.add=e,n.isEmpty=function(){return 0==r.length;},n.on("unpipe",t),Array.prototype.slice.call(arguments).forEach(e),n;};const oz=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},oW=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.readFileSync)(t)),oK=e=>{let t=oW(e);if(w(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},oY=({input:e,inputFile:t})=>"string"!=typeof t?e:(oz(e),(0,rl.createReadStream)(t)),oJ=(e,t)=>{let r=oY(t);void 0!==r&&(w(r)?r.pipe(e.stdin):e.stdin.end(r));},oQ=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},oZ=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},o0=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r4)(e,{encoding:t,maxBuffer:n}):p(r4).buffer(e,{maxBuffer:n});},o1=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=o0(e,{encoding:n,buffer:i,maxBuffer:o}),l=o0(t,{encoding:n,buffer:i,maxBuffer:o}),u=o0(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},oZ(e,s),oZ(t,l),oZ(r,u)]);}},o3=(async()=>{})().constructor.prototype,o2=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(o3,e)]),o4=(e,t)=>{for(let[r,n]of o2){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},o5=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),o6=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],o8=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,o9=(e,t)=>o6(e,t).join(" "),o7=(e,t)=>o6(e,t).map(e=>o8(e)).join(" "),ae=e=>{let t=[];for(let r of e.trim().split(/ +/g)){let e=t[t.length-1];e&&e.endsWith("\\")?t[t.length-1]=`${e.slice(0,-1)} ${r}`:t.push(r);}return t;},at=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},ar=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],an=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=ar(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return ar(a,Array.isArray(s)?s.map(e=>at(e)):[at(s)],o.endsWith(" "));},ai=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=an({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},ao=(0,rw.debuglog)("execa").enabled,aa=(e,t)=>(e+"").padStart(t,"0"),as=()=>{let e=new Date();return`${aa(e.getHours(),2)}:${aa(e.getMinutes(),2)}:${aa(e.getSeconds(),2)}.${aa(e.getMilliseconds(),3)}`;},al=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${as()}] ${e} +`);},au=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?y({env:o,cwd:n,execPath:i}):o;},ac=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:ao,...r}).env=au(r),r.stdio=og(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},ap=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",ad=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},af=(e={})=>({preferLocal:!0,...ad(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=ai(n,i);return D(o,a,af(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=ai(e,r);return S(n,i,af(t));},r;}();const ah={stdio:"inherit",shell:!0},am=/^~(?=$|\/|\\)/;rA=rR("ER74K"),nt={},nr=rR("bSUdl"),nn=rb.env.npm_package_json,no=!!((ni=rb.env.npm_config_user_agent)&&ni.startsWith("npm")),na=!!(nn&&nn.endsWith("package.json")),ns=no||na,nl=!!(ni&&ni.startsWith("yarn")),nu=ns||nl,nc=n7.homedir(),np=process.env.XDG_CONFIG_HOME||ie.join(nc,".config","simple-update-notifier"),nd=function(e){return ie.join(np,"".concat(e.replace("@","").replace("/","__"),".json"));},nf=function(){it.existsSync(np)||it.mkdirSync(np,{recursive:!0});},nh=function(e){var t=nd(e);try{if(!it.existsSync(t))return;return JSON.parse(it.readFileSync(t,"utf8")).lastUpdateCheck;}catch(e){return;}},nm=function(e){var t=nd(e);it.writeFileSync(t,JSON.stringify({lastUpdateCheck:new Date().getTime()}));},ng=function(e,t){return _(void 0,void 0,void 0,function(){var r;return L(this,function(n){return r="https://registry.npmjs.org/-/package/".concat(e,"/dist-tags"),[2,new Promise(function(e,n){io.get(r,function(r){var i="";r.on("data",function(e){return i+=e;}),r.on("end",function(){try{var r=JSON.parse(i)[t];r||n(Error("Error getting version")),e(r);}catch(e){n(Error("Could not parse version response"));}});}).on("error",function(e){return n(e);});})];});});},nv=function(e){var t=e.pkg,r=e.updateCheckInterval,n=void 0===r?864e5:r,i=e.distTag,o=void 0===i?"latest":i,a=e.alwaysRun,s=e.debug;return _(void 0,void 0,void 0,function(){var e,r;return L(this,function(i){switch(i.label){case 0:if(nf(),e=nh(t.name),!(a||!e||ee?`timed out after ${t} milliseconds`:a?"was canceled":void 0!==r?"failed with "+r:void 0!==n?`was killed with ${n} (${i})`:void 0!==o?"failed with exit code "+o:"failed",av=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:o,command:a,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:p}}})=>{o=null===o?void 0:o;let d=void 0===(i=null===i?void 0:i)?void 0:ou[i].description,f=ag({timedOut:l,timeout:p,errorCode:n&&n.code,signal:i,signalDescription:d,exitCode:o,isCanceled:u}),h=`Command ${f}: ${a}`,m="[object Error]"===Object.prototype.toString.call(n),g=m?`${h} +${n.message}`:h,v=[g,t,e].filter(Boolean).join("\n");return m?(n.originalMessage=n.message,n.message=v):n=Error(v),n.shortMessage=g,n.command=a,n.escapedCommand=s,n.exitCode=o,n.signal=i,n.signalDescription=d,n.stdout=e,n.stderr=t,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n;},aE=["stdin","stdout","stderr"],ay=e=>aE.some(t=>void 0!==e[t]),aw=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return aE.map(t=>e[t]);if(ay(e))throw Error("It's not possible to provide `stdio` in combination with one of "+aE.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,aE.length)},(e,r)=>t[r]);},ab=(e,t="SIGTERM",r={})=>{let n=e(t);return ax(e,t,r,n),n;},ax=(e,t,r,n)=>{if(!aD(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},aT(r));i.unref&&i.unref();},aD=(e,{forceKillAfterTimeout:t},r)=>aS(e)&&!1!==t&&r,aS=e=>e===p(rv).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),aT=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},aN=(e,t)=>{e.kill()&&(t.isCanceled=!0);},aR=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},aI=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{aR(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},aO=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},aA=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=p(r3)(()=>{e.kill();});return n.finally(()=>{i();});},aC=e=>e instanceof rh.ChildProcess&&"function"==typeof e.then,a_=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rl.createWriteStream)(r)),e;if(b(r))return e[t].pipe(r),e;if(!aC(r))throw TypeError("The second argument must be a string, a stream or an Execa child process.");if(!b(r.stdin))throw TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r;},aL=e=>{null!==e.stdout&&(e.pipeStdout=a_.bind(void 0,e,"stdout")),null!==e.stderr&&(e.pipeStderr=a_.bind(void 0,e,"stderr")),void 0!==e.all&&(e.pipeAll=a_.bind(void 0,e,"all"));},a$=e=>{if(void 0!==e)throw TypeError("The `input` and `inputFile` options cannot be both set.");},aP=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.readFileSync)(t)),ak=e=>{let t=aP(e);if(w(t))throw TypeError("The `input` option cannot be a stream in sync mode");return t;},aU=({input:e,inputFile:t})=>"string"!=typeof t?e:(a$(e),(0,rl.createReadStream)(t)),aM=(e,t)=>{let r=aU(t);void 0!==r&&(w(r)?r.pipe(e.stdin):e.stdin.end(r));},aF=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=p(r7)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r;},aj=async(e,t)=>{if(e&&void 0!==t){e.destroy();try{return await t;}catch(e){return e.bufferedData;}}},aq=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(e&&r)return t?p(r4)(e,{encoding:t,maxBuffer:n}):p(r4).buffer(e,{maxBuffer:n});},aB=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:o},a)=>{let s=aq(e,{encoding:n,buffer:i,maxBuffer:o}),l=aq(t,{encoding:n,buffer:i,maxBuffer:o}),u=aq(r,{encoding:n,buffer:i,maxBuffer:2*o});try{return await Promise.all([a,s,l,u]);}catch(n){return Promise.all([{error:n,signal:n.signal,timedOut:n.timedOut},aj(e,s),aj(t,l),aj(r,u)]);}},aG=(async()=>{})().constructor.prototype,aH=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(aG,e)]),aV=(e,t)=>{for(let[r,n]of aH){let i="function"==typeof t?(...e)=>Reflect.apply(n.value,t(),e):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i});}},aX=e=>new Promise((t,r)=>{e.on("exit",(e,r)=>{t({exitCode:e,signal:r});}),e.on("error",e=>{r(e);}),e.stdin&&e.stdin.on("error",e=>{r(e);});}),az=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],aW=e=>"string"!=typeof e||/^[\w.-]+$/.test(e)?e:`"${e.replace(/"/g,'\\"')}"`,aK=(e,t)=>az(e,t).join(" "),aY=(e,t)=>az(e,t).map(e=>aW(e)).join(" "),aJ=e=>{let t=typeof e;if("string"===t)return e;if("number"===t)return e+"";if("object"===t&&null!==e&&!(e instanceof rh.ChildProcess)&&"stdout"in e){let t=typeof e.stdout;if("string"===t)return e.stdout;if((0,rd.Buffer).isBuffer(e.stdout))return e.stdout.toString();throw TypeError(`Unexpected "${t}" stdout in template expression`);}throw TypeError(`Unexpected "${t}" in template expression`);},aQ=(e,t,r)=>r||0===e.length||0===t.length?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],aZ=({templates:e,expressions:t,tokens:r,index:n,template:i})=>{let o=i??e.raw[n],a=aQ(r,o.split(/ +/g).filter(Boolean),o.startsWith(" "));if(n===t.length)return a;let s=t[n];return aQ(a,Array.isArray(s)?s.map(e=>aJ(e)):[aJ(s)],o.endsWith(" "));},a0=(e,t)=>{let r=[];for(let[n,i]of e.entries())r=aZ({templates:e,expressions:t,tokens:r,index:n,template:i});return r;},a1=(0,rw.debuglog)("execa").enabled,a3=(e,t)=>(e+"").padStart(t,"0"),a2=()=>{let e=new Date();return`${a3(e.getHours(),2)}:${a3(e.getMinutes(),2)}:${a3(e.getSeconds(),2)}.${a3(e.getMilliseconds(),3)}`;},a4=(e,{verbose:t})=>{t&&p(rm).stderr.write(`[${a2()}] ${e} +`);},a5=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...p(rm).env,...e}:e;return r?y({env:o,cwd:n,execPath:i}):o;},a6=(e,t,r={})=>{let n=p(rB)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||p(rm).cwd(),execPath:p(rm).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:a1,...r}).env=a5(r),r.stdio=aw(r),"win32"===p(rm).platform&&"cmd"===p(rf).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},a8=(e,t,r)=>"string"==typeof t||(0,rd.Buffer).isBuffer(t)?e.stripFinalNewline?v(t):t:void 0===r?void 0:"",a9=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},a7=(e={})=>({preferLocal:!0,...a9(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...a]=a0(n,i);return k(o,a,a7(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=a0(e,r);return function(e,t,r){let n;let i=a6(e,t,r),o=aK(e,t),a=aY(e,t);a4(a,i.options);let s=ak(i.options);try{n=p(rh).spawnSync(i.file,i.args,{...i.options,input:s});}catch(e){throw av({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:a,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=a8(i.options,n.stdout,n.error),u=a8(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=av({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:a,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:a,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}(n,i,a7(t));},r;}(),nb={};const se="win32"!==n7.platform(),st=n7.release(),sr=(e="",t="")=>/1\d+\.\d+/.test(e)&&+t>=17134.1184;nb=function(e){return se?e.replace(/(\s+)/g,"\\$1"):sr(.../(\d+\.\d+)\.(\d+)/.exec(st).splice(1))?e:e.replace(/(\s+)/g,"%20");},function(){var e,t;e=rR("i8A01"),t=function(e){return e.split("").reverse().join("");},nx=function(r,n,i){var o;return(null==n&&(n="'"),null==i&&(i="\\"),"string"!=typeof r)?r:(o=RegExp("(["+e(n)+"])(?!"+e(i)+")","g"),t(t(r).replace(o,"$1"+i)));};}.call(nx={}),nD=rR("kY0n1");const sn={shouldEscapeSpace:!1,shouldAddOnlyIfNotDefined:!1},si=[/\/usr\/bin\/?/,/\/usr\/local\/bin\/?/],so=C("~/.cpprc");let sa=!1;nD=rR("kY0n1"),nS=rR("iNGpn"),rA=rR("ER74K");const{appendFile:ss}=it.promises;let sl=!1,su=!1;const sc=["E: Could not get lock","dpkg: error processing archive","dpkg: error: dpkg status database is locked by another process"];(rr=nT||(nT={}))[rr.NameDashVersion=0]="NameDashVersion",rr[rr.NameEqualsVersion=1]="NameEqualsVersion",rr[rr.Name=2]="Name",rr[rr.None=3]="None",nw=rR("4t50X"),nN=rR("bzNgi"),nN=rR("bzNgi"),nR=rR("hZdK0");let sp=!1;nD=rR("kY0n1"),nN=rR("bzNgi"),rA=rR("ER74K");let sd=!1;rA=rR("ER74K"),rA=rR("ER74K");let sf=!1,sh=!1;const sm=/Version\s*:\s*(.*)/g;nI={},nO=ie.resolve(__dirname,"../../node_modules/@actions/tool-cache/lib"),nA=nI&&nI.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),nC=nI&&nI.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),n_=nI&&nI.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nA(t,e,r);return nC(t,e),t;},nL=nI&&nI.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},n$=nI&&nI.__importDefault||function(e){return e&&e.__esModule?e:{default:e};},Object.defineProperty(nI,"__esModule",{value:!0}),nI.evaluateVersions=nI.isExplicitVersion=nI.findFromManifest=nI.getManifestFromRepo=nI.findAllVersions=nI.find=nI.cacheFile=nI.cacheDir=nI.extractZip=nI.extractXar=nI.extractTar=nI.extract7z=nI.downloadTool=nI.HTTPError=void 0;const sg=n_(rR("4t50X")),sv=n_(rR("hZdK0")),sE=n_(it),sy=n_(rR("42L4Y")),sw=n_(n7),sb=n_(ie),sx=n_(rR("a7JAS")),sD=n_(rR("lroIv")),sS=n_(ry),sT=n_(rs),sN=n$(rR("eAF86"));nP=rR("1f6JF"),nU=(nk={},nk.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];})),nM=nk&&nk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),nF=nk&&nk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&nU(t,e,r);return nM(t,e),t;},nj=nk&&nk.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{l(n.next(e));}catch(e){o(e);}}function s(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(a,s);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(nk,"__esModule",{value:!0}),nk.RetryHelper=void 0;const sR=nF(rR("4t50X"));nk.RetryHelper=class{constructor(e,t,r){if(e<1)throw Error("max attempts should be greater than or equal to 1");if(this.maxAttempts=e,this.minSeconds=Math.floor(t),this.maxSeconds=Math.floor(r),this.minSeconds>this.maxSeconds)throw Error("min seconds should be less than or equal to max seconds");}execute(e,t){return nj(this,void 0,void 0,function*(){let r=1;for(;rsetTimeout(t,1e3*e));});}};class sI extends Error{constructor(e){super("Unexpected HTTP response: "+e),this.httpStatusCode=e,Object.setPrototypeOf(this,new.target.prototype);}}nI.HTTPError=sI;const sO="win32"===process.platform,sA="darwin"===process.platform;nI.downloadTool=function(e,t,r,n){return nL(this,void 0,void 0,function*(){t=t||sb.join(eb(),sN.default()),yield sv.mkdirP(sb.dirname(t)),sg.debug("Downloading "+e),sg.debug("Destination "+t);let i=ex("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS",10),o=ex("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS",20),a=new nk.RetryHelper(3,i,o);return yield a.execute(()=>nL(this,void 0,void 0,function*(){return yield function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(sE.existsSync(t))throw Error(`Destination file path ${t} already exists`);let i=new sx.HttpClient("actions/tool-cache",[],{allowRetries:!1});r&&(sg.debug("set auth"),void 0===n&&(n={}),n.authorization=r);let o=yield i.get(e,n);if(200!==o.message.statusCode){let t=new sI(o.message.statusCode);throw sg.debug(`Failed to download from "${e}". Code(${o.message.statusCode}) Message(${o.message.statusMessage})`),t;}let a=sT.promisify(sS.pipeline),s=ex("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY",()=>o.message)(),l=!1;try{return yield a(s,sE.createWriteStream(t)),sg.debug("download complete"),l=!0,t;}finally{if(!l){sg.debug("download failed");try{yield sv.rmRF(t);}catch(e){sg.debug(`Failed to delete '${t}'. ${e.message}`);}}}});}(e,t||"",r,n);}),e=>!(e instanceof sI)||!e.httpStatusCode||!(e.httpStatusCode<500)||408===e.httpStatusCode||429===e.httpStatusCode);});},nI.extract7z=function(e,t,r){return nL(this,void 0,void 0,function*(){ra.ok(sO,"extract7z() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t);let n=process.cwd();if(process.chdir(t),r)try{let t=sg.isDebug()?"-bb1":"-bb0";yield nP.exec(`"${r}"`,["x",t,"-bd","-sccUTF-8",e],{silent:!0});}finally{process.chdir(n);}else{let r=sb.join(nO,"..","scripts","Invoke-7zdec.ps1").replace(/'/g,"''").replace(/"|\n|\r/g,""),i=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),o=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),a=`& '${r}' -Source '${i}' -Target '${o}'`;try{let e=yield sv.which("powershell",!0);yield nP.exec(`"${e}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",a],{silent:!0});}finally{process.chdir(n);}}return t;});},nI.extractTar=function(e,t,r="xz"){return nL(this,void 0,void 0,function*(){let n;if(!e)throw Error("parameter 'file' is required");t=yield em(t),sg.debug("Checking tar --version");let i="";yield nP.exec("tar --version",[],{ignoreReturnCode:!0,silent:!0,listeners:{stdout:e=>i+=e.toString(),stderr:e=>i+=e.toString()}}),sg.debug(i.trim());let o=i.toUpperCase().includes("GNU TAR");n=r instanceof Array?r:[r],sg.isDebug()&&!r.includes("v")&&n.push("-v");let a=t,s=e;return sO&&o&&(n.push("--force-local"),a=t.replace(/\\/g,"/"),s=e.replace(/\\/g,"/")),o&&(n.push("--warning=no-unknown-keyword"),n.push("--overwrite")),n.push("-C",a,"-f",s),yield nP.exec("tar",n),t;});},nI.extractXar=function(e,t,r=[]){return nL(this,void 0,void 0,function*(){let n;ra.ok(sA,"extractXar() not supported on current OS"),ra.ok(e,'parameter "file" is required'),t=yield em(t),(n=r instanceof Array?r:[r]).push("-x","-C",t,"-f",e),sg.isDebug()&&n.push("-v");let i=yield sv.which("xar",!0);return yield nP.exec(`"${i}"`,Array.from(new Set(n))),t;});},nI.extractZip=function(e,t){return nL(this,void 0,void 0,function*(){if(!e)throw Error("parameter 'file' is required");return t=yield em(t),sO?yield function(e,t){return nL(this,void 0,void 0,function*(){let r=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),n=t.replace(/'/g,"''").replace(/"|\n|\r/g,""),i=yield sv.which("pwsh",!1);if(i){let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else { throw $_ } } ;`;sg.debug("Using pwsh at path: "+i),yield nP.exec(`"${i}"`,["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}else{let e=`$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${r}' -DestinationPath '${n}' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${r}', '${n}', $true) }`,t=yield sv.which("powershell",!0);sg.debug("Using powershell at path: "+t),yield nP.exec(`"${t}"`,["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",e]);}});}(e,t):yield function(e,t){return nL(this,void 0,void 0,function*(){let r=yield sv.which("unzip",!0),n=[e];sg.isDebug()||n.unshift("-q"),n.unshift("-o"),yield nP.exec(`"${r}"`,n,{cwd:t});});}(e,t),t;});},nI.cacheDir=function(e,t,r,n){return nL(this,void 0,void 0,function*(){if(r=sD.clean(r)||r,n=n||sw.arch(),sg.debug(`Caching tool ${t} ${r} ${n}`),sg.debug("source dir: "+e),!sE.statSync(e).isDirectory())throw Error("sourceDir is not a directory");let i=yield eg(t,r,n);for(let t of sE.readdirSync(e)){let r=sb.join(e,t);yield sv.cp(r,i,{recursive:!0});}return ev(t,r,n),i;});},nI.cacheFile=function(e,t,r,n,i){return nL(this,void 0,void 0,function*(){if(n=sD.clean(n)||n,i=i||sw.arch(),sg.debug(`Caching tool ${r} ${n} ${i}`),sg.debug("source file: "+e),!sE.statSync(e).isFile())throw Error("sourceFile is not a file");let o=yield eg(r,n,i),a=sb.join(o,t);return sg.debug("destination file "+a),yield sv.cp(e,a),ev(r,n,i),o;});},nI.find=function(e,t,r){if(!e)throw Error("toolName parameter is required");if(!t)throw Error("versionSpec parameter is required");r=r||sw.arch(),eE(t)||(t=ey(eh(e,r),t));let n="";if(t){t=sD.clean(t)||"";let i=sb.join(ew(),e,t,r);sg.debug("checking cache: "+i),sE.existsSync(i)&&sE.existsSync(`${i}.complete`)?(sg.debug(`Found tool in cache ${e} ${t} ${r}`),n=i):sg.debug("not found");}return n;},nI.findAllVersions=eh,nI.getManifestFromRepo=function(e,t,r,n="master"){return nL(this,void 0,void 0,function*(){let i=[],o=`https://api.github.com/repos/${e}/${t}/git/trees/${n}`,a=new sx.HttpClient("tool-cache"),s={};r&&(sg.debug("set auth"),s.authorization=r);let l=yield a.getJson(o,s);if(!l.result)return i;let u="";for(let e of l.result.tree)if("versions-manifest.json"===e.path){u=e.url;break;}s.accept="application/vnd.github.VERSION.raw";let c=yield(yield a.get(u,s)).readBody();if(c){c=c.replace(/^\uFEFF/,"");try{i=JSON.parse(c);}catch(e){sg.debug("Invalid json");}}return i;});},nI.findFromManifest=function(e,t,r,n=sw.arch()){return nL(this,void 0,void 0,function*(){return yield sy._findMatch(e,t,r,n);});},nI.isExplicitVersion=eE,nI.evaluateVersions=ey,nq=rR("8aNoG"),nB=rR("l8hao"),nN=rR("bzNgi"),rA=rR("ER74K"),rO=rR("52cQ1"),nD=rR("kY0n1"),Object.defineProperty(nG={},"__esModule",{value:!0}),nG.retryAsPromised=nG.TimeoutError=void 0;class sC extends Error{constructor(e,t){super(e),this.name="TimeoutError",this.previous=t;}}nG.TimeoutError=sC,nG.retryAsPromised=eD,nG.default=eD;let s_=!1;nN=rR("bzNgi"),nR=rR("hZdK0"),rA=rR("ER74K"),nw=rR("4t50X"),nD=rR("kY0n1"),nN=rR("bzNgi"),nP=rR("1f6JF"),rO=rR("52cQ1"),rA=rR("ER74K"),nH={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},nV=Array.prototype.slice,nX=function(){function e(e){this.keys=[],this.values=[],this.options=e;var t="function"==typeof e.isMatchingKey;t?this.getKeyIndex=this._getKeyIndexFromMatchingKey:e.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey="function"==typeof e.transformKey,this.shouldCloneArguments=this.canTransformKey||t,this.shouldUpdateOnAdd="function"==typeof e.onCacheAdd,this.shouldUpdateOnChange="function"==typeof e.onCacheChange,this.shouldUpdateOnHit="function"==typeof e.onCacheHit;}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length;},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:eL(this.keys),size:this.size,values:eL(this.values)};},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(e){var t=this.options,r=t.isMatchingKey,n=t.maxSize,i=this.keys,o=i.length;if(!o)return-1;if(r(i[0],e))return 0;if(n>1){for(var a=1;o>a;a++)if(r(i[a],e))return a;}return-1;},e.prototype._getKeyIndexForMany=function(e){var t,r,n=this.options.isEqual,i=this.keys,o=i.length;if(!o)return-1;if(1===o)return this._getKeyIndexForSingle(e);var a=e.length;if(a>1){for(var s=0;o>s;s++)if((t=i[s]).length===a){for(r=0;a>r&&n(t[r],e[r]);r++);if(r===a)return s;}}else for(var s=0;o>s;s++)if((t=i[s]).length===a&&n(t[0],e[0]))return s;return-1;},e.prototype._getKeyIndexForSingle=function(e){var t=this.keys;if(!t.length)return-1;var r=t[0],n=r.length;if(e.length!==n)return-1;var i=this.options.isEqual;if(n>1){for(var o=0;n>o;o++)if(!i(r[o],e[o]))return-1;return 0;}return i(r[0],e[0])?0:-1;},e.prototype.orderByLru=function(e,t,r){for(var n=this.keys,i=this.values,o=n.length,a=r;a--;)n[a+1]=n[a],i[a+1]=i[a];n[0]=e,i[0]=t;var s=this.options.maxSize;o===s&&r===o?(n.pop(),i.pop()):r>=s&&(n.length=i.length=s);},e.prototype.updateAsyncCache=function(e){var t=this,r=this.options,n=r.onCacheChange,i=r.onCacheHit,o=this.keys[0],a=this.values[0];this.values[0]=a.then(function(r){return t.shouldUpdateOnHit&&i(t,t.options,e),t.shouldUpdateOnChange&&n(t,t.options,e),r;},function(e){var r=t.getKeyIndex(o);throw-1!==r&&(t.keys.splice(r,1),t.values.splice(r,1)),e;});},e;}(),nN=rR("bzNgi"),nz=e=>{if("string"!=typeof e)return!1;let t=e.trim();if(t.includes(" "))return!1;try{return new rx.URL(t),!0;}catch{return!1;}},nW=async e=>{if(!nz(e))return!1;let t=await eU(e,"HEAD");return!!t||!!(t=await eU(e,"GET"));},nK=rR("3uysP"),nB=rR("l8hao"),nY=rR("l655J"),nP=rR("1f6JF"),rA=rR("ER74K");const sL=/v?(\d\S*)/,s$={llvm:eB(),clangtidy:eB(),clangformat:eB(),ninja:"1.11.1",cmake:"3.28.1",gcovr:"5.2",conan:"1.62.0",meson:"1.3.1",kcov:"42",task:"3.33.1",doxygen:ea()?"1.10.0-1":"1.10.0",gcc:ea()?"13.2.1-3":"13"},sP={pip:"22.2.0",python:"3.7.9"},sk={gcc:{22:"13",20:"11",18:"11",16:"11",14:"11"},mingw:{22:"8.0.0-1",20:"7.0.0-2"},llvm:{22:"17.0.6-ubuntu-22.04",20:"17.0.6-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangtidy:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},clangformat:{22:"17.0.2-ubuntu-22.04",20:"17.0.2-ubuntu-22.04",18:"15.0.6-ubuntu-18.04",16:"15.0.6-ubuntu-18.04",14:"13.0.0-ubuntu-16.04"},gcovr:{22:"6.0",20:"6.0",18:"5.0"},meson:{20:"1.0.0",18:"0.61.4"},nala:{22:"",21:"legacy",20:"legacy",18:"legacy",16:"legacy",14:"legacy"},kcov:{22:"42-binary",20:"40-binary",18:"40",16:"40",14:"40"}};nD=rR("kY0n1");const sU=ek(e1,{isPromise:!0});rA=rR("ER74K"),Object.defineProperty(nJ={},"__esModule",{value:!0}),nJ.getUbuntuVersion=void 0,nJ.getUbuntuVersion=e4;const sM=ek(e5,{isPromise:!0}),sF=e=>{if(e){if("object"==typeof e)e={mode:511,...e};else if("number"==typeof e)e={mode:e};else if("string"==typeof e)e={mode:parseInt(e,8)};else throw TypeError("invalid options argument");}else e={mode:511};let t=e,r=e.fs||{};return e.mkdir=e.mkdir||r.mkdir||it.mkdir,e.mkdirAsync=e.mkdirAsync?e.mkdirAsync:async(e,r)=>new Promise((n,i)=>t.mkdir(e,r,(e,t)=>e?i(e):n(t))),e.stat=e.stat||r.stat||it.stat,e.statAsync=e.statAsync?e.statAsync:async e=>new Promise((r,n)=>t.stat(e,(e,t)=>e?n(e):r(t))),e.statSync=e.statSync||r.statSync||it.statSync,e.mkdirSync=e.mkdirSync||r.mkdirSync||it.mkdirSync,t;},sj=(e,t,r)=>{let n=(0,ie.dirname)(e),i={...sF(t),recursive:!1};if(n===e)try{return i.mkdirSync(e,i);}catch(e){if(e&&"EISDIR"!==e.code)throw e;return;}try{return i.mkdirSync(e,i),r||e;}catch(t){if(t&&"ENOENT"===t.code)return sj(e,i,sj(n,i,r));if(t&&"EEXIST"!==t.code&&t&&"EROFS"!==t.code)throw t;try{if(!i.statSync(e).isDirectory())throw t;}catch(e){throw t;}}},sq=Object.assign(async(e,t,r)=>{let n=sF(t);n.recursive=!1;let i=(0,ie.dirname)(e);return i===e?n.mkdirAsync(e,n).catch(e=>{if(e&&"EISDIR"!==e.code)throw e;}):n.mkdirAsync(e,n).then(()=>r||e,async t=>{if(t&&"ENOENT"===t.code)return sq(i,n).then(t=>sq(e,n,t));if(t&&"EEXIST"!==t.code&&"EROFS"!==t.code)throw t;return n.statAsync(e).then(e=>{if(e.isDirectory())return r;throw t;},()=>{throw t;});});},{sync:sj}),sB=async(e,t,r)=>{if(r!==t)return e.statAsync(t).then(e=>e.isDirectory()?r:void 0,r=>r&&"ENOENT"===r.code?sB(e,(0,ie.dirname)(t),t):void 0);},sG=(e,t,r)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0;}catch(r){return r&&"ENOENT"===r.code?sG(e,(0,ie.dirname)(t),t):void 0;}},sH=(e,t)=>{let r=sF(t);if(r.recursive=!0,(0,ie.dirname)(e)===e)return r.mkdirSync(e,r);let n=sG(r,e);try{return r.mkdirSync(e,r),n;}catch(t){if(t&&"ENOENT"===t.code)return sj(e,r);throw t;}},sV=Object.assign(async(e,t)=>{let r={...sF(t),recursive:!0};return(0,ie.dirname)(e)===e?await r.mkdirAsync(e,r):sB(r,e).then(t=>r.mkdirAsync(e,r).then(e=>t||e).catch(t=>{if(t&&"ENOENT"===t.code)return sq(e,r);throw t;}));},{sync:sH}),sX=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,sz=e=>{if(/\0/.test(e))throw Object.assign(TypeError("path must be a string without null bytes"),{path:e,code:"ERR_INVALID_ARG_VALUE"});if(e=(0,ie.resolve)(e),"win32"===sX){let{root:t}=(0,ie.parse)(e);if(/[*|"<>?:]/.test(e.substring(t.length)))throw Object.assign(Error("Illegal characters in path."),{path:e,code:"EINVAL"});}return e;},sW=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,"").split("."),sK=+sW[0]>10||10==+sW[0]&&+sW[1]>=12,sY=sK?e=>sF(e).mkdirSync===it.mkdirSync:()=>!1,sJ=Object.assign(sK?e=>sF(e).mkdir===it.mkdir:()=>!1,{sync:sY}),sQ=(e,t)=>{e=sz(e);let r=sF(t);return sY(r)?sH(e,r):sj(e,r);},sZ=Object.assign(async(e,t)=>{e=sz(e);let r=sF(t);return sJ(r)?sV(e,r):sq(e,r);},{mkdirpSync:sQ,mkdirpNative:sV,mkdirpNativeSync:sH,mkdirpManual:sq,mkdirpManualSync:sj,sync:sQ,native:sV,nativeSync:sH,manual:sq,manualSync:sj,useNative:sJ,useNativeSync:sY}),s0=ek(te,{isPromise:!0}),s1=ek(tt,{isPromise:!0}),s3=ek(tr,{isPromise:!0});nN=rR("bzNgi"),rA=rR("ER74K"),nD=rR("kY0n1");const s2=new Map([[23,["Sonoma","14"]],[22,["Ventura","13"]],[21,["Monterey","12"]],[20,["Big Sur","11"]],[19,["Catalina","10.15"]],[18,["Mojave","10.14"]],[17,["High Sierra","10.13"]],[16,["Sierra","10.12"]],[15,["El Capitan","10.11"]],[14,["Yosemite","10.10"]],[13,["Mavericks","10.9"]],[12,["Mountain Lion","10.8"]],[11,["Lion","10.7"]],[10,["Snow Leopard","10.6"]],[9,["Leopard","10.5"]],[8,["Tiger","10.4"]],[7,["Panther","10.3"]],[6,["Jaguar","10.2"]],[5,["Puma","10.1"]]]),s4=ek(function(){let{version:e}=function(e){e=+(e||p(rv).release()).split(".")[0];let[t,r]=s2.get(e)||["Unknown",""];return{name:t,version:r};}();return e.split(".").map(e=>parseInt(e,10));});(nZ=rR("fSAop")).DOMImplementation,nZ.XMLSerializer,nQ=rR("i9SYz").DOMParser;const s5=63,s6="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s8=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];class s9{constructor(){}get type(){return this.constructor.TYPE;}castTo(e){return this.type===e.TYPE?this:null;}castAs(e){let t=this.castTo(e);if(!t)throw Error(`Cannot cast type '${this.type}' to '${e.TYPE}'`);return t;}fromXml(e){let{documentElement:t}=tc(e);this.fromXmlElement(t);}}class s7 extends s9{static TYPE="boolean";static TAG_NAMES=["true","false"];value=!1;constructor(e=!1){super(),this.value=e;}fromXmlElement(e){switch(!function(e){let{childNodes:t}=e;if(t.length)throw Error("Unexpected child nodes: "+e.tagName);}(e),e.tagName){case"true":this.value=!0;return;case"false":this.value=!1;return;default:throw tf(e,"");}}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t);return this.value?`${r}`:`${r}`;}}class le extends s9{static TYPE="data";static TAG_NAMES=["data"];constructor(e=new Uint8Array(0)){super(),this.value=e;}fromXmlElement(e){tf(e,"data");let t=td(e)?.nodeValue||"";this.value=function(e){let t=e.length,r=[];e:for(let n,i,o,a,s,l,u=0;t>u;){for(;;){if((s=s8[e.charCodeAt(u++)])>=0){n=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){i=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){o=s;break;}if(u>=t)break e;}for(;;){if((s=s8[e.charCodeAt(u++)])>=0){a=s;break;}if(u>=t)break e;}switch(l=(n&s5)<<18|(i&s5)<<12|(o&s5)<<6|a&s5,o>s5?a>s5?2:0:a>s5?1:0){case 0:r.push(l>>16&255,l>>8&255,255&l);break;case 1:r.push(l>>16&255,l>>8&255);break;case 2:r.push(l>>16&255);}}return new Uint8Array(r);}(t);}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=e?.dataColumns??68,i=(e?.indentString??" ").repeat(t),o=`${i}`;if(n>0)for(let e=th(this.value);e;e=e.substring(n))o+=`${r}${i}${e.substring(0,n)}`;else o+=`${r}${i}${th(this.value)}`;return o+`${r}${i}`;}}class lt extends s9{static TYPE="integer";static TAG_NAMES=["integer"];value=0;constructor(e=0){super(),tm(e),this.value=e;}asBigInt(){return BigInt(this.value);}asNumber(){return+this.value;}fromXmlElement(e){tf(e,"integer");let t=td(e)?.nodeValue||"";if(!/^[-+]?[0-9]+$/.test(t))throw Error("Invalid integer data: "+t);let r=+t;this.value=r>9007199254740991||r<-9007199254740991?BigInt(t):r;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return tm(n),`${r}${n}`;}}class lr extends s9{static TYPE="real";static TAG_NAMES=["real"];value=0;constructor(e=0){super(),this.value=e;}fromXmlElement(e){tf(e,"real");let t=td(e)?.nodeValue||"";if(!/^[-+]?([0-9]+|[0-9]*\.[0-9]+)$/.test(t))throw Error("Invalid real data: "+t);this.value=+t;}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value;return`${r}${n}`;}}class ln extends s9{static TYPE="string";static TAG_NAMES=["string"];value="";constructor(e=""){super(),this.value=e;}fromXmlElement(e){tf(e,"string"),this.value=td(e)?.nodeValue||"";}toXml(e=null,t=0){let r=(e?.indentString??" ").repeat(t),n=this.value.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");return`${r}${n}`;}}class li extends s9{static TYPE="array";static TAG_NAMES=["array"];static get CHILD_TAG_NAMES(){if(!i)for(let e of(i=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)i.set(t,e);return i;}value=[];constructor(e=[]){super(),this.value=e;}get length(){return this.value.length;}get(e){let{value:t}=this;return ethis.childFromXmlElement(e));}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.newlineString??"\n",n=(e?.indentString??" ").repeat(t),i=this.value;if(!i.length)return`${n}`;let o=`${n}`;for(let n of i)o+=`${r}${n.toXml(e,t+1)}`;return o+`${r}${n}`;}}class lo extends s9{static TYPE="dict";static TAG_NAMES=["dict"];static get CHILD_TAG_NAMES(){if(!o)for(let e of(o=new Map(),[li,s7,le,lo,lt,lr,ln]))for(let t of e.TAG_NAMES)o.set(t,e);return o;}value=new Map();constructor(e=new Map()){super(),this.value=e;}get size(){return this.value.size;}has(e){return this.value.has(e);}get(e){return this.value.get(e)||null;}getValue(e){let t=this.get(e);if(!t)throw Error("Key is null: "+e);return t;}set(e,t){this.value.set(e,t);}delete(e){this.value.delete(e);}clear(){this.value.clear();}fromXmlElement(e){tf(e,"dict");let t=tp(e),r=t.length;if(r%2)throw Error("Uneven number of child elements: "+r);let n=new Map();for(let e=0;r>e;e+=2){let r=t[e],i=t[e+1];tf(r,"key");let o=td(r)?.nodeValue||"",a=this.childFromXmlElement(i);n.set(o,a);}this.value=n;}childFromXmlElement(e){let{tagName:t}=e,{CHILD_TAG_NAMES:r}=this.constructor,n=r.get(t)||null;if(!n)throw Error("Unknown element type: "+t);let i=new n();return i.fromXmlElement(e),i;}toXml(e=null,t=0){let r=e?.indentString??" ",n=e?.newlineString??"\n",i=r.repeat(t),o=this.value;if(!o.size)return`${i}`;let a=r.repeat(t+1),s=`${i}`;for(let[r,i]of o){let o=r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">");s+=`${n}${a}${o}${n}${i.toXml(e,t+1)}`;}return s+`${n}${i}`;}}const la='',ls='';class ll{static XML_DECLARATION=la;static XML_DOCTYPE=ls;xmlDeclaration=la;xmlDoctype=ls;value=null;constructor(e=null){this.value=e;}getValue(){let{value:e}=this;if(!e)throw Error("Value is null");return e;}valueCastTo(e){let{value:t}=this;return t?t.castTo(e):null;}valueCastAs(e){let t=this.valueCastTo(e);if(!t)throw Error(`Cannot cast value to type '${e.TYPE}'`);return t;}fromXml(e){let{declaration:t,doctype:r,documentElement:n}=tc(e);this.fromXmlElement(n,t,r);}fromXmlElement(e,t=null,r=null){let{tagName:n}=e;if("plist"!==n)throw Error("Unexpected root plist tag name: "+n);let i=tp(e),o=i.length;if(o>1)throw Error("Multiple root plist child tag: "+o);this.value=o?this.childFromXmlElement(i[0]):null,this.xmlDeclaration=t||"",this.xmlDoctype=r||"";}childFromXmlElement(e){return new lo().childFromXmlElement(e);}toXml(e=null){let t=e?.indentRoot??!1,r=e?.newlineString??"\n",n=this.value;return[...[this.xmlDeclaration,this.xmlDoctype].filter(e=>e),'',...(n?[n.toXml(e,t?1:0)]:[]),"",""].join(r);}}class lu{constructor(e=null){this.hdiutil=(e?e.hdiutil:null)||"hdiutil";}async attach(e,t=null,r=null){let n=await this._runAttach(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}attachSync(e,t=null,r=null){let n=this._runAttachSync(this._argsAttach(e,t)),{eject:i,ejectSync:o}=this._createEjects(n);return{devices:n,eject:i,ejectSync:o};}async eject(e,t=null){await this._runEject(this._argsEject(e,t));}ejectSync(e,t=null){this._runEjectSync(this._argsEject(e,t));}_argsAttach(e,t=null){let r=["attach","-plist"];return t&&(t.readonly&&r.push("-readonly"),t.nobrowse&&r.push("-nobrowse")),r.push(this._fileArg(e)),r;}_argsEject(e,t=null){let r=["eject"];return t&&t.force&&r.push("-force"),r.push(this._fileArg(e)),r;}async _runAttach(e){let t=[],r=(0,rh.spawn)(this.hdiutil,e);r.stdout.on("data",e=>{t.push(e);});let n=await new Promise((e,t)=>{r.once("exit",e),r.once("error",t);});if(n)throw Error("Attach failed: hdiutil exit code: "+n);return this._parseDevices(Buffer.concat(t).toString());}_runAttachSync(e){let{status:t,error:r,stdout:n}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Attach failed: hdiutil exit code: "+t);return this._parseDevices(n.toString());}async _runEject(e){let t=(0,rh.spawn)(this.hdiutil,e),r=await new Promise((e,r)=>{t.once("exit",e),t.once("error",r);});if(r)throw Error("Eject failed: hdiutil exit code: "+r);}_runEjectSync(e){let{status:t,error:r}=(0,rh.spawnSync)(this.hdiutil,e);if(r)throw r;if(t)throw Error("Eject failed: hdiutil exit code: "+t);}_fileArg(e){return e.startsWith("-")?"./"+e:e;}_parseDevices(e){let t=new ll();t.fromXml(e);let r=t.valueCastAs(lo).getValue("system-entities").castAs(li),n=[];for(let e of r.value){let t=e.castAs(lo),r=t.getValue("dev-entry").castAs(ln).value,i=t.getValue("potentially-mountable").castAs(s7).value,o=t.get("content-hint"),a=t.get("unmapped-content-hint"),s=t.get("volume-kind"),l=t.get("mount-point"),u={devEntry:r,potentiallyMountable:i};o&&(u.contentHint=o.castAs(ln).value),a&&(u.unmappedContentHint=a.castAs(ln).value),s&&(u.volumeKind=s.castAs(ln).value),l&&(u.mountPoint=l.castAs(ln).value),n.push(u);}return n;}_findRootDevice(e){let t=null;for(let r of e)(null===t||t.devEntry.length>r.devEntry.length)&&(t=r);return t;}_createEjects(e,t=null){let r=this._findRootDevice(e)?.devEntry,n=null,i={eject:async(e=null)=>{r&&(await this.eject(r,e),r="",n&&process.off("exit",n));},ejectSync:(e=null)=>{r&&(this.ejectSync(r,e),r="",n&&process.off("exit",n));}};return t&&(n=()=>{i.ejectSync(t);},process.once("exit",n)),i;}}n0=rR("2aJGP"),nB=rR("l8hao"),nP=rR("1f6JF"),rA=rR("ER74K"),nN=rR("bzNgi"),rA=rR("ER74K"),rO=rR("52cQ1"),nD=rR("kY0n1"),n1=ie.resolve(__dirname,"../../src/gcc");const lc={13:{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt":{releaseName:"13.2.0-16.0.6-11.0.0-ucrt-r1",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.0-r1"},"13.2-ucrt-mcf":{releaseName:"13.2.0mcf-16.0.6-11.0.1-ucrt-r2",fileSuffix:"13.2.0-mingw-w64ucrt-11.0.1-r2"},"13.2-msvcrt":{releaseName:"13.2.0-16.0.6-11.0.1-msvcrt-r1",fileSuffix:"13.2.0-mingw-w64msvcrt-11.0.1-r1"},"13.1-ucrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-ucrt-r1",fileSuffix:"13.1.0-mingw-w64ucrt-11.0.0-r1"},"13.1-msvcrt":{releaseName:"13.1.0posix-16.0.3-11.0.0-msvcrt-r1",fileSuffix:"13.1.0-mingw-w64msvcrt-11.0.0-r1"},12:{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-ucrt":{releaseName:"12.3.0-16.0.4-11.0.0-ucrt-r1",fileSuffix:"12.3.0-mingw-w64ucrt-11.0.0-r1"},"12.3.0-msvcrt":{releaseName:"12.3.0-16.0.4-11.0.0-msvcrt-r1",fileSuffix:"12.3.0-mingw-w64msvcrt-11.0.0-r1"},"12.2.0-ucrt":{releaseName:"12.2.0-14.0.6-10.0.0-ucrt-r2",fileSuffix:"12.2.0-mingw-w64ucrt-10.0.0-r2"},"12.2.0-msvcrt":{releaseName:"12.2.0-14.0.6-10.0.0-msvcrt-r2",fileSuffix:"12.2.0-mingw-w64msvcrt-10.0.0-r2"},"12.1.0-ucrt":{releaseName:"12.1.0-14.0.4-10.0.0-ucrt-r2",fileSuffix:"12.1.0-mingw-w64ucrt-10.0.0-r2"},"12.1.0-msvcrt":{releaseName:"12.1.0-14.0.6-10.0.0-msvcrt-r3",fileSuffix:"12.1.0-llvm-14.0.6-mingw-w64msvcrt-10.0.0-r3"},11:{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-ucrt":{releaseName:"11.3.0-14.0.3-10.0.0-ucrt-r3",fileSuffix:"11.3.0-mingw-w64ucrt-10.0.0-r3"},"11.3.0-msvcrt":{releaseName:"11.3.0-14.0.3-10.0.0-msvcrt-r3",fileSuffix:"11.3.0-mingw-w64msvcrt-10.0.0-r3"},"11.2.0-ucrt":{releaseName:"11.2.0-9.0.0-ucrt-r5",fileSuffix:"11.2.0-mingw-w64ucrt-9.0.0-r5"},"11.2.0-msvcrt":{releaseName:"11.2.0-9.0.0-msvcrt-r5",fileSuffix:"11.2.0-mingw-w64msvcrt-9.0.0-r5"},10:{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.5.0-msvcrt":{releaseName:"10.5.0-11.0.1-msvcrt-r1",fileSuffix:"10.5.0-mingw-w64msvcrt-11.0.1-r1"},"10.3.0":{releaseName:"10.3.0-12.0.0-9.0.0-r2",fileSuffix:"10.3.0-llvm-12.0.0-mingw-w64-9.0.0-r2"},"10.2.0":{releaseName:"10.2.0-7.0.0-r4",fileSuffix:"10.2.0-llvm-10.0.1-mingw-w64-7.0.0-r4"},9:{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"},"9.4.0":{releaseName:"9.4.0-9.0.0-r1",fileSuffix:"9.4.0-mingw-w64-9.0.0-r1"}};nY=rR("l655J"),n0=rR("2aJGP"),nN=rR("bzNgi"),rA=rR("ER74K"),nN=rR("bzNgi"),n3=ie.resolve(__dirname,"../../src/kcov"),rO=rR("52cQ1"),rA=rR("ER74K"),nD=rR("kY0n1"),nN=rR("bzNgi"),nw=rR("4t50X"),rA=rR("ER74K"),nN=rR("bzNgi"),nw=rR("4t50X");const lp=rb.env["ProgramFiles(x86)"],ld=[rb.env["ProgramFiles(x86)"],rb.env.ProgramFiles],lf=["Enterprise","Professional","Community","BuildTools"],lh=["2022","2019","2017"],lm={2022:"17.0",2019:"16.0",2017:"15.0",2015:"14.0",2013:"12.0"};n2=t$;const lg=`${lp}\\Microsoft Visual Studio\\Installer`;n4=tP,n5=function(e,t,r,n,i,o){if("win32"!=rb.platform){nw.info("This is not a Windows virtual environment, bye!");return;}rb.env.PATH+=ie.delimiter+lg;let a={win32:"x86",win64:"x64",x86_64:"x64","x86-64":"x64"};e.toLowerCase()in a&&(e=a[e.toLowerCase()]);var s=[e];"true"==n&&s.push("uwp"),t&&s.push(t),r&&s.push("-vcvars_ver="+r),"true"==i&&s.push("-vcvars_spectre_libs=spectre");let l=`"${tP(o)}" ${s.join(" ")}`;nw.debug("vcvars command-line: "+l);let u=ru.execSync(`set && cls && ${l} && cls && set`,{shell:"cmd"}).toString().split("\f"),c=u[0].split("\r\n"),p=u[1].split("\r\n"),d=u[2].split("\r\n"),f=p.filter(e=>!!e.match(/^\[ERROR.*\]/)&&!e.match(/Error in script usage. The correct usage is:$/));if(f.length>0)throw Error("invalid parameters\r\n"+f.join("\r\n"));let h={};for(let e of c){let[t,r]=e.split("=");h[t]=r;}for(let e of(nw.startGroup("Environment variables"),d)){if(!e.includes("="))continue;let[t,r]=e.split("=");r!==h[t]&&(nw.info("Setting "+t),-1!=["PATH","INCLUDE","LIB","LIBPATH"].indexOf(t.toUpperCase())&&(r=r.split(";").filter(function(e,t,r){return r.indexOf(e)===t;}).join(";")),nw.exportVariable(t,r));}nw.endGroup(),nw.info("Configured Developer Command Prompt");},rA=rR("ER74K"),nD=rR("kY0n1");class lv extends Error{constructor(e){super(e),this.name="TimeoutError";}}class lE extends Error{constructor(e){super(),this.name="AbortError",this.message=e;}}const ly=e=>void 0===globalThis.DOMException?new lE(e):new DOMException(e),lw=e=>{let t=void 0===e.reason?ly("This operation was aborted."):e.reason;return t instanceof Error?t:ly(t);},lb=12e5,{readFile:lx,writeFile:lD,chmod:lS}=it.promises;(rn=n6||(n6={}))[rn.All=0]="All",rn[rn.ClangFormat=1]="ClangFormat",rn[rn.Core=2]="Core",nq=rR("8aNoG"),rA=rR("ER74K"),nN=rR("bzNgi");const lT=function(e){let t=new Set(e);for(let r of e)t.add(/^\d+/.exec(r)[0]),t.add(/^\d+\.\d+/.exec(r)[0]);return t;}(["3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.9.0","3.9.1","4.0.0","4.0.1","5.0.0","5.0.1","5.0.2","6.0.0","6.0.1","7.0.0","7.0.1","7.1.0","8.0.0","8.0.1","9.0.0","9.0.1","10.0.0","10.0.1","11.0.0","11.0.1","11.1.0","12.0.0","12.0.1","13.0.0","13.0.1","14.0.0","14.0.1","14.0.2","14.0.3","14.0.4","14.0.5","14.0.6","15.0.0","15.0.1","15.0.2","15.0.3","15.0.4","15.0.5","15.0.6","15.0.7","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lN=new Set(["10.0.1","15.0.5","15.0.6","17.0.5"]),lR=new Set(["3.5.1","3.6.1","3.6.2","3.7.1","3.8.1","3.9.1","6.0.1","7.0.1","7.1.0","8.0.1","11.0.1","11.1.0","12.0.1","15.0.4","15.0.5","15.0.6","16.0.0","16.0.1","16.0.2","16.0.3","16.0.4","16.0.5","16.0.6","17.0.1","17.0.2","17.0.3","17.0.4","17.0.5","17.0.6"]),lI=new Map(),lO={"3.5.0":"-ubuntu-14.04","3.5.1":"","3.5.2":"-ubuntu-14.04","3.6.0":"-ubuntu-14.04","3.6.1":"-ubuntu-14.04","3.6.2":"-ubuntu-14.04","3.7.0":"-ubuntu-14.04","3.7.1":"-ubuntu-14.04","3.8.0":"-ubuntu-16.04","3.8.1":"-ubuntu-16.04","3.9.0":"-ubuntu-16.04","3.9.1":"-ubuntu-16.04","4.0.0":"-ubuntu-16.04","5.0.0":"-ubuntu16.04","5.0.1":"-ubuntu-16.04","5.0.2":"-ubuntu-16.04","6.0.0":"-ubuntu-16.04","6.0.1":"-ubuntu-16.04","7.0.0":"-ubuntu-16.04","7.0.1":"-ubuntu-18.04","7.1.0":"-ubuntu-14.04","8.0.0":"-ubuntu-18.04","9.0.0":"-ubuntu-18.04","9.0.1":"-ubuntu-16.04","10.0.0":"-ubuntu-18.04","10.0.1":"-ubuntu-16.04","11.0.0":"-ubuntu-20.04","11.0.1":"-ubuntu-16.04","11.1.0":"-ubuntu-16.04","12.0.0":"-ubuntu-20.04","12.0.1":"-ubuntu-16.04","13.0.0":"-ubuntu-20.04","13.0.0-ubuntu-16.04":"-ubuntu-16.04","13.0.0-ubuntu-20.04":"-ubuntu-20.04","13.0.1":"-ubuntu-18.04","13.0.1-ubuntu-18.04":"-ubuntu-18.04","14.0.0":"-ubuntu-18.04","15.0.2":"-rhel86","15.0.5":"-ubuntu-18.04","15.0.6":"-ubuntu-18.04","16.0.0":"-ubuntu-18.04","16.0.2":"-ubuntu-22.04","16.0.3":"-ubuntu-22.04","16.0.4":"-ubuntu-22.04","17.0.2":"-ubuntu-22.04","17.0.4":"-ubuntu-22.04","17.0.5":"-ubuntu-22.04","17.0.6":"-ubuntu-22.04"},lA="17.0.6";n8=ie.resolve(__dirname,"../../src/llvm");const lC=ek(tW,{isPromise:!0}),l_=ek(tY,{isPromise:!0}),lL=ek(tJ,{isPromise:!0});rO=rR("52cQ1"),nN=rR("bzNgi"),rA=rR("ER74K"),nD=rR("kY0n1"),n9=ie.resolve(__dirname,"../../src/msvc"),nN=rR("bzNgi"),nN=rR("bzNgi"),rA=rR("ER74K"),nD=rR("kY0n1"),nN=rR("bzNgi");let l$=!1;const lP={nala:t2,cmake:e_,ninja:tI,python:eG,vcpkg:t9,bazel:ep,conan:function(e,t,r){return e8("conan",e);},meson:function(e,t,r){return e8("meson",e);},gcovr:function(e,t,r){return e8("gcovr",e);},opencppcoverage:t4,llvm:tz,gcc:tx,choco:ei,brew:et,powershell:t6,ccache:function(e,t,r){switch(process.platform){case"win32":return eo("ccache",e);case"darwin":return en("ccache",e);case"linux":if(ea())return ed("ccache",e);if(es())return el([{name:"ccache",version:e}]);if(ec())return H([{name:"ccache",version:e}]);throw Error("Unsupported linux distribution");default:throw Error("Unsupported platform");}},sccache:function(e,t,r){switch(process.platform){case"win32":return eo("sccache",e);case"linux":case"darwin":return en("sccache",e);default:throw Error("Unsupported platform");}},doxygen:tE,graphviz:tl,cppcheck:ta,clangtidy:function(e,t,r){return tK(e,t,r);},clangformat:function(e,t,r){return tK(e,t,r,n6.ClangFormat);},msvc:t1,vcvarsall:tk,kcov:tL,make:t0,task:function(e,t,r){return eS("task",e,t8,t,r);},sevenzip:eT},lk=Object.keys(lP),lU=["compiler","architecture","timeout",...lk];nw=rR("4t50X"),rA=rR("ER74K"),nY=rR("l655J"),rt(process.argv).then(e=>{process.exitCode=e;}).catch(e=>{(0,rA.error)("main() panicked!"),(0,rA.error)(e),process.exitCode=1;}); //# sourceMappingURL=setup-cpp.js.map \ No newline at end of file diff --git a/dist/modern/setup-cpp.js.map b/dist/modern/setup-cpp.js.map index 6f28504e..36c30274 100644 --- a/dist/modern/setup-cpp.js.map +++ b/dist/modern/setup-cpp.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-cpp.js","names":["e","t","r","n","i","o","a","s","l","u","d","Promise","TypeError","rz","code","ignoreErrors","f","options","env","process","cwd","chdir","disabled","rV","sync","command","path","rW","pathExt","n6","delimiter","resolve","h","Object","assign","Error","errno","syscall","spawnargs","args","m","iQ","file","original","g","rG","ru","spawn","rQ","hookChildProcess","v","charCodeAt","length","slice","E","platform","keys","reverse","find","toUpperCase","y","p","rm","execPath","URL","rg","fileURLToPath","rf","push","join","w","pipe","b","writable","_write","_writableState","x","maxBuffer","r5","getBufferedLength","r2","MAX_LENGTH","bufferedData","getBufferedValue","oq","on","oB","D","aa","o4","o5","ai","ok","rh","ChildProcess","o0","reject","ou","error","stdout","stderr","all","escapedCommand","parsed","timedOut","isCanceled","killed","o1","oP","oU","c","kill","oI","bind","cancel","oL","rZ","exitCode","signal","oJ","as","aborted","failed","oz","oW","oj","S","oV","spawnSync","input","status","T","getuid","CI","rP","nothrow","N","ac","o6","I","O","R","map","A","SUDO_USER","n8","statSync","isDirectory","C","n5","homedir","replace","ap","_","next","throw","done","value","then","apply","L","return","call","label","ops","pop","trys","sent","Symbol","iterator","$","r7","pkg","nm","rA","warning","message","stack","P","Array","isArray","k","a3","aV","aX","a0","aT","aq","af","aB","aS","aN","av","ax","aM","a2","a$","aP","aO","U","stdio","M","a7","nv","nE","shouldEscapeSpace","rO","GITHUB_ACTIONS","shouldAddOnlyIfNotDefined","ng","info","exportVariable","j","setFailed","F","se","some","test","PATH","split","includes","addPath","q","B","appendFileSync","st","sr","ny","pathExists","readFileSync","G","Set","writeFileSync","H","z","name","version","DEBIAN_FRONTEND","si","W","so","K","flatMap","repositories","X","sa","binDir","V","nw","default","trim","J","Y","Q","Z","toString","sn","ee","startsWith","et","nx","dirname","tmpdir","nD","mkdirP","NONINTERACTIVE","er","en","ss","arch","ei","SystemRoot","ALLUSERSPROFILE","ChocolateyInstall","eo","sl","TMP","TEMP","Path","extendEnv","ea","es","el","eu","ec","ep","ed","su","sc","ef","matchAll","sp","eh","sg","sv","ew","sh","existsSync","readdirSync","eE","em","eb","sx","sf","eg","sy","clean","sd","debug","rmRF","ev","valid","ey","sort","gt","satisfies","RUNNER_TOOL_CACHE","ra","RUNNER_TEMP","ex","rS","eD","$current","max","timeout","match","backoffBase","backoffExponent","report","Date","toLocaleTimeString","setTimeout","clearTimeout","sR","current","catch","RegExp","Math","pow","eS","url","binRelativeDir","binFileName","extractedFolderName","extractFunction","nS","installDir","nF","downloadTool","sI","cacheDir","eT","eN","eR","eI","eO","eA","eC","nM","nU","addExeExt","extractTar","e_","eL","nq","e$","eP","ek","isMemoized","fn","isEqual","isMatchingKey","isPromise","maxSize","onCacheAdd","onCacheChange","onCacheHit","transformKey","nj","nB","values","canTransformKey","shouldCloneArguments","shouldUpdateOnAdd","shouldUpdateOnChange","shouldUpdateOnHit","arguments","getKeyIndex","orderByLru","updateAsyncCache","cache","eU","ie","request","method","statusCode","end","eM","from","filter","nV","localeCompare","eF","nH","has","JSON","stringify","ej","sO","nC","getExecOutput","console","eq","eB","eG","eX","bin","eY","eH","eV","e7","e9","upgrade","usePipx","to","isLibrary","eW","setupActionsPython","rR","ez","eK","sC","python","eJ","eZ","eQ","pip","e0","e1","e3","e2","s_","parseInt","sA","e4","execFile","encoding","shell","e5","e6","nz","getUbuntuVersion","e8","sQ","user","tn","PIPX_HOME","sY","PIPX_BIN_DIR","sJ","sL","ti","te","sK","tt","tr","s$","findIndex","ta","ts","tl","tu","tc","nW","locator","errorHandler","fatalError","parseFromString","childNodes","documentElement","declaration","doctype","tp","nodeValue","tagName","td","tf","th","s3","s1","tm","Number","isInteger","tg","lo","devices","eject","attach","mountPoint","tv","tE","ty","s0","notice","tw","tb","la","releaseName","fileSuffix","tx","tS","tT","tD","nY","tN","nJ","tR","tI","tO","tA","tC","t_","nQ","tL","t$","lp","tP","execSync","entries","lc","ll","lu","ls","tk","n1","tU","lv","startGroup","milliseconds","fallback","customTimers","sign","lg","addEventListener","POSITIVE_INFINITY","lf","finally","clear","tM","endGroup","lC","t7","tF","tj","lw","lE","NODE_DEBUG","tq","ly","rD","tB","tG","tH","lx","tV","lD","lS","get","lb","lT","lN","tX","tz","lR","tQ","tW","tK","lO","tZ","n3","All","nX","lI","tY","tJ","LD_LIBRARY_PATH","DYLD_LIBRARY_PATH","n2","t0","t1","nZ","n0","t3","n4","t2","t4","t5","t6","t8","t9","lA","addShExt","addShRelativePrefix","re","compiler","rt","ACTIONS_ALLOW_UNSECURE_COMMANDS","alias","unknown","string","boolean","concat","splice","substring","indexOf","repeat","shift","lL","fromEntries","getInput","toLowerCase","help","table","tools","documentation","coverage","other","architecture","SETUP_CPP_DIR","rL","create","autoloadLocales","addLocale","r$","rC","r_","forEach","cppcheck","gcovr","l_","isCI","now","parseFloat","format","success","rr","rn","rM","rF","rj","rq","r1","r4","r6","r9","nt","nr","nn","ni","no","na","ns","nl","nu","nc","np","nd","nf","nh","nG","any","every","defineProperty","exports","constant","isPR","pr","ne","BUILD_ID","BUILD_NUMBER","CI_APP_ID","CI_BUILD_ID","CI_BUILD_NUMBER","CI_NAME","CONTINUOUS_INTEGRATION","RUN_ID","parse","log","required","trimWhitespace","issueCommand","toCommandProperties","issue","ExitCode","Success","Failure","toCommandValue","GITHUB_ENV","issueFileCommand","prepareKeyValueMessage","setSecret","GITHUB_PATH","getMultilineInput","getBooleanInput","setOutput","GITHUB_OUTPUT","write","EOL","setCommandEcho","isDebug","RUNNER_DEBUG","group","saveState","GITHUB_STATE","getState","getIDToken","OidcClient","enumerable","summary","markdownSummary","toPosixPath","toWin32Path","toPlatformPath","constructor","properties","hasOwnProperty","String","title","line","startLine","endLine","col","startColumn","endColumn","random","rng","n9","randomFillSync","Uint8Array","substr","createHttpClient","HttpClient","BearerCredentialHandler","getRequestToken","allowRetries","maxRetries","ACTIONS_ID_TOKEN_REQUEST_TOKEN","getIDTokenUrl","ACTIONS_ID_TOKEN_REQUEST_URL","getCall","getJson","result","encodeURIComponent","n7","HttpCodes","OK","MultipleChoices","MovedPermanently","ResourceMoved","SeeOther","NotModified","UseProxy","SwitchProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","TooManyRequests","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","Headers","Accept","ContentType","MediaTypes","ApplicationJson","getProxyUrl","href","setPrototypeOf","prototype","HttpClientError","readBody","Buffer","alloc","HttpClientResponse","isHttps","protocol","_ignoreSslError","_allowRedirects","_allowRedirectDowngrade","_maxRedirects","_allowRetries","_maxRetries","_keepAlive","_disposed","userAgent","handlers","requestOptions","ignoreSslError","_socketTimeout","socketTimeout","allowRedirects","allowRedirectDowngrade","maxRedirects","keepAlive","del","post","patch","put","head","sendStream","_getExistingOrDefaultHeader","_processResponse","postJson","putJson","patchJson","_prepareRequest","requestRaw","canHandleAuthentication","handleAuthentication","headers","location","hostname","_performExponentialBackoff","dispose","_agent","destroy","requestRawWithCallback","byteLength","httpModule","getAgent","_getAgent","parsedUrl","host","port","pathname","search","_mergeHeaders","agent","prepareRequest","_proxyAgent","maxSockets","globalAgent","proxy","username","password","proxyAuth","httpsOverHttps","httpsOverHttp","httpOverHttps","httpOverHttp","Agent","rejectUnauthorized","min","deserializeDates","isNaN","valueOf","reduce","no_proxy","NO_PROXY","endsWith","https_proxy","HTTPS_PROXY","http_proxy","HTTP_PROXY","checkBypass","proxyOptions","defaultMaxSockets","requests","sockets","onSocket","removeSocket","createSocket","getHeader","socket","servername","ri","connect","localAddress","defaultPort","rs","inherits","ro","EventEmitter","addRequest","emit","removeListener","removeAllListeners","useChunkedEncodingByDefault","once","nextTick","unshift","BasicCredentialHandler","Authorization","token","PersonalAccessTokenCredentialHandler","access","appendFile","writeFile","promises","SUMMARY_ENV_VAR","SUMMARY_DOCS_URL","_buffer","filePath","_filePath","constants","R_OK","W_OK","wrap","overwrite","emptyBuffer","isEmptyBuffer","addRaw","addEOL","addCodeBlock","lang","addList","addTable","header","data","colspan","rowspan","addDetails","addImage","width","height","src","alt","addHeading","addSeparator","addBreak","addQuote","cite","addLink","sep","require","pluralize","numerous","id","locale","span","unitType","unitTypeLookupOrder","autoload","floor","defaultConfig","versions","node","isSymbolicLink","isFile","PATHEXT","stat","mode","uid","gid","getgid","inc","diff","major","minor","prerelease","compare","rcompare","compareLoose","compareBuild","rsort","lt","neq","gte","lte","cmp","coerce","Comparator","Range","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","intersects","simplifyRange","subset","SemVer","tokens","SEMVER_SPEC_VERSION","RELEASE_TYPES","compareIdentifiers","rcompareIdentifiers","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","safeRe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","MAX_SAFE_INTEGER","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","loose","includePrerelease","LOOSE","FULL","raw","build","compareMain","comparePre","freeze","rtl","COERCERTL","exec","index","lastIndex","ANY","semver","operator","COMPARATORLOOSE","COMPARATOR","set","parseRange","range","HYPHENRANGELOOSE","HYPHENRANGE","COMPARATORTRIM","TILDETRIM","CARETTRIM","Map","size","delete","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","GTE0PRE","GTE0","unshiftNode","maxAge","tail","prev","key","removeNode","stale","noDisposeOnSet","updateAgeOnGet","reset","allowStale","lengthCalculator","itemCount","rforEach","toArray","dump","dumpLru","peek","load","prune","list","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","add","rl","configurable","basename","extname","normalize","relative","IS_WINDOWS","force","recursive","retryDelay","mkdir","isRooted","tryGetExecutablePath","lstat","unlink","chmod","readlink","symlink","exists","copyFile","cp","copySourceDirectory","readdir","mv","rename","which","findInPath","open","rmdir","UV_FS_O_EXLOCK","READONLY","O_RDONLY","getCmdPath","COMSPEC","_findMatch","stable","files","platform_version","_getOsVersion","_readLinuxVersionFile","randomBytes","argStringToArray","ToolRunner","rc","StringDecoder","listeners","toolPath","_debug","_getCommandString","_getSpawnFileName","_getSpawnArgs","_isCmdFile","windowsVerbatimArguments","_windowsQuoteCmdArg","_processLineBuffer","_endsWith","_uvQuoteCmdArg","_cloneExecOptions","silent","failOnStdErr","ignoreReturnCode","delay","outStream","errStream","_getSpawnOptions","argv0","stdline","processStderr","errline","processError","processExited","processClosed","CheckComplete","processExitCode","stdin","charAt","_setResult","rp","HandleTimeout","rI","cdata","lineNumber","columnNumber","systemId","java","currentElement","appendChild","doc","NAMESPACE","ParseError","XMLReader","domBuilder","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","Function","HTML","xml","XML","normalizeLineEndings","startDocument","createDocument","documentURI","startElement","createElementNS","getURI","getValue","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","parentNode","startPrefixMapping","endPrefixMapping","processingInstruction","createProcessingInstruction","ignorableWhitespace","characters","createCDATASection","createTextNode","skippedEntity","endDocument","comment","createComment","startCDATA","endCDATA","startDTD","implementation","createDocumentType","warn","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","XMLNS","captureStackTrace","_node","_refresh","_inc","ownerDocument","$$length","ownerElement","namespaceURI","_nsMap","prefix","localName","firstChild","nextSibling","previousSibling","lastChild","nodeType","DOCUMENT_TYPE_NODE","ELEMENT_NODE","TEXT_NODE","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","lookupPrefix","namespace","attributes","item","nodeName","publicId","internalSubset","target","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","insertBefore","replaceChild","hasChildNodes","cloneNode","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","serializeToString","apos","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","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","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","efDot","Efr","efr","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","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","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","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","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","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","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","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","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","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","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","qName","uri","closed","currentNSMap","localNSMap","attributeNames","source","fromCharCode","endDTD","addValue","setTagName","lastIndexOf","offset","getLocalName","abs","long","years","one","months","weeks","days","hours","minutes","seconds","narrow","short","rk","ir","chown","io","ia","lchmod","is","lchown","il","link","iu","ip","mkdtemp","ih","im","readFile","ig","iv","realpath","iE","iy","iw","ib","ix","truncate","iD","iS","utimes","iT","iN","iR","iO","iI","iA","groups","getgroups","rU","i$","i_","iL","iP","_ISEXE_TEST_PLATFORM_","ik","isexe","iU","posix","iM","iF","ij","iq","iB","pathEnv","pathExtExe","iG","iH","rB","rH","OSTYPE","iX","iV","rX","TESTING_WINDOWS","iz","iW","iK","iY","rK","rY","rJ","openSync","readSync","closeSync","iJ","forceShell","comspec","verifyENOENT","verifyENOENTSync","notFoundError","_parse","_enoent","iZ","getOwnPropertyDescriptor","i0","i1","getPrototypeOf","i3","i2","i4","i5","i6","WeakMap","i8","displayName","ignoreNonConfigurable","Reflect","ownKeys","callCount","i9","ot","oe","i7","number","action","description","standard","forced","oi","signals","rv","supported","oo","oa","os","ol","errorCode","signalDescription","Boolean","originalMessage","shortMessage","oc","op","od","of","reallyExit","pid","oh","om","og","ov","oE","__signal_exit_emitter__","count","emitted","infinite","setMaxListeners","oy","ox","ob","oN","r0","equal","oD","alwaysLast","unload","ow","oR","oT","oO","oA","o_","unref","forceKillAfterTimeout","oC","SIGTERM","isFinite","o$","killSignal","cleanup","detached","oM","oF","createWriteStream","pipeStdout","pipeStderr","pipeAll","rE","promisify","ry","PassThrough","array","objectMode","setEncoding","pipeline","r3","buffer","MaxBufferError","r8","readable","isEmpty","oG","oH","inputFile","oX","createReadStream","oK","oY","oQ","oZ","o3","o2","o8","rd","isBuffer","o9","o7","templates","expressions","template","ae","at","rw","debuglog","enabled","ar","padStart","an","getHours","getMinutes","getSeconds","getMilliseconds","verbose","ao","preferLocal","localDir","stripFinalNewline","windowsHide","al","au","rb","npm_package_json","npm_config_user_agent","XDG_CONFIG_HOME","mkdirSync","lastUpdateCheck","getTime","updateCheckInterval","distTag","alwaysRun","padEnd","isTTY","shouldNotifyInNpmScript","ad","ah","am","ag","aE","ay","ab","aw","aD","aR","aI","aA","aC","a_","aL","ak","aU","aF","aj","aG","aH","az","aW","aK","aY","aJ","aQ","aZ","a1","a4","a5","a6","a8","release","a9","nb","nI","sm","sE","sw","sb","nA","sD","nP","n_","RetryHelper","maxAttempts","minSeconds","maxSeconds","execute","getSleepAmount","sleep","sS","httpStatusCode","new","HTTPError","sT","sN","nO","authorization","statusMessage","extract7z","nT","extractXar","extractZip","cacheFile","findAllVersions","getManifestFromRepo","tree","accept","findFromManifest","isExplicitVersion","evaluateVersions","retryAsPromised","TimeoutError","previous","_getKeyIndexFromMatchingKey","_getKeyIndexForMany","_getKeyIndexForSingle","llvm","clangtidy","clangformat","ninja","cmake","conan","meson","kcov","task","doxygen","gcc","mingw","nala","sP","fs","mkdirAsync","statAsync","sk","sU","sM","sF","sj","sq","sB","__TESTING_MKDIRP_PLATFORM__","sG","root","sH","__TESTING_MKDIRP_NODE_VERSION__","sV","sX","sz","sW","mkdirpSync","mkdirpNative","mkdirpNativeSync","mkdirpManual","mkdirpManualSync","native","nativeSync","manual","manualSync","useNative","useNativeSync","sZ","DOMImplementation","nK","XMLSerializer","DOMParser","s2","s4","type","TYPE","castTo","castAs","fromXml","fromXmlElement","s5","TAG_NAMES","toXml","indentString","s6","newlineString","dataColumns","s8","asBigInt","BigInt","asNumber","s9","s7","replaceAll","CHILD_TAG_NAMES","popValue","shiftValue","childFromXmlElement","lr","ln","li","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","valueCastAs","indentRoot","hdiutil","_runAttach","_argsAttach","ejectSync","_createEjects","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","readonly","nobrowse","_fileArg","_parseDevices","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","_findRootDevice","off","ProgramFiles","ld","win32","win64","x86_64","lh","lm","globalThis","DOMException","reason","vcpkg","bazel","opencppcoverage","choco","brew","powershell","ccache","sccache","graphviz","ClangFormat","msvc","vcvarsall","make","sevenzip","argv"],"sources":["../../","../../node_modules/ci-info/index.js","../../node_modules/ci-info/vendors.json","../../packages/ci-log/src/index.ts","../../node_modules/@actions/core/lib/core.js","../../node_modules/@actions/core/src/core.ts","../../node_modules/@actions/core/lib/command.js","../../node_modules/@actions/core/src/command.ts","../../node_modules/@actions/core/lib/utils.js","../../node_modules/@actions/core/src/utils.ts","../../node_modules/@actions/core/lib/file-command.js","../../node_modules/@actions/core/src/file-command.ts","../../node_modules/uuid/dist/esm-node/v4.js","../../node_modules/uuid/dist/esm-node/rng.js","../../node_modules/uuid/dist/esm-node/stringify.js","../../node_modules/uuid/dist/esm-node/validate.js","../../node_modules/uuid/dist/esm-node/regex.js","../../node_modules/@actions/core/lib/oidc-utils.js","../../node_modules/@actions/core/src/oidc-utils.ts","../../node_modules/@actions/http-client/lib/index.js","../../node_modules/@actions/http-client/src/index.ts","../../node_modules/@actions/http-client/lib/proxy.js","../../node_modules/@actions/http-client/src/proxy.ts","../../node_modules/tunnel/index.js","../../node_modules/tunnel/lib/tunnel.js","../../node_modules/@actions/http-client/lib/auth.js","../../node_modules/@actions/http-client/src/auth.ts","../../node_modules/@actions/core/lib/summary.js","../../node_modules/@actions/core/src/summary.ts","../../node_modules/@actions/core/lib/path-utils.js","../../node_modules/@actions/core/src/path-utils.ts","../../node_modules/numerous/lib/numerous.js","../../node_modules/time-delta/lib/time-delta.js","../../node_modules/numerous/index.js","../../node_modules/is-node/index.js","../../node_modules/isexe/windows.js","../../node_modules/isexe/mode.js","../../node_modules/signal-exit/signals.js","../../node_modules/semver/index.js","../../node_modules/semver/internal/re.js","../../node_modules/semver/internal/constants.js","../../node_modules/semver/internal/debug.js","../../node_modules/semver/classes/semver.js","../../node_modules/semver/internal/parse-options.js","../../node_modules/semver/internal/identifiers.js","../../node_modules/semver/functions/parse.js","../../node_modules/semver/functions/valid.js","../../node_modules/semver/functions/clean.js","../../node_modules/semver/functions/inc.js","../../node_modules/semver/functions/diff.js","../../node_modules/semver/functions/major.js","../../node_modules/semver/functions/minor.js","../../node_modules/semver/functions/patch.js","../../node_modules/semver/functions/prerelease.js","../../node_modules/semver/functions/compare.js","../../node_modules/semver/functions/rcompare.js","../../node_modules/semver/functions/compare-loose.js","../../node_modules/semver/functions/compare-build.js","../../node_modules/semver/functions/sort.js","../../node_modules/semver/functions/rsort.js","../../node_modules/semver/functions/gt.js","../../node_modules/semver/functions/lt.js","../../node_modules/semver/functions/eq.js","../../node_modules/semver/functions/neq.js","../../node_modules/semver/functions/gte.js","../../node_modules/semver/functions/lte.js","../../node_modules/semver/functions/cmp.js","../../node_modules/semver/functions/coerce.js","../../node_modules/semver/classes/comparator.js","../../node_modules/semver/classes/range.js","../../node_modules/semver/node_modules/lru-cache/index.js","../../node_modules/yallist/yallist.js","../../node_modules/yallist/iterator.js","../../node_modules/semver/functions/satisfies.js","../../node_modules/semver/ranges/to-comparators.js","../../node_modules/semver/ranges/max-satisfying.js","../../node_modules/semver/ranges/min-satisfying.js","../../node_modules/semver/ranges/min-version.js","../../node_modules/semver/ranges/valid.js","../../node_modules/semver/ranges/outside.js","../../node_modules/semver/ranges/gtr.js","../../node_modules/semver/ranges/ltr.js","../../node_modules/semver/ranges/intersects.js","../../node_modules/semver/ranges/simplify.js","../../node_modules/semver/ranges/subset.js","../../node_modules/escape-quotes/node_modules/escape-string-regexp/index.js","../../node_modules/path-exists/index.js","../../node_modules/patha/dist/index.node.mjs","../../node_modules/patha/src/name.ts","../../node_modules/patha/src/normalize-trim.ts","../../node_modules/patha/src/add-exe-ext.ts","../../node_modules/patha/src/add-name-prefix.ts","../../node_modules/patha/src/add-name-suffix.ts","../../node_modules/patha/src/add-sh-ext.ts","../../node_modules/patha/src/add-sh-relative-prefix.ts","../../node_modules/patha/src/remove-ext.ts","../../node_modules/patha/src/replace-ext.ts","../../node_modules/patha/src/is-path-inside.ts","../../node_modules/escape-string-regexp/index.js","../../node_modules/replace-ext/index.js","../../node_modules/@actions/io/lib/io.js","../../node_modules/@actions/io/src/io.ts","../../node_modules/@actions/io/lib/io-util.js","../../node_modules/@actions/io/src/io-util.ts","../../node_modules/@actions/tool-cache/lib/manifest.js","../../node_modules/@actions/tool-cache/src/manifest.ts","../../node_modules/@actions/tool-cache/node_modules/semver/semver.js","../../node_modules/@actions/tool-cache/node_modules/uuid/v4.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/rng.js","../../node_modules/@actions/tool-cache/node_modules/uuid/lib/bytesToUuid.js","../../node_modules/@actions/exec/lib/exec.js","../../node_modules/@actions/exec/src/exec.ts","../../node_modules/@actions/exec/lib/toolrunner.js","../../node_modules/@actions/exec/src/toolrunner.ts","../../node_modules/@parcel/runtime-js/lib/runtime-fd61ca5b164aabc9.js","../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/@xmldom/xmldom/lib/sax.js","../../src/main.ts","../../node_modules/numerous/locales/en.js","../../node_modules/time-delta/index.js","../../node_modules/time-delta/locales/en.js","../../packages/untildify-user/src/index.ts","../../node_modules/admina/src/index.mts","../../node_modules/admina/dist/root.mjs","../../node_modules/admina/src/root.mts","../../node_modules/which/lib/index.js","../../node_modules/which/node_modules/isexe/dist/mjs/index.js","../../node_modules/which/node_modules/isexe/src/index.ts","../../node_modules/which/node_modules/isexe/dist/mjs/posix.js","../../node_modules/which/node_modules/isexe/src/posix.ts","../../src/utils/compat/fs/promises.ts","../../node_modules/which/node_modules/isexe/dist/mjs/win32.js","../../node_modules/which/node_modules/isexe/src/win32.ts","../../node_modules/which/node_modules/isexe/src/options.ts","../../node_modules/execa/index.js","../../node_modules/cross-spawn/index.js","../../node_modules/cross-spawn/lib/parse.js","../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../node_modules/cross-spawn/node_modules/which/which.js","../../node_modules/isexe/index.js","../../node_modules/path-key/index.js","../../node_modules/cross-spawn/lib/util/escape.js","../../node_modules/cross-spawn/lib/util/readShebang.js","../../node_modules/shebang-command/index.js","../../node_modules/shebang-regex/index.js","../../node_modules/cross-spawn/lib/enoent.js","../../node_modules/strip-final-newline/index.js","../../node_modules/npm-run-path/index.js","../../node_modules/npm-run-path/node_modules/path-key/index.js","../../node_modules/onetime/index.js","../../node_modules/mimic-fn/index.js","../../node_modules/execa/lib/error.js","../../node_modules/human-signals/build/src/main.js","../../node_modules/human-signals/build/src/realtime.js","../../node_modules/human-signals/build/src/signals.js","../../node_modules/human-signals/build/src/core.js","../../node_modules/execa/lib/stdio.js","../../node_modules/execa/lib/kill.js","../../node_modules/signal-exit/index.js","../../node_modules/execa/lib/pipe.js","../../node_modules/is-stream/index.js","../../node_modules/execa/lib/stream.js","../../node_modules/get-stream/index.js","../../node_modules/get-stream/buffer-stream.js","../../node_modules/merge-stream/index.js","../../node_modules/execa/lib/promise.js","../../node_modules/execa/lib/command.js","../../node_modules/execa/lib/verbose.js","../../node_modules/admina/dist/admin.mjs","../../node_modules/admina/src/admin.mts","../../node_modules/admina/dist/is-admin.mjs","../../node_modules/admina/src/is-admin.mts","../../node_modules/admina/dist/user-access.mjs","../../node_modules/admina/src/user-access.mts","../../src/check-updates.ts","../../node_modules/simple-update-notifier/build/index.js","../../package-version.json","../../src/cli-options.ts","../../node_modules/mri/lib/index.mjs","../../src/tool.ts","../../src/bazel/bazel.ts","../../src/utils/setup/setupAptPack.ts","../../src/utils/env/addEnv.ts","../../packages/exec-powershell/src/index.ts","../../packages/exec-powershell/node_modules/execa/index.js","../../packages/exec-powershell/node_modules/execa/lib/error.js","../../packages/exec-powershell/node_modules/execa/lib/stdio.js","../../packages/exec-powershell/node_modules/execa/lib/kill.js","../../packages/exec-powershell/node_modules/execa/lib/pipe.js","../../packages/exec-powershell/node_modules/execa/lib/stream.js","../../packages/exec-powershell/node_modules/execa/lib/promise.js","../../packages/exec-powershell/node_modules/execa/lib/command.js","../../packages/exec-powershell/node_modules/execa/lib/verbose.js","../../node_modules/escape-path-with-spaces/index.js","../../node_modules/escape-quotes/lib/escape-quotes.js","../../src/utils/setup/setupBrewPack.ts","../../src/brew/brew.ts","../../src/utils/setup/setupChocoPack.ts","../../src/chocolatey/chocolatey.ts","../../src/utils/env/isArch.ts","../../src/utils/env/hasDnf.ts","../../src/utils/setup/setupDnfPack.ts","../../src/utils/env/isUbuntu.ts","../../src/ccache/ccache.ts","../../src/utils/setup/setupPacmanPack.ts","../../src/cmake/cmake.ts","../../node_modules/@actions/tool-cache/lib/tool-cache.js","../../node_modules/@actions/tool-cache/src/tool-cache.ts","../../node_modules/@actions/tool-cache/lib/retry-helper.js","../../node_modules/@actions/tool-cache/src/retry-helper.ts","../../src/utils/setup/setupBin.ts","../../node_modules/retry-as-promised/dist/index.js","../../src/utils/setup/extract.ts","../../src/sevenzip/sevenzip.ts","../../src/conan/conan.ts","../../src/utils/setup/setupPipPack.ts","../../src/python/python.ts","../../node_modules/micro-memoize/dist/micro-memoize.esm.js","../../node_modules/micro-memoize/src/utils.ts","../../node_modules/micro-memoize/src/Cache.ts","../../node_modules/micro-memoize/src/index.ts","../../src/utils/setup/version.ts","../../node_modules/is-url-online/dist/index.mjs","../../src/utils/std/index.ts","../../src/versions/default_versions.ts","../../src/versions/versions.ts","../../src/utils/env/ubuntu_version.ts","../../node_modules/ubuntu-version/index.js","../../node_modules/mkdirp/dist/mjs/index.js","../../node_modules/mkdirp/src/index.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-manual.js","../../node_modules/mkdirp/src/mkdirp-manual.ts","../../node_modules/mkdirp/dist/mjs/opts-arg.js","../../node_modules/mkdirp/src/opts-arg.ts","../../node_modules/mkdirp/dist/mjs/mkdirp-native.js","../../node_modules/mkdirp/src/mkdirp-native.ts","../../node_modules/mkdirp/dist/mjs/find-made.js","../../node_modules/mkdirp/src/find-made.ts","../../node_modules/mkdirp/dist/mjs/path-arg.js","../../node_modules/mkdirp/src/path-arg.ts","../../node_modules/mkdirp/dist/mjs/use-native.js","../../node_modules/mkdirp/src/use-native.ts","../../src/cppcheck/cppcheck.ts","../../src/doxygen/doxygen.ts","../../src/graphviz/graphviz.ts","../../src/utils/env/macos_version.ts","../../node_modules/macos-release/index.js","../../src/utils/setup/setupDmg.ts","../../node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../node_modules/@shockpkg/hdi-mac/src/mounter.ts","../../node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../node_modules/@shockpkg/plist-dom/src/plist.ts","../../node_modules/@shockpkg/plist-dom/esm/options.mjs","../../node_modules/@shockpkg/plist-dom/src/options.ts","../../node_modules/@shockpkg/plist-dom/esm/util.mjs","../../node_modules/@shockpkg/plist-dom/src/util.ts","../../node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/@shockpkg/plist-dom/esm/value/dict.mjs","../../node_modules/@shockpkg/plist-dom/src/value/dict.ts","../../node_modules/@shockpkg/plist-dom/esm/value.mjs","../../node_modules/@shockpkg/plist-dom/src/value.ts","../../node_modules/@shockpkg/plist-dom/esm/value/array.mjs","../../node_modules/@shockpkg/plist-dom/src/value/array.ts","../../node_modules/@shockpkg/plist-dom/esm/value/boolean.mjs","../../node_modules/@shockpkg/plist-dom/src/value/boolean.ts","../../node_modules/@shockpkg/plist-dom/esm/value/data.mjs","../../node_modules/@shockpkg/plist-dom/src/value/data.ts","../../node_modules/@shockpkg/plist-dom/esm/value/integer.mjs","../../node_modules/@shockpkg/plist-dom/src/value/integer.ts","../../node_modules/@shockpkg/plist-dom/esm/value/real.mjs","../../node_modules/@shockpkg/plist-dom/src/value/real.ts","../../node_modules/@shockpkg/plist-dom/esm/value/string.mjs","../../node_modules/@shockpkg/plist-dom/src/value/string.ts","../../src/gcc/gcc.ts","../../src/macos-sdk/macos-sdk.ts","../../src/gcovr/gcovr.ts","../../src/kcov/kcov.ts","../../src/ninja/ninja.ts","../../src/llvm/llvm.ts","../../src/llvm/llvm_installer.ts","../../src/installTool.ts","../../src/vcvarsall/vcvarsall.ts","../../node_modules/msvc-dev-cmd/lib.js","../../node_modules/p-timeout/index.js","../../src/llvm/llvm_url.ts","../../src/make/make.ts","../../src/meson/meson.ts","../../src/msvc/msvc.ts","../../src/nala/nala.ts","../../src/opencppcoverage/opencppcoverage.ts","../../src/powershell/powershell.ts","../../src/sccache/sccache.ts","../../src/task/task.ts","../../src/vcpkg/vcpkg.ts","../../src/compilers.ts"],"sourcesContent":["#!/usr/bin/env node\nvar $d7DIX$os = require(\"os\");\nvar $d7DIX$path = require(\"path\");\nvar $d7DIX$fs = require(\"fs\");\nvar $d7DIX$crypto = require(\"crypto\");\nvar $d7DIX$http = require(\"http\");\nvar $d7DIX$https = require(\"https\");\nrequire(\"net\");\nvar $d7DIX$tls = require(\"tls\");\nvar $d7DIX$events = require(\"events\");\nvar $d7DIX$assert = require(\"assert\");\nvar $d7DIX$util = require(\"util\");\nvar $d7DIX$nodefs = require(\"node:fs\");\nvar $d7DIX$child_process = require(\"child_process\");\nvar $d7DIX$string_decoder = require(\"string_decoder\");\nvar $d7DIX$timers = require(\"timers\");\nvar $d7DIX$nodebuffer = require(\"node:buffer\");\nvar $d7DIX$nodepath = require(\"node:path\");\nvar $d7DIX$nodechild_process = require(\"node:child_process\");\nvar $d7DIX$nodeprocess = require(\"node:process\");\nvar $d7DIX$nodeurl = require(\"node:url\");\nvar $d7DIX$nodeos = require(\"node:os\");\nvar $d7DIX$buffer = require(\"buffer\");\nvar $d7DIX$stream = require(\"stream\");\nvar $d7DIX$nodeutil = require(\"node:util\");\nvar $d7DIX$process = require(\"process\");\nvar $d7DIX$url = require(\"url\");\nvar $d7DIX$console = require(\"console\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire810d\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire810d\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"52cQ1\", function(module, exports) {\n\"use strict\";\n\nvar $jgqtC = parcelRequire(\"jgqtC\");\nconst $3aa719050363449a$var$env = process.env;\n// Used for testing only\nObject.defineProperty(module.exports, \"_vendors\", {\n value: $jgqtC.map(function(v) {\n return v.constant;\n })\n});\nmodule.exports.name = null;\nmodule.exports.isPR = null;\n$jgqtC.forEach(function(vendor) {\n const envs = Array.isArray(vendor.env) ? vendor.env : [\n vendor.env\n ];\n const isCI = envs.every(function(obj) {\n return $3aa719050363449a$var$checkEnv(obj);\n });\n module.exports[vendor.constant] = isCI;\n if (!isCI) return;\n module.exports.name = vendor.name;\n switch(typeof vendor.pr){\n case \"string\":\n // \"pr\": \"CIRRUS_PR\"\n module.exports.isPR = !!$3aa719050363449a$var$env[vendor.pr];\n break;\n case \"object\":\n if (\"env\" in vendor.pr) // \"pr\": { \"env\": \"BUILDKITE_PULL_REQUEST\", \"ne\": \"false\" }\n module.exports.isPR = vendor.pr.env in $3aa719050363449a$var$env && $3aa719050363449a$var$env[vendor.pr.env] !== vendor.pr.ne;\n else if (\"any\" in vendor.pr) // \"pr\": { \"any\": [\"ghprbPullId\", \"CHANGE_ID\"] }\n module.exports.isPR = vendor.pr.any.some(function(key) {\n return !!$3aa719050363449a$var$env[key];\n });\n else // \"pr\": { \"DRONE_BUILD_EVENT\": \"pull_request\" }\n module.exports.isPR = $3aa719050363449a$var$checkEnv(vendor.pr);\n break;\n default:\n // PR detection not supported for this vendor\n module.exports.isPR = null;\n }\n});\nmodule.exports.isCI = !!($3aa719050363449a$var$env.CI !== \"false\" && // Bypass all checks if CI env is explicitly set to 'false'\n($3aa719050363449a$var$env.BUILD_ID || // Jenkins, Cloudbees\n$3aa719050363449a$var$env.BUILD_NUMBER || // Jenkins, TeamCity\n$3aa719050363449a$var$env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari\n$3aa719050363449a$var$env.CI_APP_ID || // Appflow\n$3aa719050363449a$var$env.CI_BUILD_ID || // Appflow\n$3aa719050363449a$var$env.CI_BUILD_NUMBER || // Appflow\n$3aa719050363449a$var$env.CI_NAME || // Codeship and others\n$3aa719050363449a$var$env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI\n$3aa719050363449a$var$env.RUN_ID || // TaskCluster, dsari\nmodule.exports.name || false));\nfunction $3aa719050363449a$var$checkEnv(obj) {\n // \"env\": \"CIRRUS\"\n if (typeof obj === \"string\") return !!$3aa719050363449a$var$env[obj];\n // \"env\": { \"env\": \"NODE\", \"includes\": \"/app/.heroku/node/bin/node\" }\n if (\"env\" in obj) // Currently there are no other types, uncomment when there are\n // if ('includes' in obj) {\n return $3aa719050363449a$var$env[obj.env] && $3aa719050363449a$var$env[obj.env].includes(obj.includes);\n if (\"any\" in obj) return obj.any.some(function(k) {\n return !!$3aa719050363449a$var$env[k];\n });\n return Object.keys(obj).every(function(k) {\n return $3aa719050363449a$var$env[k] === obj[k];\n });\n}\n\n});\nparcelRegister(\"jgqtC\", function(module, exports) {\nmodule.exports = JSON.parse('[{\"name\":\"Agola CI\",\"constant\":\"AGOLA\",\"env\":\"AGOLA_GIT_REF\",\"pr\":\"AGOLA_PULL_REQUEST_ID\"},{\"name\":\"Appcircle\",\"constant\":\"APPCIRCLE\",\"env\":\"AC_APPCIRCLE\"},{\"name\":\"AppVeyor\",\"constant\":\"APPVEYOR\",\"env\":\"APPVEYOR\",\"pr\":\"APPVEYOR_PULL_REQUEST_NUMBER\"},{\"name\":\"AWS CodeBuild\",\"constant\":\"CODEBUILD\",\"env\":\"CODEBUILD_BUILD_ARN\"},{\"name\":\"Azure Pipelines\",\"constant\":\"AZURE_PIPELINES\",\"env\":\"TF_BUILD\",\"pr\":{\"BUILD_REASON\":\"PullRequest\"}},{\"name\":\"Bamboo\",\"constant\":\"BAMBOO\",\"env\":\"bamboo_planKey\"},{\"name\":\"Bitbucket Pipelines\",\"constant\":\"BITBUCKET\",\"env\":\"BITBUCKET_COMMIT\",\"pr\":\"BITBUCKET_PR_ID\"},{\"name\":\"Bitrise\",\"constant\":\"BITRISE\",\"env\":\"BITRISE_IO\",\"pr\":\"BITRISE_PULL_REQUEST\"},{\"name\":\"Buddy\",\"constant\":\"BUDDY\",\"env\":\"BUDDY_WORKSPACE_ID\",\"pr\":\"BUDDY_EXECUTION_PULL_REQUEST_ID\"},{\"name\":\"Buildkite\",\"constant\":\"BUILDKITE\",\"env\":\"BUILDKITE\",\"pr\":{\"env\":\"BUILDKITE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"CircleCI\",\"constant\":\"CIRCLE\",\"env\":\"CIRCLECI\",\"pr\":\"CIRCLE_PULL_REQUEST\"},{\"name\":\"Cirrus CI\",\"constant\":\"CIRRUS\",\"env\":\"CIRRUS_CI\",\"pr\":\"CIRRUS_PR\"},{\"name\":\"Codefresh\",\"constant\":\"CODEFRESH\",\"env\":\"CF_BUILD_ID\",\"pr\":{\"any\":[\"CF_PULL_REQUEST_NUMBER\",\"CF_PULL_REQUEST_ID\"]}},{\"name\":\"Codemagic\",\"constant\":\"CODEMAGIC\",\"env\":\"CM_BUILD_ID\",\"pr\":\"CM_PULL_REQUEST\"},{\"name\":\"Codeship\",\"constant\":\"CODESHIP\",\"env\":{\"CI_NAME\":\"codeship\"}},{\"name\":\"Drone\",\"constant\":\"DRONE\",\"env\":\"DRONE\",\"pr\":{\"DRONE_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"dsari\",\"constant\":\"DSARI\",\"env\":\"DSARI\"},{\"name\":\"Earthly\",\"constant\":\"EARTHLY\",\"env\":\"EARTHLY_CI\"},{\"name\":\"Expo Application Services\",\"constant\":\"EAS\",\"env\":\"EAS_BUILD\"},{\"name\":\"Gerrit\",\"constant\":\"GERRIT\",\"env\":\"GERRIT_PROJECT\"},{\"name\":\"Gitea Actions\",\"constant\":\"GITEA_ACTIONS\",\"env\":\"GITEA_ACTIONS\"},{\"name\":\"GitHub Actions\",\"constant\":\"GITHUB_ACTIONS\",\"env\":\"GITHUB_ACTIONS\",\"pr\":{\"GITHUB_EVENT_NAME\":\"pull_request\"}},{\"name\":\"GitLab CI\",\"constant\":\"GITLAB\",\"env\":\"GITLAB_CI\",\"pr\":\"CI_MERGE_REQUEST_ID\"},{\"name\":\"GoCD\",\"constant\":\"GOCD\",\"env\":\"GO_PIPELINE_LABEL\"},{\"name\":\"Google Cloud Build\",\"constant\":\"GOOGLE_CLOUD_BUILD\",\"env\":\"BUILDER_OUTPUT\"},{\"name\":\"Harness CI\",\"constant\":\"HARNESS\",\"env\":\"HARNESS_BUILD_ID\"},{\"name\":\"Heroku\",\"constant\":\"HEROKU\",\"env\":{\"env\":\"NODE\",\"includes\":\"/app/.heroku/node/bin/node\"}},{\"name\":\"Hudson\",\"constant\":\"HUDSON\",\"env\":\"HUDSON_URL\"},{\"name\":\"Jenkins\",\"constant\":\"JENKINS\",\"env\":[\"JENKINS_URL\",\"BUILD_ID\"],\"pr\":{\"any\":[\"ghprbPullId\",\"CHANGE_ID\"]}},{\"name\":\"LayerCI\",\"constant\":\"LAYERCI\",\"env\":\"LAYERCI\",\"pr\":\"LAYERCI_PULL_REQUEST\"},{\"name\":\"Magnum CI\",\"constant\":\"MAGNUM\",\"env\":\"MAGNUM\"},{\"name\":\"Netlify CI\",\"constant\":\"NETLIFY\",\"env\":\"NETLIFY\",\"pr\":{\"env\":\"PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Nevercode\",\"constant\":\"NEVERCODE\",\"env\":\"NEVERCODE\",\"pr\":{\"env\":\"NEVERCODE_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Prow\",\"constant\":\"PROW\",\"env\":\"PROW_JOB_ID\"},{\"name\":\"ReleaseHub\",\"constant\":\"RELEASEHUB\",\"env\":\"RELEASE_BUILD_ID\"},{\"name\":\"Render\",\"constant\":\"RENDER\",\"env\":\"RENDER\",\"pr\":{\"IS_PULL_REQUEST\":\"true\"}},{\"name\":\"Sail CI\",\"constant\":\"SAIL\",\"env\":\"SAILCI\",\"pr\":\"SAIL_PULL_REQUEST_NUMBER\"},{\"name\":\"Screwdriver\",\"constant\":\"SCREWDRIVER\",\"env\":\"SCREWDRIVER\",\"pr\":{\"env\":\"SD_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Semaphore\",\"constant\":\"SEMAPHORE\",\"env\":\"SEMAPHORE\",\"pr\":\"PULL_REQUEST_NUMBER\"},{\"name\":\"Sourcehut\",\"constant\":\"SOURCEHUT\",\"env\":{\"CI_NAME\":\"sourcehut\"}},{\"name\":\"Strider CD\",\"constant\":\"STRIDER\",\"env\":\"STRIDER\"},{\"name\":\"TaskCluster\",\"constant\":\"TASKCLUSTER\",\"env\":[\"TASK_ID\",\"RUN_ID\"]},{\"name\":\"TeamCity\",\"constant\":\"TEAMCITY\",\"env\":\"TEAMCITY_VERSION\"},{\"name\":\"Travis CI\",\"constant\":\"TRAVIS\",\"env\":\"TRAVIS\",\"pr\":{\"env\":\"TRAVIS_PULL_REQUEST\",\"ne\":\"false\"}},{\"name\":\"Vela\",\"constant\":\"VELA\",\"env\":\"VELA\",\"pr\":{\"VELA_PULL_REQUEST\":\"1\"}},{\"name\":\"Vercel\",\"constant\":\"VERCEL\",\"env\":{\"any\":[\"NOW_BUILDER\",\"VERCEL\"]},\"pr\":\"VERCEL_GIT_PULL_REQUEST_ID\"},{\"name\":\"Visual Studio App Center\",\"constant\":\"APPCENTER\",\"env\":\"APPCENTER_BUILD_ID\"},{\"name\":\"Woodpecker\",\"constant\":\"WOODPECKER\",\"env\":{\"CI\":\"woodpecker\"},\"pr\":{\"CI_BUILD_EVENT\":\"pull_request\"}},{\"name\":\"Xcode Cloud\",\"constant\":\"XCODE_CLOUD\",\"env\":\"CI_XCODE_PROJECT\",\"pr\":\"CI_PULL_REQUEST_NUMBER\"},{\"name\":\"Xcode Server\",\"constant\":\"XCODE_SERVER\",\"env\":\"XCS\"}]');\n\n});\n\n\nparcelRegister(\"ER74K\", function(module, exports) {\n\n$parcel$export(module.exports, \"error\", () => $59a05e0535061862$export$a3bc9b8ed74fc);\n$parcel$export(module.exports, \"success\", () => $59a05e0535061862$export$fe7c49d056ea1d88);\n$parcel$export(module.exports, \"warning\", () => $59a05e0535061862$export$491112666e282270);\n$parcel$export(module.exports, \"notice\", () => $59a05e0535061862$export$b31f6ae88848cf15);\n$parcel$export(module.exports, \"info\", () => $59a05e0535061862$export$a80b3bd66acc52ff);\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\nvar $52cQ1 = parcelRequire(\"52cQ1\");\nfunction $59a05e0535061862$export$a3bc9b8ed74fc(err) {\n return (0, $52cQ1.GITHUB_ACTIONS) ? $4t50X.error(err) : console.log(`\\x1b[31m${err}\\x1b[0m`);\n}\nfunction $59a05e0535061862$export$fe7c49d056ea1d88(msg) {\n return console.log(`\\x1b[32m${msg}\\x1b[0m`);\n}\nfunction $59a05e0535061862$export$491112666e282270(msg) {\n return (0, $52cQ1.GITHUB_ACTIONS) ? $4t50X.warning(msg) : console.log(`\\x1b[33m${msg}\\x1b[0m`);\n}\nfunction $59a05e0535061862$export$b31f6ae88848cf15(msg) {\n return (0, $52cQ1.GITHUB_ACTIONS) ? $4t50X.notice(msg) : console.log(`\\x1b[94m${msg}\\x1b[0m`);\n}\nfunction $59a05e0535061862$export$a80b3bd66acc52ff(msg) {\n return (0, $52cQ1.GITHUB_ACTIONS) ? $4t50X.info(msg) : console.log(msg);\n}\n\n});\nparcelRegister(\"4t50X\", function(module, exports) {\n\"use strict\";\nvar $340dc29cb75a8fc5$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $340dc29cb75a8fc5$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $340dc29cb75a8fc5$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $340dc29cb75a8fc5$var$__createBinding(result, mod, k);\n }\n $340dc29cb75a8fc5$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $340dc29cb75a8fc5$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getIDToken = module.exports.getState = module.exports.saveState = module.exports.group = module.exports.endGroup = module.exports.startGroup = module.exports.info = module.exports.notice = module.exports.warning = module.exports.error = module.exports.debug = module.exports.isDebug = module.exports.setFailed = module.exports.setCommandEcho = module.exports.setOutput = module.exports.getBooleanInput = module.exports.getMultilineInput = module.exports.getInput = module.exports.addPath = module.exports.setSecret = module.exports.exportVariable = module.exports.ExitCode = void 0;\n\nvar $dIPEE = parcelRequire(\"dIPEE\");\n\nvar $aSbHp = parcelRequire(\"aSbHp\");\n\nvar $i0ItD = parcelRequire(\"i0ItD\");\n\nconst $340dc29cb75a8fc5$var$os = $340dc29cb75a8fc5$var$__importStar($d7DIX$os);\n\nconst $340dc29cb75a8fc5$var$path = $340dc29cb75a8fc5$var$__importStar($d7DIX$path);\n\nvar $6dNYa = parcelRequire(\"6dNYa\");\n/**\n * The code to exit an action\n */ var $340dc29cb75a8fc5$var$ExitCode;\n(function(ExitCode) {\n /**\n * A code indicating that the action was successful\n */ ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */ ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})($340dc29cb75a8fc5$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $340dc29cb75a8fc5$var$exportVariable(name, val) {\n const convertedVal = $i0ItD.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env[\"GITHUB_ENV\"] || \"\";\n if (filePath) return $aSbHp.issueFileCommand(\"ENV\", $aSbHp.prepareKeyValueMessage(name, val));\n $dIPEE.issueCommand(\"set-env\", {\n name: name\n }, convertedVal);\n}\nmodule.exports.exportVariable = $340dc29cb75a8fc5$var$exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */ function $340dc29cb75a8fc5$var$setSecret(secret) {\n $dIPEE.issueCommand(\"add-mask\", {}, secret);\n}\nmodule.exports.setSecret = $340dc29cb75a8fc5$var$setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */ function $340dc29cb75a8fc5$var$addPath(inputPath) {\n const filePath = process.env[\"GITHUB_PATH\"] || \"\";\n if (filePath) $aSbHp.issueFileCommand(\"PATH\", inputPath);\n else $dIPEE.issueCommand(\"add-path\", {}, inputPath);\n process.env[\"PATH\"] = `${inputPath}${$340dc29cb75a8fc5$var$path.delimiter}${process.env[\"PATH\"]}`;\n}\nmodule.exports.addPath = $340dc29cb75a8fc5$var$addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */ function $340dc29cb75a8fc5$var$getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, \"_\").toUpperCase()}`] || \"\";\n if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`);\n if (options && options.trimWhitespace === false) return val;\n return val.trim();\n}\nmodule.exports.getInput = $340dc29cb75a8fc5$var$getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */ function $340dc29cb75a8fc5$var$getMultilineInput(name, options) {\n const inputs = $340dc29cb75a8fc5$var$getInput(name, options).split(\"\\n\").filter((x)=>x !== \"\");\n if (options && options.trimWhitespace === false) return inputs;\n return inputs.map((input)=>input.trim());\n}\nmodule.exports.getMultilineInput = $340dc29cb75a8fc5$var$getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */ function $340dc29cb75a8fc5$var$getBooleanInput(name, options) {\n const trueValue = [\n \"true\",\n \"True\",\n \"TRUE\"\n ];\n const falseValue = [\n \"false\",\n \"False\",\n \"FALSE\"\n ];\n const val = $340dc29cb75a8fc5$var$getInput(name, options);\n if (trueValue.includes(val)) return true;\n if (falseValue.includes(val)) return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` + `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nmodule.exports.getBooleanInput = $340dc29cb75a8fc5$var$getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $340dc29cb75a8fc5$var$setOutput(name, value) {\n const filePath = process.env[\"GITHUB_OUTPUT\"] || \"\";\n if (filePath) return $aSbHp.issueFileCommand(\"OUTPUT\", $aSbHp.prepareKeyValueMessage(name, value));\n process.stdout.write($340dc29cb75a8fc5$var$os.EOL);\n $dIPEE.issueCommand(\"set-output\", {\n name: name\n }, $i0ItD.toCommandValue(value));\n}\nmodule.exports.setOutput = $340dc29cb75a8fc5$var$setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */ function $340dc29cb75a8fc5$var$setCommandEcho(enabled) {\n $dIPEE.issue(\"echo\", enabled ? \"on\" : \"off\");\n}\nmodule.exports.setCommandEcho = $340dc29cb75a8fc5$var$setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */ function $340dc29cb75a8fc5$var$setFailed(message) {\n process.exitCode = $340dc29cb75a8fc5$var$ExitCode.Failure;\n $340dc29cb75a8fc5$var$error(message);\n}\nmodule.exports.setFailed = $340dc29cb75a8fc5$var$setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */ function $340dc29cb75a8fc5$var$isDebug() {\n return process.env[\"RUNNER_DEBUG\"] === \"1\";\n}\nmodule.exports.isDebug = $340dc29cb75a8fc5$var$isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */ function $340dc29cb75a8fc5$var$debug(message) {\n $dIPEE.issueCommand(\"debug\", {}, message);\n}\nmodule.exports.debug = $340dc29cb75a8fc5$var$debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $340dc29cb75a8fc5$var$error(message, properties = {}) {\n $dIPEE.issueCommand(\"error\", $i0ItD.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.error = $340dc29cb75a8fc5$var$error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $340dc29cb75a8fc5$var$warning(message, properties = {}) {\n $dIPEE.issueCommand(\"warning\", $i0ItD.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.warning = $340dc29cb75a8fc5$var$warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */ function $340dc29cb75a8fc5$var$notice(message, properties = {}) {\n $dIPEE.issueCommand(\"notice\", $i0ItD.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nmodule.exports.notice = $340dc29cb75a8fc5$var$notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */ function $340dc29cb75a8fc5$var$info(message) {\n process.stdout.write(message + $340dc29cb75a8fc5$var$os.EOL);\n}\nmodule.exports.info = $340dc29cb75a8fc5$var$info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */ function $340dc29cb75a8fc5$var$startGroup(name) {\n $dIPEE.issue(\"group\", name);\n}\nmodule.exports.startGroup = $340dc29cb75a8fc5$var$startGroup;\n/**\n * End an output group.\n */ function $340dc29cb75a8fc5$var$endGroup() {\n $dIPEE.issue(\"endgroup\");\n}\nmodule.exports.endGroup = $340dc29cb75a8fc5$var$endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */ function $340dc29cb75a8fc5$var$group(name, fn) {\n return $340dc29cb75a8fc5$var$__awaiter(this, void 0, void 0, function*() {\n $340dc29cb75a8fc5$var$startGroup(name);\n let result;\n try {\n result = yield fn();\n } finally{\n $340dc29cb75a8fc5$var$endGroup();\n }\n return result;\n });\n}\nmodule.exports.group = $340dc29cb75a8fc5$var$group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction $340dc29cb75a8fc5$var$saveState(name, value) {\n const filePath = process.env[\"GITHUB_STATE\"] || \"\";\n if (filePath) return $aSbHp.issueFileCommand(\"STATE\", $aSbHp.prepareKeyValueMessage(name, value));\n $dIPEE.issueCommand(\"save-state\", {\n name: name\n }, $i0ItD.toCommandValue(value));\n}\nmodule.exports.saveState = $340dc29cb75a8fc5$var$saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */ function $340dc29cb75a8fc5$var$getState(name) {\n return process.env[`STATE_${name}`] || \"\";\n}\nmodule.exports.getState = $340dc29cb75a8fc5$var$getState;\nfunction $340dc29cb75a8fc5$var$getIDToken(aud) {\n return $340dc29cb75a8fc5$var$__awaiter(this, void 0, void 0, function*() {\n return yield $6dNYa.OidcClient.getIDToken(aud);\n });\n}\nmodule.exports.getIDToken = $340dc29cb75a8fc5$var$getIDToken;\n\nvar $dTpO2 = parcelRequire(\"dTpO2\");\nObject.defineProperty(module.exports, \"summary\", {\n enumerable: true,\n get: function() {\n return $dTpO2.summary;\n }\n});\n\nvar $dTpO2 = parcelRequire(\"dTpO2\");\nObject.defineProperty(module.exports, \"markdownSummary\", {\n enumerable: true,\n get: function() {\n return $dTpO2.markdownSummary;\n }\n});\n\nvar $azKnO = parcelRequire(\"azKnO\");\nObject.defineProperty(module.exports, \"toPosixPath\", {\n enumerable: true,\n get: function() {\n return $azKnO.toPosixPath;\n }\n});\nObject.defineProperty(module.exports, \"toWin32Path\", {\n enumerable: true,\n get: function() {\n return $azKnO.toWin32Path;\n }\n});\nObject.defineProperty(module.exports, \"toPlatformPath\", {\n enumerable: true,\n get: function() {\n return $azKnO.toPlatformPath;\n }\n});\n\n});\nparcelRegister(\"dIPEE\", function(module, exports) {\n\"use strict\";\nvar $9fd773f80bf7d36c$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $9fd773f80bf7d36c$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $9fd773f80bf7d36c$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $9fd773f80bf7d36c$var$__createBinding(result, mod, k);\n }\n $9fd773f80bf7d36c$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.issue = module.exports.issueCommand = void 0;\n\nconst $9fd773f80bf7d36c$var$os = $9fd773f80bf7d36c$var$__importStar($d7DIX$os);\n\nvar $i0ItD = parcelRequire(\"i0ItD\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */ function $9fd773f80bf7d36c$var$issueCommand(command, properties, message) {\n const cmd = new $9fd773f80bf7d36c$var$Command(command, properties, message);\n process.stdout.write(cmd.toString() + $9fd773f80bf7d36c$var$os.EOL);\n}\nmodule.exports.issueCommand = $9fd773f80bf7d36c$var$issueCommand;\nfunction $9fd773f80bf7d36c$var$issue(name, message = \"\") {\n $9fd773f80bf7d36c$var$issueCommand(name, {}, message);\n}\nmodule.exports.issue = $9fd773f80bf7d36c$var$issue;\nconst $9fd773f80bf7d36c$var$CMD_STRING = \"::\";\nclass $9fd773f80bf7d36c$var$Command {\n constructor(command, properties, message){\n if (!command) command = \"missing.command\";\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = $9fd773f80bf7d36c$var$CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += \" \";\n let first = true;\n for(const key in this.properties)if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) first = false;\n else cmdStr += \",\";\n cmdStr += `${key}=${$9fd773f80bf7d36c$var$escapeProperty(val)}`;\n }\n }\n }\n cmdStr += `${$9fd773f80bf7d36c$var$CMD_STRING}${$9fd773f80bf7d36c$var$escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction $9fd773f80bf7d36c$var$escapeData(s) {\n return $i0ItD.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\");\n}\nfunction $9fd773f80bf7d36c$var$escapeProperty(s) {\n return $i0ItD.toCommandValue(s).replace(/%/g, \"%25\").replace(/\\r/g, \"%0D\").replace(/\\n/g, \"%0A\").replace(/:/g, \"%3A\").replace(/,/g, \"%2C\");\n}\n\n});\nparcelRegister(\"i0ItD\", function(module, exports) {\n\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toCommandProperties = module.exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */ function $d1caba43517904de$var$toCommandValue(input) {\n if (input === null || input === undefined) return \"\";\n else if (typeof input === \"string\" || input instanceof String) return input;\n return JSON.stringify(input);\n}\nmodule.exports.toCommandValue = $d1caba43517904de$var$toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */ function $d1caba43517904de$var$toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) return {};\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nmodule.exports.toCommandProperties = $d1caba43517904de$var$toCommandProperties;\n\n});\n\n\nparcelRegister(\"aSbHp\", function(module, exports) {\n\"use strict\";\n// For internal use, subject to change.\nvar $7ea805c232758762$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $7ea805c232758762$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $7ea805c232758762$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $7ea805c232758762$var$__createBinding(result, mod, k);\n }\n $7ea805c232758762$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.prepareKeyValueMessage = module.exports.issueFileCommand = void 0;\n\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */ const $7ea805c232758762$var$fs = $7ea805c232758762$var$__importStar($d7DIX$fs);\n\nconst $7ea805c232758762$var$os = $7ea805c232758762$var$__importStar($d7DIX$os);\n\nvar $e3G3w = parcelRequire(\"e3G3w\");\n\nvar $i0ItD = parcelRequire(\"i0ItD\");\nfunction $7ea805c232758762$var$issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`);\n if (!$7ea805c232758762$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`);\n $7ea805c232758762$var$fs.appendFileSync(filePath, `${$i0ItD.toCommandValue(message)}${$7ea805c232758762$var$os.EOL}`, {\n encoding: \"utf8\"\n });\n}\nmodule.exports.issueFileCommand = $7ea805c232758762$var$issueFileCommand;\nfunction $7ea805c232758762$var$prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${$e3G3w.default()}`;\n const convertedValue = $i0ItD.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n return `${key}<<${delimiter}${$7ea805c232758762$var$os.EOL}${convertedValue}${$7ea805c232758762$var$os.EOL}${delimiter}`;\n}\nmodule.exports.prepareKeyValueMessage = $7ea805c232758762$var$prepareKeyValueMessage;\n\n});\nparcelRegister(\"e3G3w\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $a3c1f7e44989a758$export$2e2bcd8739ae039);\n\nvar $kDGEy = parcelRequire(\"kDGEy\");\n\nvar $2ckr2 = parcelRequire(\"2ckr2\");\nfunction $a3c1f7e44989a758$var$v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || (0, $kDGEy.default))(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for(let i = 0; i < 16; ++i)buf[offset + i] = rnds[i];\n return buf;\n }\n return (0, $2ckr2.default)(rnds);\n}\nvar $a3c1f7e44989a758$export$2e2bcd8739ae039 = $a3c1f7e44989a758$var$v4;\n\n});\nparcelRegister(\"kDGEy\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $f0688929972e8cca$export$2e2bcd8739ae039);\n\nconst $f0688929972e8cca$var$rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\nlet $f0688929972e8cca$var$poolPtr = $f0688929972e8cca$var$rnds8Pool.length;\nfunction $f0688929972e8cca$export$2e2bcd8739ae039() {\n if ($f0688929972e8cca$var$poolPtr > $f0688929972e8cca$var$rnds8Pool.length - 16) {\n (0, ($parcel$interopDefault($d7DIX$crypto))).randomFillSync($f0688929972e8cca$var$rnds8Pool);\n $f0688929972e8cca$var$poolPtr = 0;\n }\n return $f0688929972e8cca$var$rnds8Pool.slice($f0688929972e8cca$var$poolPtr, $f0688929972e8cca$var$poolPtr += 16);\n}\n\n});\n\nparcelRegister(\"2ckr2\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $199c8db8e94efcb9$export$2e2bcd8739ae039);\n\nvar $9IL8W = parcelRequire(\"9IL8W\");\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ const $199c8db8e94efcb9$var$byteToHex = [];\nfor(let i = 0; i < 256; ++i)$199c8db8e94efcb9$var$byteToHex.push((i + 0x100).toString(16).substr(1));\nfunction $199c8db8e94efcb9$var$stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = ($199c8db8e94efcb9$var$byteToHex[arr[offset + 0]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 1]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 2]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 3]] + \"-\" + $199c8db8e94efcb9$var$byteToHex[arr[offset + 4]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 5]] + \"-\" + $199c8db8e94efcb9$var$byteToHex[arr[offset + 6]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 7]] + \"-\" + $199c8db8e94efcb9$var$byteToHex[arr[offset + 8]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 9]] + \"-\" + $199c8db8e94efcb9$var$byteToHex[arr[offset + 10]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 11]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 12]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 13]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 14]] + $199c8db8e94efcb9$var$byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!(0, $9IL8W.default)(uuid)) throw TypeError(\"Stringified UUID is invalid\");\n return uuid;\n}\nvar $199c8db8e94efcb9$export$2e2bcd8739ae039 = $199c8db8e94efcb9$var$stringify;\n\n});\nparcelRegister(\"9IL8W\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $713ccacc4438b458$export$2e2bcd8739ae039);\n\nvar $hDU47 = parcelRequire(\"hDU47\");\nfunction $713ccacc4438b458$var$validate(uuid) {\n return typeof uuid === \"string\" && (0, $hDU47.default).test(uuid);\n}\nvar $713ccacc4438b458$export$2e2bcd8739ae039 = $713ccacc4438b458$var$validate;\n\n});\nparcelRegister(\"hDU47\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $cd81919c4b3b9e01$export$2e2bcd8739ae039);\nvar $cd81919c4b3b9e01$export$2e2bcd8739ae039 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\n});\n\n\n\n\n\nparcelRegister(\"6dNYa\", function(module, exports) {\n\"use strict\";\nvar $487ab7ded41d44aa$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.OidcClient = void 0;\n\nvar $a7JAS = parcelRequire(\"a7JAS\");\n\nvar $3T6Pq = parcelRequire(\"3T6Pq\");\n\nvar $4t50X = parcelRequire(\"4t50X\");\nclass $487ab7ded41d44aa$var$OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new $a7JAS.HttpClient(\"actions/oidc-client\", [\n new $3T6Pq.BearerCredentialHandler($487ab7ded41d44aa$var$OidcClient.getRequestToken())\n ], requestOptions);\n }\n static getRequestToken() {\n const token = process.env[\"ACTIONS_ID_TOKEN_REQUEST_TOKEN\"];\n if (!token) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable\");\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env[\"ACTIONS_ID_TOKEN_REQUEST_URL\"];\n if (!runtimeUrl) throw new Error(\"Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable\");\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return $487ab7ded41d44aa$var$__awaiter(this, void 0, void 0, function*() {\n const httpclient = $487ab7ded41d44aa$var$OidcClient.createHttpClient();\n const res = yield httpclient.getJson(id_token_url).catch((error)=>{\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) throw new Error(\"Response json body do not have ID Token field\");\n return id_token;\n });\n }\n static getIDToken(audience) {\n return $487ab7ded41d44aa$var$__awaiter(this, void 0, void 0, function*() {\n try {\n // New ID Token is requested from action service\n let id_token_url = $487ab7ded41d44aa$var$OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n $4t50X.debug(`ID token url is ${id_token_url}`);\n const id_token = yield $487ab7ded41d44aa$var$OidcClient.getCall(id_token_url);\n $4t50X.setSecret(id_token);\n return id_token;\n } catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nmodule.exports.OidcClient = $487ab7ded41d44aa$var$OidcClient;\n\n});\nparcelRegister(\"a7JAS\", function(module, exports) {\n\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */ var $75edecd1a4092d7a$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $75edecd1a4092d7a$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $75edecd1a4092d7a$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $75edecd1a4092d7a$var$__createBinding(result, mod, k);\n }\n $75edecd1a4092d7a$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $75edecd1a4092d7a$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.HttpClient = module.exports.isHttps = module.exports.HttpClientResponse = module.exports.HttpClientError = module.exports.getProxyUrl = module.exports.MediaTypes = module.exports.Headers = module.exports.HttpCodes = void 0;\n\nconst $75edecd1a4092d7a$var$http = $75edecd1a4092d7a$var$__importStar($d7DIX$http);\n\nconst $75edecd1a4092d7a$var$https = $75edecd1a4092d7a$var$__importStar($d7DIX$https);\n\nconst $75edecd1a4092d7a$var$pm = $75edecd1a4092d7a$var$__importStar((parcelRequire(\"8gh3V\")));\n\nconst $75edecd1a4092d7a$var$tunnel = $75edecd1a4092d7a$var$__importStar((parcelRequire(\"7i1qo\")));\nvar $75edecd1a4092d7a$var$HttpCodes;\n(function(HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})($75edecd1a4092d7a$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {}));\nvar $75edecd1a4092d7a$var$Headers;\n(function(Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})($75edecd1a4092d7a$var$Headers = module.exports.Headers || (module.exports.Headers = {}));\nvar $75edecd1a4092d7a$var$MediaTypes;\n(function(MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})($75edecd1a4092d7a$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ function $75edecd1a4092d7a$var$getProxyUrl(serverUrl) {\n const proxyUrl = $75edecd1a4092d7a$var$pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : \"\";\n}\nmodule.exports.getProxyUrl = $75edecd1a4092d7a$var$getProxyUrl;\nconst $75edecd1a4092d7a$var$HttpRedirectCodes = [\n $75edecd1a4092d7a$var$HttpCodes.MovedPermanently,\n $75edecd1a4092d7a$var$HttpCodes.ResourceMoved,\n $75edecd1a4092d7a$var$HttpCodes.SeeOther,\n $75edecd1a4092d7a$var$HttpCodes.TemporaryRedirect,\n $75edecd1a4092d7a$var$HttpCodes.PermanentRedirect\n];\nconst $75edecd1a4092d7a$var$HttpResponseRetryCodes = [\n $75edecd1a4092d7a$var$HttpCodes.BadGateway,\n $75edecd1a4092d7a$var$HttpCodes.ServiceUnavailable,\n $75edecd1a4092d7a$var$HttpCodes.GatewayTimeout\n];\nconst $75edecd1a4092d7a$var$RetryableHttpVerbs = [\n \"OPTIONS\",\n \"GET\",\n \"DELETE\",\n \"HEAD\"\n];\nconst $75edecd1a4092d7a$var$ExponentialBackoffCeiling = 10;\nconst $75edecd1a4092d7a$var$ExponentialBackoffTimeSlice = 5;\nclass $75edecd1a4092d7a$var$HttpClientError extends Error {\n constructor(message, statusCode){\n super(message);\n this.name = \"HttpClientError\";\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, $75edecd1a4092d7a$var$HttpClientError.prototype);\n }\n}\nmodule.exports.HttpClientError = $75edecd1a4092d7a$var$HttpClientError;\nclass $75edecd1a4092d7a$var$HttpClientResponse {\n constructor(message){\n this.message = message;\n }\n readBody() {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve)=>$75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n let output = Buffer.alloc(0);\n this.message.on(\"data\", (chunk)=>{\n output = Buffer.concat([\n output,\n chunk\n ]);\n });\n this.message.on(\"end\", ()=>{\n resolve(output.toString());\n });\n }));\n });\n }\n}\nmodule.exports.HttpClientResponse = $75edecd1a4092d7a$var$HttpClientResponse;\nfunction $75edecd1a4092d7a$var$isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === \"https:\";\n}\nmodule.exports.isHttps = $75edecd1a4092d7a$var$isHttps;\nclass $75edecd1a4092d7a$var$HttpClient {\n constructor(userAgent, handlers, requestOptions){\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError;\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects;\n if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive;\n if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries;\n if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries;\n }\n }\n options(requestUrl, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"OPTIONS\", requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"GET\", requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"DELETE\", requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"POST\", requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PATCH\", requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"PUT\", requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(\"HEAD\", requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */ getJson(requestUrl, additionalHeaders = {}) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n additionalHeaders[$75edecd1a4092d7a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.Accept, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.Accept, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.ContentType, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.Accept, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.ContentType, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.Accept, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n additionalHeaders[$75edecd1a4092d7a$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $75edecd1a4092d7a$var$Headers.ContentType, $75edecd1a4092d7a$var$MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */ request(verb, requestUrl, data, headers) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n if (this._disposed) throw new Error(\"Client has already been disposed.\");\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && $75edecd1a4092d7a$var$RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === $75edecd1a4092d7a$var$HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers)if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data);\n else // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n let redirectsRemaining = this._maxRedirects;\n while(response.message.statusCode && $75edecd1a4092d7a$var$HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0){\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) break;\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === \"https:\" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for(const header in headers)// header names are case insensitive\n if (header.toLowerCase() === \"authorization\") delete headers[header];\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode || !$75edecd1a4092d7a$var$HttpResponseRetryCodes.includes(response.message.statusCode)) // If not a retry code, return immediately instead of retrying\n return response;\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */ dispose() {\n if (this._agent) this._agent.destroy();\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */ requestRaw(info, data) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>{\n function callbackForResult(err, res) {\n if (err) reject(err);\n else if (!res) // If `err` is not passed, then `res` must be passed.\n reject(new Error(\"Unknown error\"));\n else resolve(res);\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */ requestRawWithCallback(info, data, onResult) {\n if (typeof data === \"string\") {\n if (!info.options.headers) info.options.headers = {};\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, \"utf8\");\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg)=>{\n const res = new $75edecd1a4092d7a$var$HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on(\"socket\", (sock)=>{\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 180000, ()=>{\n if (socket) socket.end();\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on(\"error\", function(err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === \"string\") req.write(data, \"utf8\");\n if (data && typeof data !== \"string\") {\n data.on(\"close\", function() {\n req.end();\n });\n data.pipe(req);\n } else req.end();\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */ getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === \"https:\";\n info.httpModule = usingSsl ? $75edecd1a4092d7a$var$https : $75edecd1a4092d7a$var$http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || \"\") + (info.parsedUrl.search || \"\");\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) info.options.headers[\"user-agent\"] = this.userAgent;\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) for (const handler of this.handlers)handler.prepareRequest(info.options);\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, $75edecd1a4092d7a$var$lowercaseKeys(this.requestOptions.headers), $75edecd1a4092d7a$var$lowercaseKeys(headers || {}));\n return $75edecd1a4092d7a$var$lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) clientHeader = $75edecd1a4092d7a$var$lowercaseKeys(this.requestOptions.headers)[header];\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = $75edecd1a4092d7a$var$pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) agent = this._proxyAgent;\n if (this._keepAlive && !useProxy) agent = this._agent;\n // if agent is already assigned use that agent.\n if (agent) return agent;\n const usingSsl = parsedUrl.protocol === \"https:\";\n let maxSockets = 100;\n if (this.requestOptions) maxSockets = this.requestOptions.maxSockets || $75edecd1a4092d7a$var$http.globalAgent.maxSockets;\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }), {\n host: proxyUrl.hostname,\n port: proxyUrl.port\n })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === \"https:\";\n if (usingSsl) tunnelAgent = overHttps ? $75edecd1a4092d7a$var$tunnel.httpsOverHttps : $75edecd1a4092d7a$var$tunnel.httpsOverHttp;\n else tunnelAgent = overHttps ? $75edecd1a4092d7a$var$tunnel.httpOverHttps : $75edecd1a4092d7a$var$tunnel.httpOverHttp;\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = {\n keepAlive: this._keepAlive,\n maxSockets: maxSockets\n };\n agent = usingSsl ? new $75edecd1a4092d7a$var$https.Agent(options) : new $75edecd1a4092d7a$var$http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) agent = usingSsl ? $75edecd1a4092d7a$var$https.globalAgent : $75edecd1a4092d7a$var$http.globalAgent;\n if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n retryNumber = Math.min($75edecd1a4092d7a$var$ExponentialBackoffCeiling, retryNumber);\n const ms = $75edecd1a4092d7a$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise((resolve)=>setTimeout(()=>resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return $75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n return new Promise((resolve, reject)=>$75edecd1a4092d7a$var$__awaiter(this, void 0, void 0, function*() {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === $75edecd1a4092d7a$var$HttpCodes.NotFound) resolve(response);\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === \"string\") {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) return a;\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) obj = JSON.parse(contents, dateTimeDeserializer);\n else obj = JSON.parse(contents);\n response.result = obj;\n }\n response.headers = res.message.headers;\n } catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) msg = obj.message;\n else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string\n msg = contents;\n else msg = `Failed request: (${statusCode})`;\n const err = new $75edecd1a4092d7a$var$HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n } else resolve(response);\n }));\n });\n }\n}\nmodule.exports.HttpClient = $75edecd1a4092d7a$var$HttpClient;\nconst $75edecd1a4092d7a$var$lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {});\n\n});\nparcelRegister(\"8gh3V\", function(module, exports) {\n\"use strict\";\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.checkBypass = module.exports.getProxyUrl = void 0;\nfunction $603d0d99277438f4$var$getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === \"https:\";\n if ($603d0d99277438f4$var$checkBypass(reqUrl)) return undefined;\n const proxyVar = (()=>{\n if (usingSsl) return process.env[\"https_proxy\"] || process.env[\"HTTPS_PROXY\"];\n else return process.env[\"http_proxy\"] || process.env[\"HTTP_PROXY\"];\n })();\n if (proxyVar) return new URL(proxyVar);\n else return undefined;\n}\nmodule.exports.getProxyUrl = $603d0d99277438f4$var$getProxyUrl;\nfunction $603d0d99277438f4$var$checkBypass(reqUrl) {\n if (!reqUrl.hostname) return false;\n const reqHost = reqUrl.hostname;\n if ($603d0d99277438f4$var$isLoopbackAddress(reqHost)) return true;\n const noProxy = process.env[\"no_proxy\"] || process.env[\"NO_PROXY\"] || \"\";\n if (!noProxy) return false;\n // Determine the request port\n let reqPort;\n if (reqUrl.port) reqPort = Number(reqUrl.port);\n else if (reqUrl.protocol === \"http:\") reqPort = 80;\n else if (reqUrl.protocol === \"https:\") reqPort = 443;\n // Format the request hostname and hostname with port\n const upperReqHosts = [\n reqUrl.hostname.toUpperCase()\n ];\n if (typeof reqPort === \"number\") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy.split(\",\").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){\n if (upperNoProxyItem === \"*\" || upperReqHosts.some((x)=>x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(\".\") && x.endsWith(`${upperNoProxyItem}`))) return true;\n }\n return false;\n}\nmodule.exports.checkBypass = $603d0d99277438f4$var$checkBypass;\nfunction $603d0d99277438f4$var$isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return hostLower === \"localhost\" || hostLower.startsWith(\"127.\") || hostLower.startsWith(\"[::1]\") || hostLower.startsWith(\"[0:0:0:0:0:0:0:1]\");\n}\n\n});\n\nparcelRegister(\"7i1qo\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"fbmJm\"));\n\n});\nparcelRegister(\"fbmJm\", function(module, exports) {\n\n$parcel$export(module.exports, \"httpOverHttp\", () => $b0d983e8249a2cc9$export$25cbd437c61a3835, (v) => $b0d983e8249a2cc9$export$25cbd437c61a3835 = v);\n$parcel$export(module.exports, \"httpsOverHttp\", () => $b0d983e8249a2cc9$export$c06e3df7111bae43, (v) => $b0d983e8249a2cc9$export$c06e3df7111bae43 = v);\n$parcel$export(module.exports, \"httpOverHttps\", () => $b0d983e8249a2cc9$export$5d50e36ef656139f, (v) => $b0d983e8249a2cc9$export$5d50e36ef656139f = v);\n$parcel$export(module.exports, \"httpsOverHttps\", () => $b0d983e8249a2cc9$export$212d6605025321cc, (v) => $b0d983e8249a2cc9$export$212d6605025321cc = v);\n$parcel$export(module.exports, \"debug\", () => $b0d983e8249a2cc9$export$1c9f709888824e05, (v) => $b0d983e8249a2cc9$export$1c9f709888824e05 = v);\nvar $b0d983e8249a2cc9$export$25cbd437c61a3835;\nvar $b0d983e8249a2cc9$export$c06e3df7111bae43;\nvar $b0d983e8249a2cc9$export$5d50e36ef656139f;\nvar $b0d983e8249a2cc9$export$212d6605025321cc;\nvar $b0d983e8249a2cc9$export$1c9f709888824e05;\n\"use strict\";\n\n\n\n\n\n\n\n$b0d983e8249a2cc9$export$25cbd437c61a3835 = $b0d983e8249a2cc9$var$httpOverHttp;\n$b0d983e8249a2cc9$export$c06e3df7111bae43 = $b0d983e8249a2cc9$var$httpsOverHttp;\n$b0d983e8249a2cc9$export$5d50e36ef656139f = $b0d983e8249a2cc9$var$httpOverHttps;\n$b0d983e8249a2cc9$export$212d6605025321cc = $b0d983e8249a2cc9$var$httpsOverHttps;\nfunction $b0d983e8249a2cc9$var$httpOverHttp(options) {\n var agent = new $b0d983e8249a2cc9$var$TunnelingAgent(options);\n agent.request = $d7DIX$http.request;\n return agent;\n}\nfunction $b0d983e8249a2cc9$var$httpsOverHttp(options) {\n var agent = new $b0d983e8249a2cc9$var$TunnelingAgent(options);\n agent.request = $d7DIX$http.request;\n agent.createSocket = $b0d983e8249a2cc9$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $b0d983e8249a2cc9$var$httpOverHttps(options) {\n var agent = new $b0d983e8249a2cc9$var$TunnelingAgent(options);\n agent.request = $d7DIX$https.request;\n return agent;\n}\nfunction $b0d983e8249a2cc9$var$httpsOverHttps(options) {\n var agent = new $b0d983e8249a2cc9$var$TunnelingAgent(options);\n agent.request = $d7DIX$https.request;\n agent.createSocket = $b0d983e8249a2cc9$var$createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\nfunction $b0d983e8249a2cc9$var$TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || $d7DIX$http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n self.on(\"free\", function onFree(socket, host, port, localAddress) {\n var options = $b0d983e8249a2cc9$var$toOptions(host, port, localAddress);\n for(var i = 0, len = self.requests.length; i < len; ++i){\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\n$d7DIX$util.inherits($b0d983e8249a2cc9$var$TunnelingAgent, $d7DIX$events.EventEmitter);\n$b0d983e8249a2cc9$var$TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = $b0d983e8249a2cc9$var$mergeOptions({\n request: req\n }, self.options, $b0d983e8249a2cc9$var$toOptions(host, port, localAddress));\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on(\"free\", onFree);\n socket.on(\"close\", onCloseOrRemove);\n socket.on(\"agentRemove\", onCloseOrRemove);\n req.onSocket(socket);\n function onFree() {\n self.emit(\"free\", socket, options);\n }\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener(\"free\", onFree);\n socket.removeListener(\"close\", onCloseOrRemove);\n socket.removeListener(\"agentRemove\", onCloseOrRemove);\n }\n });\n};\n$b0d983e8249a2cc9$var$TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n var connectOptions = $b0d983e8249a2cc9$var$mergeOptions({}, self.proxyOptions, {\n method: \"CONNECT\",\n path: options.host + \":\" + options.port,\n agent: false,\n headers: {\n host: options.host + \":\" + options.port\n }\n });\n if (options.localAddress) connectOptions.localAddress = options.localAddress;\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers[\"Proxy-Authorization\"] = \"Basic \" + new Buffer(connectOptions.proxyAuth).toString(\"base64\");\n }\n $b0d983e8249a2cc9$var$debug(\"making CONNECT request\");\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once(\"response\", onResponse); // for v0.6\n connectReq.once(\"upgrade\", onUpgrade); // for v0.6\n connectReq.once(\"connect\", onConnect); // for v0.7 or later\n connectReq.once(\"error\", onError);\n connectReq.end();\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n if (res.statusCode !== 200) {\n $b0d983e8249a2cc9$var$debug(\"tunneling socket could not be established, statusCode=%d\", res.statusCode);\n socket.destroy();\n var error = new Error(\"tunneling socket could not be established, statusCode=\" + res.statusCode);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n $b0d983e8249a2cc9$var$debug(\"got illegal response body from proxy\");\n socket.destroy();\n var error = new Error(\"got illegal response body from proxy\");\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n return;\n }\n $b0d983e8249a2cc9$var$debug(\"tunneling connection has established\");\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n function onError(cause) {\n connectReq.removeAllListeners();\n $b0d983e8249a2cc9$var$debug(\"tunneling socket could not be established, cause=%s\\n\", cause.message, cause.stack);\n var error = new Error(\"tunneling socket could not be established, cause=\" + cause.message);\n error.code = \"ECONNRESET\";\n options.request.emit(\"error\", error);\n self.removeSocket(placeholder);\n }\n};\n$b0d983e8249a2cc9$var$TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket);\n if (pos === -1) return;\n this.sockets.splice(pos, 1);\n var pending = this.requests.shift();\n if (pending) // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n};\nfunction $b0d983e8249a2cc9$var$createSecureSocket(options, cb) {\n var self = this;\n $b0d983e8249a2cc9$var$TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader(\"host\");\n var tlsOptions = $b0d983e8249a2cc9$var$mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, \"\") : options.host\n });\n // 0 is dummy port for v0.6\n var secureSocket = $d7DIX$tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\nfunction $b0d983e8249a2cc9$var$toOptions(host, port, localAddress) {\n if (typeof host === \"string\") return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n return host; // for v0.11 or later\n}\nfunction $b0d983e8249a2cc9$var$mergeOptions(target) {\n for(var i = 1, len = arguments.length; i < len; ++i){\n var overrides = arguments[i];\n if (typeof overrides === \"object\") {\n var keys = Object.keys(overrides);\n for(var j = 0, keyLen = keys.length; j < keyLen; ++j){\n var k = keys[j];\n if (overrides[k] !== undefined) target[k] = overrides[k];\n }\n }\n }\n return target;\n}\nvar $b0d983e8249a2cc9$var$debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) $b0d983e8249a2cc9$var$debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === \"string\") args[0] = \"TUNNEL: \" + args[0];\n else args.unshift(\"TUNNEL:\");\n console.error.apply(console, args);\n};\nelse $b0d983e8249a2cc9$var$debug = function() {};\n$b0d983e8249a2cc9$export$1c9f709888824e05 = $b0d983e8249a2cc9$var$debug; // for test\n\n});\n\n\n\nparcelRegister(\"3T6Pq\", function(module, exports) {\n\"use strict\";\nvar $2d4bce26bfd1284d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.PersonalAccessTokenCredentialHandler = module.exports.BearerCredentialHandler = module.exports.BasicCredentialHandler = void 0;\nclass $2d4bce26bfd1284d$var$BasicCredentialHandler {\n constructor(username, password){\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $2d4bce26bfd1284d$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BasicCredentialHandler = $2d4bce26bfd1284d$var$BasicCredentialHandler;\nclass $2d4bce26bfd1284d$var$BearerCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $2d4bce26bfd1284d$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.BearerCredentialHandler = $2d4bce26bfd1284d$var$BearerCredentialHandler;\nclass $2d4bce26bfd1284d$var$PersonalAccessTokenCredentialHandler {\n constructor(token){\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) throw Error(\"The request has no headers\");\n options.headers[\"Authorization\"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString(\"base64\")}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return $2d4bce26bfd1284d$var$__awaiter(this, void 0, void 0, function*() {\n throw new Error(\"not implemented\");\n });\n }\n}\nmodule.exports.PersonalAccessTokenCredentialHandler = $2d4bce26bfd1284d$var$PersonalAccessTokenCredentialHandler;\n\n});\n\n\nparcelRegister(\"dTpO2\", function(module, exports) {\n\"use strict\";\nvar $a1d46df778449c59$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.summary = module.exports.markdownSummary = module.exports.SUMMARY_DOCS_URL = module.exports.SUMMARY_ENV_VAR = void 0;\n\n\nconst { access: $a1d46df778449c59$var$access, appendFile: $a1d46df778449c59$var$appendFile, writeFile: $a1d46df778449c59$var$writeFile } = $d7DIX$fs.promises;\nmodule.exports.SUMMARY_ENV_VAR = \"GITHUB_STEP_SUMMARY\";\nmodule.exports.SUMMARY_DOCS_URL = \"https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary\";\nclass $a1d46df778449c59$var$Summary {\n constructor(){\n this._buffer = \"\";\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */ filePath() {\n return $a1d46df778449c59$var$__awaiter(this, void 0, void 0, function*() {\n if (this._filePath) return this._filePath;\n const pathFromEnv = process.env[module.exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${module.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n try {\n yield $a1d46df778449c59$var$access(pathFromEnv, $d7DIX$fs.constants.R_OK | $d7DIX$fs.constants.W_OK);\n } catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */ wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}=\"${value}\"`).join(\"\");\n if (!content) return `<${tag}${htmlAttrs}>`;\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */ write(options) {\n return $a1d46df778449c59$var$__awaiter(this, void 0, void 0, function*() {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? $a1d46df778449c59$var$writeFile : $a1d46df778449c59$var$appendFile;\n yield writeFunc(filePath, this._buffer, {\n encoding: \"utf8\"\n });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */ clear() {\n return $a1d46df778449c59$var$__awaiter(this, void 0, void 0, function*() {\n return this.emptyBuffer().write({\n overwrite: true\n });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */ stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */ isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */ emptyBuffer() {\n this._buffer = \"\";\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */ addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */ addEOL() {\n return this.addRaw($d7DIX$os.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */ addCodeBlock(code, lang) {\n const attrs = Object.assign({}, lang && {\n lang: lang\n });\n const element = this.wrap(\"pre\", this.wrap(\"code\", code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */ addList(items, ordered = false) {\n const tag = ordered ? \"ol\" : \"ul\";\n const listItems = items.map((item)=>this.wrap(\"li\", item)).join(\"\");\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */ addTable(rows) {\n const tableBody = rows.map((row)=>{\n const cells = row.map((cell)=>{\n if (typeof cell === \"string\") return this.wrap(\"td\", cell);\n const { header: header, data: data, colspan: colspan, rowspan: rowspan } = cell;\n const tag = header ? \"th\" : \"td\";\n const attrs = Object.assign(Object.assign({}, colspan && {\n colspan: colspan\n }), rowspan && {\n rowspan: rowspan\n });\n return this.wrap(tag, data, attrs);\n }).join(\"\");\n return this.wrap(\"tr\", cells);\n }).join(\"\");\n const element = this.wrap(\"table\", tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */ addDetails(label, content) {\n const element = this.wrap(\"details\", this.wrap(\"summary\", label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */ addImage(src, alt, options) {\n const { width: width, height: height } = options || {};\n const attrs = Object.assign(Object.assign({}, width && {\n width: width\n }), height && {\n height: height\n });\n const element = this.wrap(\"img\", null, Object.assign({\n src: src,\n alt: alt\n }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */ addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\"\n ].includes(tag) ? tag : \"h1\";\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addSeparator() {\n const element = this.wrap(\"hr\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */ addBreak() {\n const element = this.wrap(\"br\", null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */ addQuote(text, cite) {\n const attrs = Object.assign({}, cite && {\n cite: cite\n });\n const element = this.wrap(\"blockquote\", text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */ addLink(text, href) {\n const element = this.wrap(\"a\", text, {\n href: href\n });\n return this.addRaw(element).addEOL();\n }\n}\nconst $a1d46df778449c59$var$_summary = new $a1d46df778449c59$var$Summary();\n/**\n * @deprecated use `core.summary`\n */ module.exports.markdownSummary = $a1d46df778449c59$var$_summary;\nmodule.exports.summary = $a1d46df778449c59$var$_summary;\n\n});\n\nparcelRegister(\"azKnO\", function(module, exports) {\n\"use strict\";\nvar $7b3126f8d7bd7b01$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $7b3126f8d7bd7b01$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $7b3126f8d7bd7b01$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $7b3126f8d7bd7b01$var$__createBinding(result, mod, k);\n }\n $7b3126f8d7bd7b01$var$__setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.toPlatformPath = module.exports.toWin32Path = module.exports.toPosixPath = void 0;\n\nconst $7b3126f8d7bd7b01$var$path = $7b3126f8d7bd7b01$var$__importStar($d7DIX$path);\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */ function $7b3126f8d7bd7b01$var$toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, \"/\");\n}\nmodule.exports.toPosixPath = $7b3126f8d7bd7b01$var$toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */ function $7b3126f8d7bd7b01$var$toWin32Path(pth) {\n return pth.replace(/[/]/g, \"\\\\\");\n}\nmodule.exports.toWin32Path = $7b3126f8d7bd7b01$var$toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */ function $7b3126f8d7bd7b01$var$toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, $7b3126f8d7bd7b01$var$path.sep);\n}\nmodule.exports.toPlatformPath = $7b3126f8d7bd7b01$var$toPlatformPath;\n\n});\n\n\n\nparcelRegister(\"eCDnw\", function(module, exports) {\n\nvar $aa532906b08b4bb5$var$$parcel$__dirname = $d7DIX$path.resolve(__dirname, \"../../node_modules/numerous/lib\");\n(function() {\n \"use strict\";\n var root = this;\n //=========//\n // GLOBALS //\n //=========//\n var locales = {};\n //==========//\n // EXPOSING //\n //==========//\n var moduleDefinition = {\n create: factory,\n addLocale: addLocale,\n pluralize: pluralize\n };\n if (\"undefined\" !== typeof module.exports) module.exports = moduleDefinition;\n else root.numerous = moduleDefinition;\n //==================//\n // PUBLIC FUNCTIONS //\n //==================//\n /**\n * Creates new instance of numerous.\n *\n * @param {string} locale\n * @returns {object}\n */ function factory(locale) {\n checkLocale(locale);\n return {\n pluralize: function(value, variants) {\n return pluralize(locale, value, variants);\n }\n };\n }\n /**\n * Adds pluralization function for specified locale.\n * Usually externally called by locale itself.\n *\n * @param {string} locale\n * @param {function} callable\n */ function addLocale(locale, callable) {\n locales[locale] = callable;\n }\n /**\n * Returns variant from the specified list of variants\n * according to the specified value and locale.\n *\n * @param {string} locale\n * @param {int} value\n * @param {object} variants\n */ function pluralize(locale, value, variants) {\n checkLocale(locale);\n if (\"object\" !== typeof variants) throw new Error(\"List of variants should be specified as an object\");\n var key = locales[locale](value);\n return \"undefined\" !== typeof variants[key] ? variants[key] : null;\n }\n //===================//\n // PRIVATE FUNCTIONS //\n //===================//\n /**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} locale\n *\n * @returns {boolean}\n */ function hasLocale(locale) {\n return \"undefined\" !== typeof locales[locale];\n }\n /**\n * Checks if locale is loaded. If not, tries to load it.\n *\n * @param {string} locale\n */ function checkLocale(locale) {\n if (!hasLocale(locale)) requireLocale(locale);\n }\n /**\n * Tries to load the specified locale.\n *\n * @param {string} locale\n */ function requireLocale(locale) {\n try {\n require($aa532906b08b4bb5$var$$parcel$__dirname + \"/../locales/\" + locale + \".js\");\n } catch (error) {\n throw Error(\"Failed to load the following locale: \" + locale);\n }\n }\n}).call(module.exports);\n\n});\n\nparcelRegister(\"gMm9F\", function(module, exports) {\n//==============//\n// DEPENDENCIES //\n//==============//\n\nvar $iWDmx = parcelRequire(\"iWDmx\");\n\nvar $9xs9T = parcelRequire(\"9xs9T\");\n//================//\n// MODULE GLOBALS //\n//================//\n/**\n * Pre-calculating millisecond values for each time unit.\n */ const $c372508a6b96a969$var$timeUnits = [\n [\n \"years\",\n 29030400000\n ],\n [\n \"months\",\n 2419200000\n ],\n [\n \"weeks\",\n 604800000\n ],\n [\n \"days\",\n 86400000\n ],\n [\n \"hours\",\n 3600000\n ],\n [\n \"minutes\",\n 60000\n ],\n [\n \"seconds\",\n 1000\n ]\n];\nconst $c372508a6b96a969$var$defaultConfig = {\n locale: \"en\",\n span: 2,\n delimiter: \", \",\n unitType: \"long\",\n unitTypeLookupOrder: [\n \"long\",\n \"short\",\n \"narrow\"\n ],\n autoloadLocales: true\n};\n/**\n * Contains data of loaded locales.\n * @type {Object}\n */ const $c372508a6b96a969$var$locales = {};\n//=========//\n// EXPORTS //\n//=========//\nmodule.exports = {\n create: $c372508a6b96a969$var$timeDeltaFactory,\n addLocale: $c372508a6b96a969$var$addLocale,\n defaultConfig: $c372508a6b96a969$var$defaultConfig\n};\n//===========//\n// FUNCTIONS //\n//===========//\n/**\n * Adds pluralization data for the specified locale.\n * Should be called in browser.\n *\n * @param {Object|Object[]} localeData\n */ function $c372508a6b96a969$var$addLocale(localeData) {\n // Normalizing input\n if (!Array.isArray(localeData)) localeData = [\n localeData\n ];\n for (const item of localeData){\n const { id: id, data: data } = item;\n $c372508a6b96a969$var$locales[id] = data;\n }\n}\n/**\n * Creates new instance.\n *\n * @param {object?} config\n *\n * @returns {object}\n */ function $c372508a6b96a969$var$timeDeltaFactory(config) {\n // Initializing config by extending the default one\n config = Object.assign({}, $c372508a6b96a969$var$defaultConfig, config || {});\n return {\n /**\n * Public proxy for internal format function.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object?} options\n *\n * @returns {string}\n */ format: function(firstDate, secondDate, options) {\n // Allowing to override config with each individual call\n options = Object.assign({}, config, options || {});\n return $c372508a6b96a969$var$format(firstDate, secondDate, options);\n }\n };\n}\n/**\n * Returns difference between two dates as a text string.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n * @param {object} config\n *\n * @returns {string}\n */ function $c372508a6b96a969$var$format(firstDate, secondDate, config) {\n $c372508a6b96a969$var$ensureLocaleLoadedOrThrow(config.locale, {\n autoload: config.autoloadLocales\n });\n // Handling input arguments\n // -----\n if (!firstDate) throw new Error(\"Missing first date argument\");\n if (!secondDate) throw new Error(\"Missing second date argument\");\n // Calculating\n // -----\n const difference = $c372508a6b96a969$var$getDifference(firstDate, secondDate);\n const parts = [];\n for (const unit of difference){\n const [name, value] = unit;\n if (value > 0) parts.push($c372508a6b96a969$var$pluralize(name, value, config));\n if (parts.length >= config.span) break;\n }\n // Returning the string value\n return parts.join(config.delimiter);\n}\n/**\n * Checks if locale is loaded. If not, tries to load it in Node.js,\n * or throws and error in Browser.\n *\n * @param {string} locale\n * @param {Object?} options\n */ function $c372508a6b96a969$var$ensureLocaleLoadedOrThrow(locale, options) {\n const { autoload: autoload } = options;\n if ($c372508a6b96a969$var$hasLocale(locale)) return;\n if ($9xs9T && autoload) $c372508a6b96a969$var$requireLocale(locale);\n else throw new Error(`Missing locale: ${locale}, you must load it manually before using it`);\n}\n/**\n * Returns true if specified locale is loaded, false otherwise.\n *\n * @param {string} localeId\n *\n * @returns {boolean}\n */ function $c372508a6b96a969$var$hasLocale(localeId) {\n return Boolean($c372508a6b96a969$var$locales[localeId]);\n}\n/**\n * Tries to load the specified locale.\n *\n * @param {string} localeId\n */ function $c372508a6b96a969$var$requireLocale(localeId) {\n try {\n $c372508a6b96a969$var$addLocale(require(`../locales/${localeId}.js`));\n } catch (error) {\n throw Error(`Failed to load locale: ${localeId} from ../locales/${localeId}.js. If using a bundled time-delta, set 'autoloadLocales: false' in the config: ${error}`);\n }\n}\n/**\n * Returns difference as separate time units.\n *\n * @param {Date} firstDate\n * @param {Date} secondDate\n *\n * @returns {Array}\n */ function $c372508a6b96a969$var$getDifference(firstDate, secondDate) {\n let difference = secondDate - firstDate;\n const results = [];\n $c372508a6b96a969$var$timeUnits.some(function(unit) {\n const name = unit[0];\n const divider = unit[1];\n const value = Math.floor(difference / divider);\n difference -= value * divider;\n results.push([\n name,\n value\n ]);\n if (difference <= 0) // Breaking the loop.\n return true;\n });\n return results;\n}\n/**\n * Returns localized and pluralized time unit.\n *\n * @param {string} unit\n * @param {int} value\n * @param {object} config\n *\n * @returns {string}\n */ function $c372508a6b96a969$var$pluralize(unit, value, config) {\n const unitTypeData = $c372508a6b96a969$var$getLocaleDataForUnitType(config);\n const unitString = $iWDmx.pluralize(config.locale, value, unitTypeData[unit]);\n return unitString.replace(\"{0}\", value);\n}\n/**\n * Returns locale data for preferred unit type.\n *\n * @param {object} config\n *\n * @returns {Array}\n */ function $c372508a6b96a969$var$getLocaleDataForUnitType(config) {\n const localeData = $c372508a6b96a969$var$locales[config.locale];\n // Making a copy of array from config.\n let lookupOrder = config.unitTypeLookupOrder.slice();\n // Adding interested type to the top.\n lookupOrder.unshift(config.unitType);\n // Making sure only unique items are present.\n lookupOrder = $c372508a6b96a969$var$arrayUnique(lookupOrder);\n let unitTypeData = null;\n lookupOrder.some(function(unitType) {\n if (\"undefined\" !== typeof localeData[unitType]) {\n unitTypeData = localeData[unitType];\n // Breaking the loop.\n return true;\n }\n });\n if (null === unitTypeData) throw new Error(\"Can not find any unit type data for locale: \" + config.locale);\n return unitTypeData;\n}\n/**\n * Returns array with only unique items.\n *\n * @param {Array} array\n *\n * @returns {Array}\n */ function $c372508a6b96a969$var$arrayUnique(array) {\n return Array.from(new Set(array));\n}\n\n});\nparcelRegister(\"iWDmx\", function(module, exports) {\n\nmodule.exports = (parcelRequire(\"eCDnw\"));\n\n});\n\nparcelRegister(\"9xs9T\", function(module, exports) {\n// Coding standard for this project defined @ https://github.com/MatthewSH/standards/blob/master/JavaScript.md\n\"use strict\";\nexports = module.exports = !!(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\n});\n\n\nparcelRegister(\"bGwAu\", function(module, exports) {\nmodule.exports = $881ce52b35d88d20$var$isexe;\n$881ce52b35d88d20$var$isexe.sync = $881ce52b35d88d20$var$sync;\n\nfunction $881ce52b35d88d20$var$checkPathExt(path, options) {\n var pathext = options.pathExt !== undefined ? options.pathExt : process.env.PATHEXT;\n if (!pathext) return true;\n pathext = pathext.split(\";\");\n if (pathext.indexOf(\"\") !== -1) return true;\n for(var i = 0; i < pathext.length; i++){\n var p = pathext[i].toLowerCase();\n if (p && path.substr(-p.length).toLowerCase() === p) return true;\n }\n return false;\n}\nfunction $881ce52b35d88d20$var$checkStat(stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) return false;\n return $881ce52b35d88d20$var$checkPathExt(path, options);\n}\nfunction $881ce52b35d88d20$var$isexe(path, options, cb) {\n $d7DIX$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $881ce52b35d88d20$var$checkStat(stat, path, options));\n });\n}\nfunction $881ce52b35d88d20$var$sync(path, options) {\n return $881ce52b35d88d20$var$checkStat($d7DIX$fs.statSync(path), path, options);\n}\n\n});\n\nparcelRegister(\"d3qS7\", function(module, exports) {\nmodule.exports = $9810665efbefe038$var$isexe;\n$9810665efbefe038$var$isexe.sync = $9810665efbefe038$var$sync;\n\nfunction $9810665efbefe038$var$isexe(path, options, cb) {\n $d7DIX$fs.stat(path, function(er, stat) {\n cb(er, er ? false : $9810665efbefe038$var$checkStat(stat, options));\n });\n}\nfunction $9810665efbefe038$var$sync(path, options) {\n return $9810665efbefe038$var$checkStat($d7DIX$fs.statSync(path), options);\n}\nfunction $9810665efbefe038$var$checkStat(stat, options) {\n return stat.isFile() && $9810665efbefe038$var$checkMode(stat, options);\n}\nfunction $9810665efbefe038$var$checkMode(stat, options) {\n var mod = stat.mode;\n var uid = stat.uid;\n var gid = stat.gid;\n var myUid = options.uid !== undefined ? options.uid : process.getuid && process.getuid();\n var myGid = options.gid !== undefined ? options.gid : process.getgid && process.getgid();\n var u = parseInt(\"100\", 8);\n var g = parseInt(\"010\", 8);\n var o = parseInt(\"001\", 8);\n var ug = u | g;\n var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;\n return ret;\n}\n\n});\n\nparcelRegister(\"e1Rfe\", function(module, exports) {\n// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n \"SIGABRT\",\n \"SIGALRM\",\n \"SIGHUP\",\n \"SIGINT\",\n \"SIGTERM\"\n];\nif (process.platform !== \"win32\") module.exports.push(\"SIGVTALRM\", \"SIGXCPU\", \"SIGXFSZ\", \"SIGUSR2\", \"SIGTRAP\", \"SIGSYS\", \"SIGQUIT\", \"SIGIOT\");\nif (process.platform === \"linux\") module.exports.push(\"SIGIO\", \"SIGPOLL\", \"SIGPWR\", \"SIGSTKFLT\", \"SIGUNUSED\");\n\n});\n\nparcelRegister(\"bSUdl\", function(module, exports) {\n// just pre-load all the stuff that index.js lazily exports\n\nvar $9J5od = parcelRequire(\"9J5od\");\n\nvar $3qgxS = parcelRequire(\"3qgxS\");\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $fx8Ft = parcelRequire(\"fx8Ft\");\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\n\nvar $l655J = parcelRequire(\"l655J\");\n\nvar $jzJq8 = parcelRequire(\"jzJq8\");\n\nvar $b1nH1 = parcelRequire(\"b1nH1\");\n\nvar $inG4j = parcelRequire(\"inG4j\");\n\nvar $2aJGP = parcelRequire(\"2aJGP\");\n\nvar $h6Ixq = parcelRequire(\"h6Ixq\");\n\nvar $90ROK = parcelRequire(\"90ROK\");\n\nvar $8m4O1 = parcelRequire(\"8m4O1\");\n\nvar $3uysP = parcelRequire(\"3uysP\");\n\nvar $hYBTv = parcelRequire(\"hYBTv\");\n\nvar $ftcZo = parcelRequire(\"ftcZo\");\n\nvar $1CIrW = parcelRequire(\"1CIrW\");\n\nvar $exBHN = parcelRequire(\"exBHN\");\n\nvar $lm1lq = parcelRequire(\"lm1lq\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\n\nvar $avz3V = parcelRequire(\"avz3V\");\n\nvar $fXQFJ = parcelRequire(\"fXQFJ\");\n\nvar $bu0Ra = parcelRequire(\"bu0Ra\");\n\nvar $9xdhv = parcelRequire(\"9xdhv\");\n\nvar $8aNoG = parcelRequire(\"8aNoG\");\n\nvar $8gipG = parcelRequire(\"8gipG\");\n\nvar $l8hao = parcelRequire(\"l8hao\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $eRnrA = parcelRequire(\"eRnrA\");\n\nvar $aAvhf = parcelRequire(\"aAvhf\");\n\nvar $iWAcu = parcelRequire(\"iWAcu\");\n\nvar $32TwK = parcelRequire(\"32TwK\");\n\nvar $194Ox = parcelRequire(\"194Ox\");\n\nvar $a8VZj = parcelRequire(\"a8VZj\");\n\nvar $2yv5J = parcelRequire(\"2yv5J\");\n\nvar $46KXA = parcelRequire(\"46KXA\");\n\nvar $e3Thp = parcelRequire(\"e3Thp\");\n\nvar $8g51l = parcelRequire(\"8g51l\");\n\nvar $96YVB = parcelRequire(\"96YVB\");\nmodule.exports = {\n parse: $UI3XL,\n valid: $l655J,\n clean: $jzJq8,\n inc: $b1nH1,\n diff: $inG4j,\n major: $2aJGP,\n minor: $h6Ixq,\n patch: $90ROK,\n prerelease: $8m4O1,\n compare: $3uysP,\n rcompare: $hYBTv,\n compareLoose: $ftcZo,\n compareBuild: $1CIrW,\n sort: $exBHN,\n rsort: $lm1lq,\n gt: $cPjhN,\n lt: $avz3V,\n eq: $fXQFJ,\n neq: $bu0Ra,\n gte: $9xdhv,\n lte: $8aNoG,\n cmp: $8gipG,\n coerce: $l8hao,\n Comparator: $dSz9p,\n Range: $4FTez,\n satisfies: $2bU8Y,\n toComparators: $eRnrA,\n maxSatisfying: $aAvhf,\n minSatisfying: $iWAcu,\n minVersion: $32TwK,\n validRange: $194Ox,\n outside: $a8VZj,\n gtr: $2yv5J,\n ltr: $46KXA,\n intersects: $e3Thp,\n simplifyRange: $8g51l,\n subset: $96YVB,\n SemVer: $aMLnW,\n re: $9J5od.re,\n src: $9J5od.src,\n tokens: $9J5od.t,\n SEMVER_SPEC_VERSION: $3qgxS.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: $3qgxS.RELEASE_TYPES,\n compareIdentifiers: $fx8Ft.compareIdentifiers,\n rcompareIdentifiers: $fx8Ft.rcompareIdentifiers\n};\n\n});\nparcelRegister(\"9J5od\", function(module, exports) {\n\nvar $3qgxS = parcelRequire(\"3qgxS\");\nvar $714c7f42b7f0e43a$require$MAX_SAFE_COMPONENT_LENGTH = $3qgxS.MAX_SAFE_COMPONENT_LENGTH;\nvar $714c7f42b7f0e43a$require$MAX_SAFE_BUILD_LENGTH = $3qgxS.MAX_SAFE_BUILD_LENGTH;\nvar $714c7f42b7f0e43a$require$MAX_LENGTH = $3qgxS.MAX_LENGTH;\n\nvar $3CqZ1 = parcelRequire(\"3CqZ1\");\nexports = module.exports = {};\n// The actual regexps go on exports.re\nconst re = exports.re = [];\nconst safeRe = exports.safeRe = [];\nconst src = exports.src = [];\nconst t = exports.t = {};\nlet R = 0;\nconst LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n $714c7f42b7f0e43a$require$MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n $714c7f42b7f0e43a$require$MAX_SAFE_BUILD_LENGTH\n ]\n];\nconst makeSafeRegex = (value)=>{\n for (const [token, max] of safeRegexReplacements)value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n return value;\n};\nconst createToken = (name, value, isGlobal)=>{\n const safe = makeSafeRegex(value);\n const index = R++;\n $3CqZ1(name, index, value);\n t[name] = index;\n src[index] = value;\n re[index] = new RegExp(value, isGlobal ? \"g\" : undefined);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : undefined);\n};\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ncreateToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\ncreateToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ncreateToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n// ## Main Version\n// Three dot-separated numeric identifiers.\ncreateToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})\\\\.` + `(${src[t.NUMERICIDENTIFIER]})`);\ncreateToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ncreateToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`);\ncreateToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`);\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ncreateToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\ncreateToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ncreateToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ncreateToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ncreateToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\ncreateToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\ncreateToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\ncreateToken(\"GTLT\", \"((?:<|>)?=?)\");\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\ncreateToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\ncreateToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`);\ncreateToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken(\"COERCE\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${$714c7f42b7f0e43a$require$MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\\\.(\\\\d{1,${$714c7f42b7f0e43a$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\\\.(\\\\d{1,${$714c7f42b7f0e43a$require$MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\\\d])`);\ncreateToken(\"COERCERTL\", src[t.COERCE], true);\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken(\"LONETILDE\", \"(?:~>?)\");\ncreateToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\nexports.tildeTrimReplace = \"$1~\";\ncreateToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken(\"LONECARET\", \"(?:\\\\^)\");\ncreateToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\nexports.caretTrimReplace = \"$1^\";\ncreateToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\ncreateToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\ncreateToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\nexports.comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\\\s*$`);\ncreateToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s+-\\\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\\\s*$`);\n// Star ranges basically just allow anything at all.\ncreateToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n// >=0.0.0 is like a star\ncreateToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\ncreateToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n\n});\nparcelRegister(\"3qgxS\", function(module, exports) {\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst $27e0a264f9f9f368$var$SEMVER_SPEC_VERSION = \"2.0.0\";\nconst $27e0a264f9f9f368$var$MAX_LENGTH = 256;\nconst $27e0a264f9f9f368$var$MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nconst $27e0a264f9f9f368$var$MAX_SAFE_COMPONENT_LENGTH = 16;\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst $27e0a264f9f9f368$var$MAX_SAFE_BUILD_LENGTH = $27e0a264f9f9f368$var$MAX_LENGTH - 6;\nconst $27e0a264f9f9f368$var$RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n];\nmodule.exports = {\n MAX_LENGTH: $27e0a264f9f9f368$var$MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH: $27e0a264f9f9f368$var$MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH: $27e0a264f9f9f368$var$MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: $27e0a264f9f9f368$var$MAX_SAFE_INTEGER,\n RELEASE_TYPES: $27e0a264f9f9f368$var$RELEASE_TYPES,\n SEMVER_SPEC_VERSION: $27e0a264f9f9f368$var$SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n};\n\n});\n\nparcelRegister(\"3CqZ1\", function(module, exports) {\nconst $2a29da066bedbbfc$var$debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args)=>console.error(\"SEMVER\", ...args) : ()=>{};\nmodule.exports = $2a29da066bedbbfc$var$debug;\n\n});\n\n\nparcelRegister(\"aMLnW\", function(module, exports) {\n\nvar $3CqZ1 = parcelRequire(\"3CqZ1\");\n\nvar $3qgxS = parcelRequire(\"3qgxS\");\nvar $7da324c382d6a88a$require$MAX_LENGTH = $3qgxS.MAX_LENGTH;\nvar $7da324c382d6a88a$require$MAX_SAFE_INTEGER = $3qgxS.MAX_SAFE_INTEGER;\n\nvar $9J5od = parcelRequire(\"9J5od\");\nvar $7da324c382d6a88a$require$re = $9J5od.safeRe;\nvar $7da324c382d6a88a$require$t = $9J5od.t;\n\nvar $6omBt = parcelRequire(\"6omBt\");\n\nvar $fx8Ft = parcelRequire(\"fx8Ft\");\nvar $7da324c382d6a88a$require$compareIdentifiers = $fx8Ft.compareIdentifiers;\nclass $7da324c382d6a88a$var$SemVer {\n constructor(version, options){\n options = $6omBt(options);\n if (version instanceof $7da324c382d6a88a$var$SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n if (version.length > $7da324c382d6a88a$require$MAX_LENGTH) throw new TypeError(`version is longer than ${$7da324c382d6a88a$require$MAX_LENGTH} characters`);\n $3CqZ1(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? $7da324c382d6a88a$require$re[$7da324c382d6a88a$require$t.LOOSE] : $7da324c382d6a88a$require$re[$7da324c382d6a88a$require$t.FULL]);\n if (!m) throw new TypeError(`Invalid Version: ${version}`);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > $7da324c382d6a88a$require$MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > $7da324c382d6a88a$require$MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > $7da324c382d6a88a$require$MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map((id)=>{\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < $7da324c382d6a88a$require$MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) this.version += `-${this.prerelease.join(\".\")}`;\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n $3CqZ1(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof $7da324c382d6a88a$var$SemVer)) {\n if (typeof other === \"string\" && other === this.version) return 0;\n other = new $7da324c382d6a88a$var$SemVer(other, this.options);\n }\n if (other.version === this.version) return 0;\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof $7da324c382d6a88a$var$SemVer)) other = new $7da324c382d6a88a$var$SemVer(other, this.options);\n return $7da324c382d6a88a$require$compareIdentifiers(this.major, other.major) || $7da324c382d6a88a$require$compareIdentifiers(this.minor, other.minor) || $7da324c382d6a88a$require$compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof $7da324c382d6a88a$var$SemVer)) other = new $7da324c382d6a88a$var$SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n $3CqZ1(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $7da324c382d6a88a$require$compareIdentifiers(a, b);\n }while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof $7da324c382d6a88a$var$SemVer)) other = new $7da324c382d6a88a$var$SemVer(other, this.options);\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n $3CqZ1(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return $7da324c382d6a88a$require$compareIdentifiers(a, b);\n }while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) throw new Error(\"invalid increment argument: identifier is empty\");\n if (this.prerelease.length === 0) this.prerelease = [\n base\n ];\n else {\n let i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) throw new Error(\"invalid increment argument: identifier already exists\");\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [\n identifier,\n base\n ];\n if (identifierBase === false) prerelease = [\n identifier\n ];\n if ($7da324c382d6a88a$require$compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) this.prerelease = prerelease;\n } else this.prerelease = prerelease;\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) this.raw += `+${this.build.join(\".\")}`;\n return this;\n }\n}\nmodule.exports = $7da324c382d6a88a$var$SemVer;\n\n});\nparcelRegister(\"6omBt\", function(module, exports) {\n// parse out just the options we care about\nconst $4a7684854438b3a8$var$looseOption = Object.freeze({\n loose: true\n});\nconst $4a7684854438b3a8$var$emptyOpts = Object.freeze({});\nconst $4a7684854438b3a8$var$parseOptions = (options)=>{\n if (!options) return $4a7684854438b3a8$var$emptyOpts;\n if (typeof options !== \"object\") return $4a7684854438b3a8$var$looseOption;\n return options;\n};\nmodule.exports = $4a7684854438b3a8$var$parseOptions;\n\n});\n\nparcelRegister(\"fx8Ft\", function(module, exports) {\nconst $b4f0a9608bfa578c$var$numeric = /^[0-9]+$/;\nconst $b4f0a9608bfa578c$var$compareIdentifiers = (a, b)=>{\n const anum = $b4f0a9608bfa578c$var$numeric.test(a);\n const bnum = $b4f0a9608bfa578c$var$numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n};\nconst $b4f0a9608bfa578c$var$rcompareIdentifiers = (a, b)=>$b4f0a9608bfa578c$var$compareIdentifiers(b, a);\nmodule.exports = {\n compareIdentifiers: $b4f0a9608bfa578c$var$compareIdentifiers,\n rcompareIdentifiers: $b4f0a9608bfa578c$var$rcompareIdentifiers\n};\n\n});\n\n\nparcelRegister(\"UI3XL\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $0aa7690e2bf9b583$var$parse = (version, options, throwErrors = false)=>{\n if (version instanceof $aMLnW) return version;\n try {\n return new $aMLnW(version, options);\n } catch (er) {\n if (!throwErrors) return null;\n throw er;\n }\n};\nmodule.exports = $0aa7690e2bf9b583$var$parse;\n\n});\n\nparcelRegister(\"l655J\", function(module, exports) {\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\nconst $f5be1b9124e8a995$var$valid = (version, options)=>{\n const v = $UI3XL(version, options);\n return v ? v.version : null;\n};\nmodule.exports = $f5be1b9124e8a995$var$valid;\n\n});\n\nparcelRegister(\"jzJq8\", function(module, exports) {\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\nconst $e40484ca80391047$var$clean = (version, options)=>{\n const s = $UI3XL(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n};\nmodule.exports = $e40484ca80391047$var$clean;\n\n});\n\nparcelRegister(\"b1nH1\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $80622aa1b4dfbc9d$var$inc = (version, release, options, identifier, identifierBase)=>{\n if (typeof options === \"string\") {\n identifierBase = identifier;\n identifier = options;\n options = undefined;\n }\n try {\n return new $aMLnW(version instanceof $aMLnW ? version.version : version, options).inc(release, identifier, identifierBase).version;\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $80622aa1b4dfbc9d$var$inc;\n\n});\n\nparcelRegister(\"inG4j\", function(module, exports) {\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\nconst $d61b01eb687284bf$var$diff = (version1, version2)=>{\n const v1 = $UI3XL(version1, null, true);\n const v2 = $UI3XL(version2, null, true);\n const comparison = v1.compare(v2);\n if (comparison === 0) return null;\n const v1Higher = comparison > 0;\n const highVersion = v1Higher ? v1 : v2;\n const lowVersion = v1Higher ? v2 : v1;\n const highHasPre = !!highVersion.prerelease.length;\n const lowHasPre = !!lowVersion.prerelease.length;\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) return \"major\";\n // Otherwise it can be determined by checking the high version\n if (highVersion.patch) // anything higher than a patch bump would result in the wrong version\n return \"patch\";\n if (highVersion.minor) // anything higher than a minor bump would result in the wrong version\n return \"minor\";\n // bumping major/minor/patch all have same result\n return \"major\";\n }\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? \"pre\" : \"\";\n if (v1.major !== v2.major) return prefix + \"major\";\n if (v1.minor !== v2.minor) return prefix + \"minor\";\n if (v1.patch !== v2.patch) return prefix + \"patch\";\n // high and low are preleases\n return \"prerelease\";\n};\nmodule.exports = $d61b01eb687284bf$var$diff;\n\n});\n\nparcelRegister(\"2aJGP\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $194ff4fade75e049$var$major = (a, loose)=>new $aMLnW(a, loose).major;\nmodule.exports = $194ff4fade75e049$var$major;\n\n});\n\nparcelRegister(\"h6Ixq\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $c7458b89940ed03b$var$minor = (a, loose)=>new $aMLnW(a, loose).minor;\nmodule.exports = $c7458b89940ed03b$var$minor;\n\n});\n\nparcelRegister(\"90ROK\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $68fddc2c226bc011$var$patch = (a, loose)=>new $aMLnW(a, loose).patch;\nmodule.exports = $68fddc2c226bc011$var$patch;\n\n});\n\nparcelRegister(\"8m4O1\", function(module, exports) {\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\nconst $61541b255fd4fd5d$var$prerelease = (version, options)=>{\n const parsed = $UI3XL(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n};\nmodule.exports = $61541b255fd4fd5d$var$prerelease;\n\n});\n\nparcelRegister(\"3uysP\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $28aee843a4df7f72$var$compare = (a, b, loose)=>new $aMLnW(a, loose).compare(new $aMLnW(b, loose));\nmodule.exports = $28aee843a4df7f72$var$compare;\n\n});\n\nparcelRegister(\"hYBTv\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $d1656f45798b406b$var$rcompare = (a, b, loose)=>$3uysP(b, a, loose);\nmodule.exports = $d1656f45798b406b$var$rcompare;\n\n});\n\nparcelRegister(\"ftcZo\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $b433a3da1df2f705$var$compareLoose = (a, b)=>$3uysP(a, b, true);\nmodule.exports = $b433a3da1df2f705$var$compareLoose;\n\n});\n\nparcelRegister(\"1CIrW\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\nconst $12ebd1da918dc016$var$compareBuild = (a, b, loose)=>{\n const versionA = new $aMLnW(a, loose);\n const versionB = new $aMLnW(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n};\nmodule.exports = $12ebd1da918dc016$var$compareBuild;\n\n});\n\nparcelRegister(\"exBHN\", function(module, exports) {\n\nvar $1CIrW = parcelRequire(\"1CIrW\");\nconst $a96165462e76b234$var$sort = (list, loose)=>list.sort((a, b)=>$1CIrW(a, b, loose));\nmodule.exports = $a96165462e76b234$var$sort;\n\n});\n\nparcelRegister(\"lm1lq\", function(module, exports) {\n\nvar $1CIrW = parcelRequire(\"1CIrW\");\nconst $f8bcb207b3a73186$var$rsort = (list, loose)=>list.sort((a, b)=>$1CIrW(b, a, loose));\nmodule.exports = $f8bcb207b3a73186$var$rsort;\n\n});\n\nparcelRegister(\"cPjhN\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $0268ec36b6100c2c$var$gt = (a, b, loose)=>$3uysP(a, b, loose) > 0;\nmodule.exports = $0268ec36b6100c2c$var$gt;\n\n});\n\nparcelRegister(\"avz3V\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $7a67ff4b4e69975e$var$lt = (a, b, loose)=>$3uysP(a, b, loose) < 0;\nmodule.exports = $7a67ff4b4e69975e$var$lt;\n\n});\n\nparcelRegister(\"fXQFJ\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $b9f539425bdf4b62$var$eq = (a, b, loose)=>$3uysP(a, b, loose) === 0;\nmodule.exports = $b9f539425bdf4b62$var$eq;\n\n});\n\nparcelRegister(\"bu0Ra\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $85c32928d6534f6b$var$neq = (a, b, loose)=>$3uysP(a, b, loose) !== 0;\nmodule.exports = $85c32928d6534f6b$var$neq;\n\n});\n\nparcelRegister(\"9xdhv\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $6f117f82d38ad331$var$gte = (a, b, loose)=>$3uysP(a, b, loose) >= 0;\nmodule.exports = $6f117f82d38ad331$var$gte;\n\n});\n\nparcelRegister(\"8aNoG\", function(module, exports) {\n\nvar $3uysP = parcelRequire(\"3uysP\");\nconst $5f359321e34a81b1$var$lte = (a, b, loose)=>$3uysP(a, b, loose) <= 0;\nmodule.exports = $5f359321e34a81b1$var$lte;\n\n});\n\nparcelRegister(\"8gipG\", function(module, exports) {\n\nvar $fXQFJ = parcelRequire(\"fXQFJ\");\n\nvar $bu0Ra = parcelRequire(\"bu0Ra\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\n\nvar $9xdhv = parcelRequire(\"9xdhv\");\n\nvar $avz3V = parcelRequire(\"avz3V\");\n\nvar $8aNoG = parcelRequire(\"8aNoG\");\nconst $603e19dc5fbb1a16$var$cmp = (a, op, b, loose)=>{\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return $fXQFJ(a, b, loose);\n case \"!=\":\n return $bu0Ra(a, b, loose);\n case \">\":\n return $cPjhN(a, b, loose);\n case \">=\":\n return $9xdhv(a, b, loose);\n case \"<\":\n return $avz3V(a, b, loose);\n case \"<=\":\n return $8aNoG(a, b, loose);\n default:\n throw new TypeError(`Invalid operator: ${op}`);\n }\n};\nmodule.exports = $603e19dc5fbb1a16$var$cmp;\n\n});\n\nparcelRegister(\"l8hao\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $UI3XL = parcelRequire(\"UI3XL\");\n\nvar $9J5od = parcelRequire(\"9J5od\");\nvar $f627a93f3b8c4872$require$re = $9J5od.safeRe;\nvar $f627a93f3b8c4872$require$t = $9J5od.t;\nconst $f627a93f3b8c4872$var$coerce = (version, options)=>{\n if (version instanceof $aMLnW) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n let match = null;\n if (!options.rtl) match = version.match($f627a93f3b8c4872$require$re[$f627a93f3b8c4872$require$t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next;\n while((next = $f627a93f3b8c4872$require$re[$f627a93f3b8c4872$require$t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n $f627a93f3b8c4872$require$re[$f627a93f3b8c4872$require$t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n $f627a93f3b8c4872$require$re[$f627a93f3b8c4872$require$t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return $UI3XL(`${match[2]}.${match[3] || \"0\"}.${match[4] || \"0\"}`, options);\n};\nmodule.exports = $f627a93f3b8c4872$var$coerce;\n\n});\n\nparcelRegister(\"dSz9p\", function(module, exports) {\nconst $a1ab95b4a6509cb8$var$ANY = Symbol(\"SemVer ANY\");\n// hoisted class for cyclic dependency\nclass $a1ab95b4a6509cb8$var$Comparator {\n static get ANY() {\n return $a1ab95b4a6509cb8$var$ANY;\n }\n constructor(comp, options){\n options = $6omBt(options);\n if (comp instanceof $a1ab95b4a6509cb8$var$Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n comp = comp.trim().split(/\\s+/).join(\" \");\n $3CqZ1(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === $a1ab95b4a6509cb8$var$ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n $3CqZ1(\"comp\", this);\n }\n parse(comp) {\n const r = this.options.loose ? $a1ab95b4a6509cb8$require$re[$a1ab95b4a6509cb8$require$t.COMPARATORLOOSE] : $a1ab95b4a6509cb8$require$re[$a1ab95b4a6509cb8$require$t.COMPARATOR];\n const m = comp.match(r);\n if (!m) throw new TypeError(`Invalid comparator: ${comp}`);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = $a1ab95b4a6509cb8$var$ANY;\n else this.semver = new $aMLnW(m[2], this.options.loose);\n }\n toString() {\n return this.value;\n }\n test(version) {\n $3CqZ1(\"Comparator.test\", version, this.options.loose);\n if (this.semver === $a1ab95b4a6509cb8$var$ANY || version === $a1ab95b4a6509cb8$var$ANY) return true;\n if (typeof version === \"string\") try {\n version = new $aMLnW(version, this.options);\n } catch (er) {\n return false;\n }\n return $8gipG(version, this.operator, this.semver, this.options);\n }\n intersects(comp, options) {\n if (!(comp instanceof $a1ab95b4a6509cb8$var$Comparator)) throw new TypeError(\"a Comparator is required\");\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n return new $4FTez(comp.value, options).test(this.value);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n return new $4FTez(this.value, options).test(comp.semver);\n }\n options = $6omBt(options);\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease && (this.value === \"<0.0.0-0\" || comp.value === \"<0.0.0-0\")) return false;\n if (!options.includePrerelease && (this.value.startsWith(\"<0.0.0\") || comp.value.startsWith(\"<0.0.0\"))) return false;\n // Same direction increasing (> or >=)\n if (this.operator.startsWith(\">\") && comp.operator.startsWith(\">\")) return true;\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith(\"<\") && comp.operator.startsWith(\"<\")) return true;\n // same SemVer and both sides are inclusive (<= or >=)\n if (this.semver.version === comp.semver.version && this.operator.includes(\"=\") && comp.operator.includes(\"=\")) return true;\n // opposite directions less than\n if ($8gipG(this.semver, \"<\", comp.semver, options) && this.operator.startsWith(\">\") && comp.operator.startsWith(\"<\")) return true;\n // opposite directions greater than\n if ($8gipG(this.semver, \">\", comp.semver, options) && this.operator.startsWith(\"<\") && comp.operator.startsWith(\">\")) return true;\n return false;\n }\n}\nmodule.exports = $a1ab95b4a6509cb8$var$Comparator;\n\nvar $6omBt = parcelRequire(\"6omBt\");\n\nvar $9J5od = parcelRequire(\"9J5od\");\nvar $a1ab95b4a6509cb8$require$re = $9J5od.safeRe;\nvar $a1ab95b4a6509cb8$require$t = $9J5od.t;\n\nvar $8gipG = parcelRequire(\"8gipG\");\n\nvar $3CqZ1 = parcelRequire(\"3CqZ1\");\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\n});\nparcelRegister(\"4FTez\", function(module, exports) {\n// hoisted class for cyclic dependency\nclass $3675d6171478137e$var$Range {\n constructor(range, options){\n options = $6omBt(options);\n if (range instanceof $3675d6171478137e$var$Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new $3675d6171478137e$var$Range(range.raw, options);\n }\n if (range instanceof $dSz9p) {\n // just put it in the set and return\n this.raw = range.value;\n this.set = [\n [\n range\n ]\n ];\n this.format();\n return this;\n }\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split on ||\n this.set = this.raw.split(\"||\")// map the range to a 2d array of comparators\n .map((r)=>this.parseRange(r.trim()))// throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter((c)=>c.length);\n if (!this.set.length) throw new TypeError(`Invalid SemVer Range: ${this.raw}`);\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0];\n this.set = this.set.filter((c)=>!$3675d6171478137e$var$isNullSet(c[0]));\n if (this.set.length === 0) this.set = [\n first\n ];\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set)if (c.length === 1 && $3675d6171478137e$var$isAny(c[0])) {\n this.set = [\n c\n ];\n break;\n }\n }\n }\n this.format();\n }\n format() {\n this.range = this.set.map((comps)=>comps.join(\" \").trim()).join(\"||\").trim();\n return this.range;\n }\n toString() {\n return this.range;\n }\n parseRange(range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = (this.options.includePrerelease && $3675d6171478137e$require$FLAG_INCLUDE_PRERELEASE) | (this.options.loose && $3675d6171478137e$require$FLAG_LOOSE);\n const memoKey = memoOpts + \":\" + range;\n const cached = $3675d6171478137e$var$cache.get(memoKey);\n if (cached) return cached;\n const loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.HYPHENRANGELOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.HYPHENRANGE];\n range = range.replace(hr, $3675d6171478137e$var$hyphenReplace(this.options.includePrerelease));\n $3CqZ1(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace($3675d6171478137e$require$re[$3675d6171478137e$require$t.COMPARATORTRIM], $3675d6171478137e$require$comparatorTrimReplace);\n $3CqZ1(\"comparator trim\", range);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace($3675d6171478137e$require$re[$3675d6171478137e$require$t.TILDETRIM], $3675d6171478137e$require$tildeTrimReplace);\n $3CqZ1(\"tilde trim\", range);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace($3675d6171478137e$require$re[$3675d6171478137e$require$t.CARETTRIM], $3675d6171478137e$require$caretTrimReplace);\n $3CqZ1(\"caret trim\", range);\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n let rangeList = range.split(\" \").map((comp)=>$3675d6171478137e$var$parseComparator(comp, this.options)).join(\" \").split(/\\s+/)// >=0.0.0 is equivalent to *\n .map((comp)=>$3675d6171478137e$var$replaceGTE0(comp, this.options));\n if (loose) // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter((comp)=>{\n $3CqZ1(\"loose invalid filter\", comp, this.options);\n return !!comp.match($3675d6171478137e$require$re[$3675d6171478137e$require$t.COMPARATORLOOSE]);\n });\n $3CqZ1(\"range list\", rangeList);\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map();\n const comparators = rangeList.map((comp)=>new $dSz9p(comp, this.options));\n for (const comp of comparators){\n if ($3675d6171478137e$var$isNullSet(comp)) return [\n comp\n ];\n rangeMap.set(comp.value, comp);\n }\n if (rangeMap.size > 1 && rangeMap.has(\"\")) rangeMap.delete(\"\");\n const result = [\n ...rangeMap.values()\n ];\n $3675d6171478137e$var$cache.set(memoKey, result);\n return result;\n }\n intersects(range, options) {\n if (!(range instanceof $3675d6171478137e$var$Range)) throw new TypeError(\"a Range is required\");\n return this.set.some((thisComparators)=>{\n return $3675d6171478137e$var$isSatisfiable(thisComparators, options) && range.set.some((rangeComparators)=>{\n return $3675d6171478137e$var$isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator)=>{\n return rangeComparators.every((rangeComparator)=>{\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n }\n // if ANY of the sets match ALL of its comparators, then pass\n test(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new $aMLnW(version, this.options);\n } catch (er) {\n return false;\n }\n for(let i = 0; i < this.set.length; i++){\n if ($3675d6171478137e$var$testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n }\n}\nmodule.exports = $3675d6171478137e$var$Range;\n\nvar $eGCLk = parcelRequire(\"eGCLk\");\nconst $3675d6171478137e$var$cache = new $eGCLk({\n max: 1000\n});\n\nvar $6omBt = parcelRequire(\"6omBt\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\n\nvar $3CqZ1 = parcelRequire(\"3CqZ1\");\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $9J5od = parcelRequire(\"9J5od\");\nvar $3675d6171478137e$require$re = $9J5od.safeRe;\nvar $3675d6171478137e$require$t = $9J5od.t;\nvar $3675d6171478137e$require$comparatorTrimReplace = $9J5od.comparatorTrimReplace;\nvar $3675d6171478137e$require$tildeTrimReplace = $9J5od.tildeTrimReplace;\nvar $3675d6171478137e$require$caretTrimReplace = $9J5od.caretTrimReplace;\n\nvar $3qgxS = parcelRequire(\"3qgxS\");\nvar $3675d6171478137e$require$FLAG_INCLUDE_PRERELEASE = $3qgxS.FLAG_INCLUDE_PRERELEASE;\nvar $3675d6171478137e$require$FLAG_LOOSE = $3qgxS.FLAG_LOOSE;\nconst $3675d6171478137e$var$isNullSet = (c)=>c.value === \"<0.0.0-0\";\nconst $3675d6171478137e$var$isAny = (c)=>c.value === \"\";\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst $3675d6171478137e$var$isSatisfiable = (comparators, options)=>{\n let result = true;\n const remainingComparators = comparators.slice();\n let testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every((otherComparator)=>{\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n};\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst $3675d6171478137e$var$parseComparator = (comp, options)=>{\n $3CqZ1(\"comp\", comp, options);\n comp = $3675d6171478137e$var$replaceCarets(comp, options);\n $3CqZ1(\"caret\", comp);\n comp = $3675d6171478137e$var$replaceTildes(comp, options);\n $3CqZ1(\"tildes\", comp);\n comp = $3675d6171478137e$var$replaceXRanges(comp, options);\n $3CqZ1(\"xrange\", comp);\n comp = $3675d6171478137e$var$replaceStars(comp, options);\n $3CqZ1(\"stars\", comp);\n return comp;\n};\nconst $3675d6171478137e$var$isX = (id)=>!id || id.toLowerCase() === \"x\" || id === \"*\";\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $3675d6171478137e$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceTilde(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.TILDELOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $3CqZ1(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($3675d6171478137e$var$isX(M)) ret = \"\";\n else if ($3675d6171478137e$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $3CqZ1(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $3CqZ1(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $3675d6171478137e$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceCaret(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceCaret = (comp, options)=>{\n $3CqZ1(\"caret\", comp, options);\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.CARETLOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $3CqZ1(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($3675d6171478137e$var$isX(M)) ret = \"\";\n else if ($3675d6171478137e$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $3CqZ1(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $3CqZ1(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $3CqZ1(\"caret return\", ret);\n return ret;\n });\n};\nconst $3675d6171478137e$var$replaceXRanges = (comp, options)=>{\n $3CqZ1(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceXRange(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.XRANGELOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $3CqZ1(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $3675d6171478137e$var$isX(M);\n const xm = xM || $3675d6171478137e$var$isX(m);\n const xp = xm || $3675d6171478137e$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $3CqZ1(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $3675d6171478137e$var$replaceStars = (comp, options)=>{\n $3CqZ1(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($3675d6171478137e$require$re[$3675d6171478137e$require$t.STAR], \"\");\n};\nconst $3675d6171478137e$var$replaceGTE0 = (comp, options)=>{\n $3CqZ1(\"replaceGTE0\", comp, options);\n return comp.trim().replace($3675d6171478137e$require$re[options.includePrerelease ? $3675d6171478137e$require$t.GTE0PRE : $3675d6171478137e$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $3675d6171478137e$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($3675d6171478137e$var$isX(fM)) from = \"\";\n else if ($3675d6171478137e$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($3675d6171478137e$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($3675d6171478137e$var$isX(tM)) to = \"\";\n else if ($3675d6171478137e$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $3675d6171478137e$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $3CqZ1(set[i].semver);\n if (set[i].semver === $dSz9p.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"eGCLk\", function(module, exports) {\n\"use strict\";\n\nvar $JD6z9 = parcelRequire(\"JD6z9\");\nconst $ab130e548a2d4b38$var$MAX = Symbol(\"max\");\nconst $ab130e548a2d4b38$var$LENGTH = Symbol(\"length\");\nconst $ab130e548a2d4b38$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $ab130e548a2d4b38$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $ab130e548a2d4b38$var$MAX_AGE = Symbol(\"maxAge\");\nconst $ab130e548a2d4b38$var$DISPOSE = Symbol(\"dispose\");\nconst $ab130e548a2d4b38$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $ab130e548a2d4b38$var$LRU_LIST = Symbol(\"lruList\");\nconst $ab130e548a2d4b38$var$CACHE = Symbol(\"cache\");\nconst $ab130e548a2d4b38$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $ab130e548a2d4b38$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $ab130e548a2d4b38$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$ab130e548a2d4b38$var$MAX] = options.max || Infinity;\n const lc = options.length || $ab130e548a2d4b38$var$naiveLength;\n this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $ab130e548a2d4b38$var$naiveLength : lc;\n this[$ab130e548a2d4b38$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$ab130e548a2d4b38$var$MAX_AGE] = options.maxAge || 0;\n this[$ab130e548a2d4b38$var$DISPOSE] = options.dispose;\n this[$ab130e548a2d4b38$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$ab130e548a2d4b38$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$ab130e548a2d4b38$var$MAX] = mL || Infinity;\n $ab130e548a2d4b38$var$trim(this);\n }\n get max() {\n return this[$ab130e548a2d4b38$var$MAX];\n }\n set allowStale(allowStale) {\n this[$ab130e548a2d4b38$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$ab130e548a2d4b38$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$ab130e548a2d4b38$var$MAX_AGE] = mA;\n $ab130e548a2d4b38$var$trim(this);\n }\n get maxAge() {\n return this[$ab130e548a2d4b38$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $ab130e548a2d4b38$var$naiveLength;\n if (lC !== this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR]) {\n this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR] = lC;\n this[$ab130e548a2d4b38$var$LENGTH] = 0;\n this[$ab130e548a2d4b38$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$ab130e548a2d4b38$var$LENGTH] += hit.length;\n });\n }\n $ab130e548a2d4b38$var$trim(this);\n }\n get lengthCalculator() {\n return this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$ab130e548a2d4b38$var$LENGTH];\n }\n get itemCount() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$ab130e548a2d4b38$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $ab130e548a2d4b38$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$ab130e548a2d4b38$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $ab130e548a2d4b38$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$ab130e548a2d4b38$var$DISPOSE] && this[$ab130e548a2d4b38$var$LRU_LIST] && this[$ab130e548a2d4b38$var$LRU_LIST].length) this[$ab130e548a2d4b38$var$LRU_LIST].forEach((hit)=>this[$ab130e548a2d4b38$var$DISPOSE](hit.key, hit.value));\n this[$ab130e548a2d4b38$var$CACHE] = new Map() // hash of items by key\n ;\n this[$ab130e548a2d4b38$var$LRU_LIST] = new $JD6z9() // list of items in order of use recency\n ;\n this[$ab130e548a2d4b38$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].map((hit)=>$ab130e548a2d4b38$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$ab130e548a2d4b38$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$ab130e548a2d4b38$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR](value, key);\n if (this[$ab130e548a2d4b38$var$CACHE].has(key)) {\n if (len > this[$ab130e548a2d4b38$var$MAX]) {\n $ab130e548a2d4b38$var$del(this, this[$ab130e548a2d4b38$var$CACHE].get(key));\n return false;\n }\n const node = this[$ab130e548a2d4b38$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$ab130e548a2d4b38$var$DISPOSE]) {\n if (!this[$ab130e548a2d4b38$var$NO_DISPOSE_ON_SET]) this[$ab130e548a2d4b38$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$ab130e548a2d4b38$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $ab130e548a2d4b38$var$trim(this);\n return true;\n }\n const hit = new $ab130e548a2d4b38$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$ab130e548a2d4b38$var$MAX]) {\n if (this[$ab130e548a2d4b38$var$DISPOSE]) this[$ab130e548a2d4b38$var$DISPOSE](key, value);\n return false;\n }\n this[$ab130e548a2d4b38$var$LENGTH] += hit.length;\n this[$ab130e548a2d4b38$var$LRU_LIST].unshift(hit);\n this[$ab130e548a2d4b38$var$CACHE].set(key, this[$ab130e548a2d4b38$var$LRU_LIST].head);\n $ab130e548a2d4b38$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$ab130e548a2d4b38$var$CACHE].has(key)) return false;\n const hit = this[$ab130e548a2d4b38$var$CACHE].get(key).value;\n return !$ab130e548a2d4b38$var$isStale(this, hit);\n }\n get(key) {\n return $ab130e548a2d4b38$var$get(this, key, true);\n }\n peek(key) {\n return $ab130e548a2d4b38$var$get(this, key, false);\n }\n pop() {\n const node = this[$ab130e548a2d4b38$var$LRU_LIST].tail;\n if (!node) return null;\n $ab130e548a2d4b38$var$del(this, node);\n return node.value;\n }\n del(key) {\n $ab130e548a2d4b38$var$del(this, this[$ab130e548a2d4b38$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$ab130e548a2d4b38$var$CACHE].forEach((value, key)=>$ab130e548a2d4b38$var$get(this, key, false));\n }\n}\nconst $ab130e548a2d4b38$var$get = (self, key, doUse)=>{\n const node = self[$ab130e548a2d4b38$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($ab130e548a2d4b38$var$isStale(self, hit)) {\n $ab130e548a2d4b38$var$del(self, node);\n if (!self[$ab130e548a2d4b38$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$ab130e548a2d4b38$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$ab130e548a2d4b38$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $ab130e548a2d4b38$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$ab130e548a2d4b38$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$ab130e548a2d4b38$var$MAX_AGE] && diff > self[$ab130e548a2d4b38$var$MAX_AGE];\n};\nconst $ab130e548a2d4b38$var$trim = (self)=>{\n if (self[$ab130e548a2d4b38$var$LENGTH] > self[$ab130e548a2d4b38$var$MAX]) for(let walker = self[$ab130e548a2d4b38$var$LRU_LIST].tail; self[$ab130e548a2d4b38$var$LENGTH] > self[$ab130e548a2d4b38$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $ab130e548a2d4b38$var$del(self, walker);\n walker = prev;\n }\n};\nconst $ab130e548a2d4b38$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$ab130e548a2d4b38$var$DISPOSE]) self[$ab130e548a2d4b38$var$DISPOSE](hit.key, hit.value);\n self[$ab130e548a2d4b38$var$LENGTH] -= hit.length;\n self[$ab130e548a2d4b38$var$CACHE].delete(hit.key);\n self[$ab130e548a2d4b38$var$LRU_LIST].removeNode(node);\n }\n};\nclass $ab130e548a2d4b38$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $ab130e548a2d4b38$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($ab130e548a2d4b38$var$isStale(self, hit)) {\n $ab130e548a2d4b38$var$del(self, node);\n if (!self[$ab130e548a2d4b38$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $ab130e548a2d4b38$var$LRUCache;\n\n});\nparcelRegister(\"JD6z9\", function(module, exports) {\n\"use strict\";\nmodule.exports = $08928980bda7e450$var$Yallist;\n$08928980bda7e450$var$Yallist.Node = $08928980bda7e450$var$Node;\n$08928980bda7e450$var$Yallist.create = $08928980bda7e450$var$Yallist;\nfunction $08928980bda7e450$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $08928980bda7e450$var$Yallist)) self = new $08928980bda7e450$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$08928980bda7e450$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$08928980bda7e450$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$08928980bda7e450$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$08928980bda7e450$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$08928980bda7e450$var$push(this, arguments[i]);\n return this.length;\n};\n$08928980bda7e450$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$08928980bda7e450$var$unshift(this, arguments[i]);\n return this.length;\n};\n$08928980bda7e450$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$08928980bda7e450$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$08928980bda7e450$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$08928980bda7e450$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$08928980bda7e450$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $08928980bda7e450$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $08928980bda7e450$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$08928980bda7e450$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$08928980bda7e450$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$08928980bda7e450$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$08928980bda7e450$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $08928980bda7e450$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $08928980bda7e450$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $08928980bda7e450$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $08928980bda7e450$var$insert(self, node, value) {\n var inserted = node === self.head ? new $08928980bda7e450$var$Node(value, null, node, self) : new $08928980bda7e450$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $08928980bda7e450$var$push(self, item) {\n self.tail = new $08928980bda7e450$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $08928980bda7e450$var$unshift(self, item) {\n self.head = new $08928980bda7e450$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $08928980bda7e450$var$Node(value, prev, next, list) {\n if (!(this instanceof $08928980bda7e450$var$Node)) return new $08928980bda7e450$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"6mmJJ\"))($08928980bda7e450$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"6mmJJ\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"2bU8Y\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $198828d4690f72ab$var$satisfies = (version, range, options)=>{\n try {\n range = new $4FTez(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $198828d4690f72ab$var$satisfies;\n\n});\n\nparcelRegister(\"eRnrA\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\n// Mostly just for testing and legacy API reasons\nconst $ad183366a1601ea2$var$toComparators = (range, options)=>new $4FTez(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $ad183366a1601ea2$var$toComparators;\n\n});\n\nparcelRegister(\"aAvhf\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $7b55873206bf39b9$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $4FTez(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $aMLnW(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $7b55873206bf39b9$var$maxSatisfying;\n\n});\n\nparcelRegister(\"iWAcu\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $dca9b97392366ccd$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $4FTez(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $aMLnW(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $dca9b97392366ccd$var$minSatisfying;\n\n});\n\nparcelRegister(\"32TwK\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\nconst $237ca191c3ae55cc$var$minVersion = (range, loose)=>{\n range = new $4FTez(range, loose);\n let minver = new $aMLnW(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $aMLnW(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $aMLnW(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cPjhN(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cPjhN(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $237ca191c3ae55cc$var$minVersion;\n\n});\n\nparcelRegister(\"194Ox\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $0d5a5dad0eeb3de1$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $4FTez(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $0d5a5dad0eeb3de1$var$validRange;\n\n});\n\nparcelRegister(\"a8VZj\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\nconst { ANY: $7627a1f1d8b68e56$var$ANY } = $dSz9p;\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\n\nvar $avz3V = parcelRequire(\"avz3V\");\n\nvar $8aNoG = parcelRequire(\"8aNoG\");\n\nvar $9xdhv = parcelRequire(\"9xdhv\");\nconst $7627a1f1d8b68e56$var$outside = (version, range, hilo, options)=>{\n version = new $aMLnW(version, options);\n range = new $4FTez(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cPjhN;\n ltefn = $8aNoG;\n ltfn = $avz3V;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $avz3V;\n ltefn = $9xdhv;\n ltfn = $cPjhN;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($2bU8Y(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $7627a1f1d8b68e56$var$ANY) comparator = new $dSz9p(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $7627a1f1d8b68e56$var$outside;\n\n});\n\nparcelRegister(\"2yv5J\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $a8VZj = parcelRequire(\"a8VZj\");\nconst $1dc6dfd60f6d4b61$var$gtr = (version, range, options)=>$a8VZj(version, range, \">\", options);\nmodule.exports = $1dc6dfd60f6d4b61$var$gtr;\n\n});\n\nparcelRegister(\"46KXA\", function(module, exports) {\n\nvar $a8VZj = parcelRequire(\"a8VZj\");\n// Determine if version is less than all the versions possible in the range\nconst $2fdc264220ba3549$var$ltr = (version, range, options)=>$a8VZj(version, range, \"<\", options);\nmodule.exports = $2fdc264220ba3549$var$ltr;\n\n});\n\nparcelRegister(\"e3Thp\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $a3cc39e8e39a0af8$var$intersects = (r1, r2, options)=>{\n r1 = new $4FTez(r1, options);\n r2 = new $4FTez(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $a3cc39e8e39a0af8$var$intersects;\n\n});\n\nparcelRegister(\"8g51l\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $3uysP = parcelRequire(\"3uysP\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$3uysP(a, b, options));\n for (const version of v){\n const included = $2bU8Y(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"96YVB\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\nconst { ANY: $6a23efa6855afc70$var$ANY } = $dSz9p;\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $3uysP = parcelRequire(\"3uysP\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $6a23efa6855afc70$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $4FTez(sub, options);\n dom = new $4FTez(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $6a23efa6855afc70$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $6a23efa6855afc70$var$minimumVersionWithPreRelease = [\n new $dSz9p(\">=0.0.0-0\")\n];\nconst $6a23efa6855afc70$var$minimumVersion = [\n new $dSz9p(\">=0.0.0\")\n];\nconst $6a23efa6855afc70$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $6a23efa6855afc70$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $6a23efa6855afc70$var$ANY) return true;\n else if (options.includePrerelease) sub = $6a23efa6855afc70$var$minimumVersionWithPreRelease;\n else sub = $6a23efa6855afc70$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $6a23efa6855afc70$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $6a23efa6855afc70$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $6a23efa6855afc70$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $6a23efa6855afc70$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $3uysP(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$2bU8Y(eq, String(gt), options)) return null;\n if (lt && !$2bU8Y(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$2bU8Y(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $6a23efa6855afc70$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$2bU8Y(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $6a23efa6855afc70$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$2bU8Y(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $6a23efa6855afc70$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $3uysP(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $6a23efa6855afc70$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $3uysP(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $6a23efa6855afc70$var$subset;\n\n});\n\n\nparcelRegister(\"i8A01\", function(module, exports) {\n\"use strict\";\nvar $d344e60cef0315df$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($d344e60cef0315df$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"kY0n1\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $f439b2cda090cb68$export$f8b9fb4db095815b);\n\nasync function $f439b2cda090cb68$export$f8b9fb4db095815b(path) {\n try {\n await (0, $d7DIX$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $f439b2cda090cb68$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($d7DIX$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"bzNgi\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $3294af0a12e8cafb$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $3294af0a12e8cafb$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $3294af0a12e8cafb$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $d7DIX$path.dirname);\n$parcel$export(module.exports, \"join\", () => $d7DIX$path.join);\n\n\nvar $iNGpn = parcelRequire(\"iNGpn\");\n\nvar $axeRu = parcelRequire(\"axeRu\");\nfunction $3294af0a12e8cafb$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $3294af0a12e8cafb$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $3294af0a12e8cafb$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $d7DIX$path.basename)(e) : (0, $d7DIX$path.basename)(e, (0, $d7DIX$path.extname)(e));\n}\nfunction $3294af0a12e8cafb$export$873fead74fe2f1ff(e) {\n return (0, $d7DIX$path.normalize)(e).replace(RegExp((0, $iNGpn.default)((0, $d7DIX$path.sep)) + \"$\"), \"\");\n}\nfunction $3294af0a12e8cafb$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3294af0a12e8cafb$export$3e333f8cb13439c(e, a) {\n const r = (0, $d7DIX$path.extname)(e), s = `${a}${(0, $d7DIX$path.basename)(e, r)}${r}`;\n return (0, $d7DIX$path.join)((0, $d7DIX$path.dirname)(e), s);\n}\nfunction $3294af0a12e8cafb$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $d7DIX$path.extname)(e), s = `${(0, $d7DIX$path.basename)(e, r)}${a}${r}`;\n return (0, $d7DIX$path.join)((0, $d7DIX$path.dirname)(e), s);\n}\nfunction $3294af0a12e8cafb$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3294af0a12e8cafb$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $3294af0a12e8cafb$export$19c5468f88f6e968(e) {\n const a = (0, $d7DIX$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $3294af0a12e8cafb$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($axeRu)))(e, a);\n}\nfunction $3294af0a12e8cafb$export$7d0573375890d05c(e, a) {\n const r = (0, $d7DIX$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $d7DIX$path.sep)) || r === (0, $d7DIX$path.resolve)(e));\n}\nvar $3294af0a12e8cafb$var$O = {}, $3294af0a12e8cafb$var$R = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$R, \"name\", ()=>$3294af0a12e8cafb$export$a8ff84c12d48cfa6);\nvar $3294af0a12e8cafb$var$A = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$A, \"normalizeTrim\", ()=>$3294af0a12e8cafb$export$873fead74fe2f1ff);\nvar $3294af0a12e8cafb$var$I = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$I, \"addExeExt\", ()=>$3294af0a12e8cafb$export$2d20c564cade3c93);\nvar $3294af0a12e8cafb$var$T = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$T, \"addNamePrefix\", ()=>$3294af0a12e8cafb$export$3e333f8cb13439c);\nvar $3294af0a12e8cafb$var$_ = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$_, \"addNameSuffix\", ()=>$3294af0a12e8cafb$export$3b60a3e9bd1aef9d);\nvar $3294af0a12e8cafb$var$k = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$k, \"addShExt\", ()=>$3294af0a12e8cafb$export$609be29b80b555e1);\nvar $3294af0a12e8cafb$var$M = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$M, \"addShRelativePrefix\", ()=>$3294af0a12e8cafb$export$e1f23f8d3e53fe6);\nvar $3294af0a12e8cafb$var$W = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$W, \"removeExt\", ()=>$3294af0a12e8cafb$export$19c5468f88f6e968);\nvar $3294af0a12e8cafb$var$q = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$q, \"replaceExt\", ()=>$3294af0a12e8cafb$export$e9c34737ac8e53d2);\nvar $3294af0a12e8cafb$var$B = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$B, \"isPathInside\", ()=>$3294af0a12e8cafb$export$7d0573375890d05c), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$R), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$A), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$I), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$T), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$_), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$k), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$M), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$W), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$q), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$B);\n\n});\nparcelRegister(\"iNGpn\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $dafdb304e43595c1$export$2e2bcd8739ae039);\nfunction $dafdb304e43595c1$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"axeRu\", function(module, exports) {\n\"use strict\";\n\nfunction $7ab883abb47fe1b1$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $d7DIX$path.basename(npath, $d7DIX$path.extname(npath)) + ext;\n var nFilepath = $d7DIX$path.join($d7DIX$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($7ab883abb47fe1b1$var$startsWithSingleDot(npath)) return \".\" + $d7DIX$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $7ab883abb47fe1b1$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $d7DIX$path.sep || first2chars === \"./\";\n}\nmodule.exports = $7ab883abb47fe1b1$var$replaceExt;\n\n});\n\n\nparcelRegister(\"hZdK0\", function(module, exports) {\n\"use strict\";\nvar $d182cae0c6b8c393$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d182cae0c6b8c393$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d182cae0c6b8c393$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d182cae0c6b8c393$var$__createBinding(result, mod, k);\n }\n $d182cae0c6b8c393$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d182cae0c6b8c393$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $d182cae0c6b8c393$var$path = $d182cae0c6b8c393$var$__importStar($d7DIX$path);\n\nconst $d182cae0c6b8c393$var$ioUtil = $d182cae0c6b8c393$var$__importStar((parcelRequire(\"ipB3d\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $d182cae0c6b8c393$var$cp(source, dest, options = {}) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $d182cae0c6b8c393$var$readCopyOptions(options);\n const destStat = (yield $d182cae0c6b8c393$var$ioUtil.exists(dest)) ? yield $d182cae0c6b8c393$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $d182cae0c6b8c393$var$path.join(dest, $d182cae0c6b8c393$var$path.basename(source)) : dest;\n if (!(yield $d182cae0c6b8c393$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $d182cae0c6b8c393$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $d182cae0c6b8c393$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($d182cae0c6b8c393$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $d182cae0c6b8c393$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $d182cae0c6b8c393$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $d182cae0c6b8c393$var$mv(source, dest, options = {}) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $d182cae0c6b8c393$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $d182cae0c6b8c393$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $d182cae0c6b8c393$var$path.join(dest, $d182cae0c6b8c393$var$path.basename(source));\n destExists = yield $d182cae0c6b8c393$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $d182cae0c6b8c393$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $d182cae0c6b8c393$var$mkdirP($d182cae0c6b8c393$var$path.dirname(dest));\n yield $d182cae0c6b8c393$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $d182cae0c6b8c393$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $d182cae0c6b8c393$var$rmRF(inputPath) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $d182cae0c6b8c393$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $d182cae0c6b8c393$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $d182cae0c6b8c393$var$mkdirP(fsPath) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n $d7DIX$assert.ok(fsPath, \"a path argument must be provided\");\n yield $d182cae0c6b8c393$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $d182cae0c6b8c393$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $d182cae0c6b8c393$var$which(tool, check) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $d182cae0c6b8c393$var$which(tool, false);\n if (!result) {\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $d182cae0c6b8c393$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $d182cae0c6b8c393$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $d182cae0c6b8c393$var$findInPath(tool) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($d182cae0c6b8c393$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($d182cae0c6b8c393$var$ioUtil.isRooted(tool)) {\n const filePath = yield $d182cae0c6b8c393$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($d182cae0c6b8c393$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($d182cae0c6b8c393$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $d182cae0c6b8c393$var$ioUtil.tryGetExecutablePath($d182cae0c6b8c393$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $d182cae0c6b8c393$var$findInPath;\nfunction $d182cae0c6b8c393$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $d182cae0c6b8c393$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $d182cae0c6b8c393$var$mkdirP(destDir);\n const files = yield $d182cae0c6b8c393$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $d182cae0c6b8c393$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $d182cae0c6b8c393$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $d182cae0c6b8c393$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $d182cae0c6b8c393$var$ioUtil.chmod(destDir, (yield $d182cae0c6b8c393$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $d182cae0c6b8c393$var$copyFile(srcFile, destFile, force) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $d182cae0c6b8c393$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $d182cae0c6b8c393$var$ioUtil.lstat(destFile);\n yield $d182cae0c6b8c393$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $d182cae0c6b8c393$var$ioUtil.chmod(destFile, \"0666\");\n yield $d182cae0c6b8c393$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $d182cae0c6b8c393$var$ioUtil.readlink(srcFile);\n yield $d182cae0c6b8c393$var$ioUtil.symlink(symlinkFull, destFile, $d182cae0c6b8c393$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $d182cae0c6b8c393$var$ioUtil.exists(destFile)) || force) yield $d182cae0c6b8c393$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"ipB3d\", function(module, exports) {\n\"use strict\";\nvar $d6774d525a29799d$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d6774d525a29799d$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d6774d525a29799d$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d6774d525a29799d$var$__createBinding(result, mod, k);\n }\n $d6774d525a29799d$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d6774d525a29799d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $d6774d525a29799d$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $d6774d525a29799d$var$fs = $d6774d525a29799d$var$__importStar($d7DIX$fs);\n\nconst $d6774d525a29799d$var$path = $d6774d525a29799d$var$__importStar($d7DIX$path);\n$d6774d525a29799d$var$_a = $d6774d525a29799d$var$fs.promises, module.exports.chmod = $d6774d525a29799d$var$_a.chmod, module.exports.copyFile = $d6774d525a29799d$var$_a.copyFile, module.exports.lstat = $d6774d525a29799d$var$_a.lstat, module.exports.mkdir = $d6774d525a29799d$var$_a.mkdir, module.exports.open = $d6774d525a29799d$var$_a.open, module.exports.readdir = $d6774d525a29799d$var$_a.readdir, module.exports.readlink = $d6774d525a29799d$var$_a.readlink, module.exports.rename = $d6774d525a29799d$var$_a.rename, module.exports.rm = $d6774d525a29799d$var$_a.rm, module.exports.rmdir = $d6774d525a29799d$var$_a.rmdir, module.exports.stat = $d6774d525a29799d$var$_a.stat, module.exports.symlink = $d6774d525a29799d$var$_a.symlink, module.exports.unlink = $d6774d525a29799d$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $d6774d525a29799d$var$fs.constants.O_RDONLY;\nfunction $d6774d525a29799d$var$exists(fsPath) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $d6774d525a29799d$var$exists;\nfunction $d6774d525a29799d$var$isDirectory(fsPath, useStat = false) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $d6774d525a29799d$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $d6774d525a29799d$var$isRooted(p) {\n p = $d6774d525a29799d$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $d6774d525a29799d$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $d6774d525a29799d$var$tryGetExecutablePath(filePath, extensions) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $d6774d525a29799d$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($d6774d525a29799d$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $d6774d525a29799d$var$path.dirname(filePath);\n const upperName = $d6774d525a29799d$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $d6774d525a29799d$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($d6774d525a29799d$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $d6774d525a29799d$var$tryGetExecutablePath;\nfunction $d6774d525a29799d$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $d6774d525a29799d$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $d6774d525a29799d$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $d6774d525a29799d$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"42L4Y\", function(module, exports) {\n\"use strict\";\nvar $2f1bde43f3e1d36b$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $2f1bde43f3e1d36b$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $2f1bde43f3e1d36b$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $2f1bde43f3e1d36b$var$__createBinding(result, mod, k);\n }\n $2f1bde43f3e1d36b$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $2f1bde43f3e1d36b$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $2f1bde43f3e1d36b$var$semver = $2f1bde43f3e1d36b$var$__importStar((parcelRequire(\"lroIv\")));\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\n\n\nfunction $2f1bde43f3e1d36b$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $2f1bde43f3e1d36b$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $d7DIX$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $4t50X.debug(`check ${version} satisfies ${versionSpec}`);\n if ($2f1bde43f3e1d36b$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $4t50X.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $2f1bde43f3e1d36b$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $4t50X.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $2f1bde43f3e1d36b$var$_findMatch;\nfunction $2f1bde43f3e1d36b$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $d7DIX$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $d7DIX$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $2f1bde43f3e1d36b$var$_getOsVersion;\nfunction $2f1bde43f3e1d36b$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($d7DIX$fs.existsSync(lsbReleaseFile)) contents = $d7DIX$fs.readFileSync(lsbReleaseFile).toString();\n else if ($d7DIX$fs.existsSync(osReleaseFile)) contents = $d7DIX$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $2f1bde43f3e1d36b$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"lroIv\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"eAF86\", function(module, exports) {\n\nvar $1W8as = parcelRequire(\"1W8as\");\n\nvar $hTpVN = parcelRequire(\"hTpVN\");\nfunction $a9f454f8e288d649$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $1W8as)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $hTpVN(rnds);\n}\nmodule.exports = $a9f454f8e288d649$var$v4;\n\n});\nparcelRegister(\"1W8as\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $d7DIX$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"hTpVN\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $d06bb019f71e9144$var$byteToHex = [];\nfor(var $d06bb019f71e9144$var$i = 0; $d06bb019f71e9144$var$i < 256; ++$d06bb019f71e9144$var$i)$d06bb019f71e9144$var$byteToHex[$d06bb019f71e9144$var$i] = ($d06bb019f71e9144$var$i + 0x100).toString(16).substr(1);\nfunction $d06bb019f71e9144$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $d06bb019f71e9144$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $d06bb019f71e9144$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"1f6JF\", function(module, exports) {\n\"use strict\";\nvar $0e7c6aae7f120a88$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $0e7c6aae7f120a88$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $0e7c6aae7f120a88$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $0e7c6aae7f120a88$var$__createBinding(result, mod, k);\n }\n $0e7c6aae7f120a88$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $0e7c6aae7f120a88$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $0e7c6aae7f120a88$var$tr = $0e7c6aae7f120a88$var$__importStar((parcelRequire(\"4B2AJ\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $0e7c6aae7f120a88$var$exec(commandLine, args, options) {\n return $0e7c6aae7f120a88$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $0e7c6aae7f120a88$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $0e7c6aae7f120a88$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $0e7c6aae7f120a88$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $0e7c6aae7f120a88$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $0e7c6aae7f120a88$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $d7DIX$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $d7DIX$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $0e7c6aae7f120a88$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $0e7c6aae7f120a88$var$getExecOutput;\n\n});\nparcelRegister(\"4B2AJ\", function(module, exports) {\n\"use strict\";\nvar $358ca0c13f34538f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $358ca0c13f34538f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $358ca0c13f34538f$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $358ca0c13f34538f$var$__createBinding(result, mod, k);\n }\n $358ca0c13f34538f$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $358ca0c13f34538f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $358ca0c13f34538f$var$os = $358ca0c13f34538f$var$__importStar($d7DIX$os);\n\nconst $358ca0c13f34538f$var$events = $358ca0c13f34538f$var$__importStar($d7DIX$events);\n\nconst $358ca0c13f34538f$var$child = $358ca0c13f34538f$var$__importStar($d7DIX$child_process);\n\nconst $358ca0c13f34538f$var$path = $358ca0c13f34538f$var$__importStar($d7DIX$path);\n\nconst $358ca0c13f34538f$var$io = $358ca0c13f34538f$var$__importStar((parcelRequire(\"hZdK0\")));\n\nconst $358ca0c13f34538f$var$ioUtil = $358ca0c13f34538f$var$__importStar((parcelRequire(\"ipB3d\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $358ca0c13f34538f$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $358ca0c13f34538f$var$ToolRunner extends $358ca0c13f34538f$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($358ca0c13f34538f$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $358ca0c13f34538f$var$os.EOL.length);\n n = s.indexOf($358ca0c13f34538f$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $358ca0c13f34538f$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$358ca0c13f34538f$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $358ca0c13f34538f$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $358ca0c13f34538f$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $358ca0c13f34538f$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$358ca0c13f34538f$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $358ca0c13f34538f$var$os.EOL);\n const state = new $358ca0c13f34538f$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $358ca0c13f34538f$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $358ca0c13f34538f$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $358ca0c13f34538f$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $358ca0c13f34538f$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $358ca0c13f34538f$var$argStringToArray;\nclass $358ca0c13f34538f$var$ExecState extends $358ca0c13f34538f$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $d7DIX$timers.setTimeout($358ca0c13f34538f$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"4JiFg\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.6be0dfa4.js\")).then(()=>parcelRequire(\"4kQHk\"));\n\n});\n\nparcelRegister(\"i9SYz\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $d383b6561dce1487$export$1059c6e7d2ce5669, (v) => $d383b6561dce1487$export$1059c6e7d2ce5669 = v);\nvar $d383b6561dce1487$export$181392475aa39887;\nvar $d383b6561dce1487$export$ba13e0e2f19e61a1;\nvar $d383b6561dce1487$export$1059c6e7d2ce5669;\n\nvar $12jBw = parcelRequire(\"12jBw\");\n\nvar $fSAop = parcelRequire(\"fSAop\");\n\nvar $g5ebD = parcelRequire(\"g5ebD\");\n\nvar $gqQA6 = parcelRequire(\"gqQA6\");\nvar $d383b6561dce1487$var$DOMImplementation = $fSAop.DOMImplementation;\nvar $d383b6561dce1487$var$NAMESPACE = $12jBw.NAMESPACE;\nvar $d383b6561dce1487$var$ParseError = $gqQA6.ParseError;\nvar $d383b6561dce1487$var$XMLReader = $gqQA6.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $d383b6561dce1487$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $d383b6561dce1487$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$d383b6561dce1487$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $d383b6561dce1487$var$XMLReader();\n var domBuilder = options.domBuilder || new $d383b6561dce1487$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $g5ebD.HTML_ENTITIES : $g5ebD.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $d383b6561dce1487$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $d383b6561dce1487$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $d383b6561dce1487$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $d383b6561dce1487$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $d383b6561dce1487$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $d383b6561dce1487$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $d383b6561dce1487$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $d383b6561dce1487$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $d383b6561dce1487$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $d383b6561dce1487$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $d383b6561dce1487$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $d383b6561dce1487$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $d383b6561dce1487$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $d383b6561dce1487$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $d383b6561dce1487$var$position(this.locator, ins);\n $d383b6561dce1487$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $d383b6561dce1487$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $d383b6561dce1487$var$position(this.locator, comm);\n $d383b6561dce1487$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $d383b6561dce1487$var$position(this.locator, dt);\n $d383b6561dce1487$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $d383b6561dce1487$var$ParseError(error, this.locator);\n }\n};\nfunction $d383b6561dce1487$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $d383b6561dce1487$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $d383b6561dce1487$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $d383b6561dce1487$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$d383b6561dce1487$export$181392475aa39887 = $d383b6561dce1487$var$DOMHandler;\n$d383b6561dce1487$export$ba13e0e2f19e61a1 = $d383b6561dce1487$var$normalizeLineEndings;\n$d383b6561dce1487$export$1059c6e7d2ce5669 = $d383b6561dce1487$var$DOMParser;\n\n});\nparcelRegister(\"12jBw\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $0c152f5a1a56ce9f$export$71aa6c912b956294, (v) => $0c152f5a1a56ce9f$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $0c152f5a1a56ce9f$export$792f3d81ea979f55, (v) => $0c152f5a1a56ce9f$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $0c152f5a1a56ce9f$export$6aad947bda0f3f46, (v) => $0c152f5a1a56ce9f$export$6aad947bda0f3f46 = v);\nvar $0c152f5a1a56ce9f$export$e6e34fd1f2686227;\nvar $0c152f5a1a56ce9f$export$71aa6c912b956294;\nvar $0c152f5a1a56ce9f$export$792f3d81ea979f55;\nvar $0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa;\nvar $0c152f5a1a56ce9f$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $0c152f5a1a56ce9f$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $0c152f5a1a56ce9f$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $0c152f5a1a56ce9f$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $0c152f5a1a56ce9f$var$MIME_TYPE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $0c152f5a1a56ce9f$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $0c152f5a1a56ce9f$var$NAMESPACE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $0c152f5a1a56ce9f$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$0c152f5a1a56ce9f$export$e6e34fd1f2686227 = $0c152f5a1a56ce9f$var$assign;\n$0c152f5a1a56ce9f$export$71aa6c912b956294 = $0c152f5a1a56ce9f$var$find;\n$0c152f5a1a56ce9f$export$792f3d81ea979f55 = $0c152f5a1a56ce9f$var$freeze;\n$0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa = $0c152f5a1a56ce9f$var$MIME_TYPE;\n$0c152f5a1a56ce9f$export$6aad947bda0f3f46 = $0c152f5a1a56ce9f$var$NAMESPACE;\n\n});\n\nparcelRegister(\"fSAop\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $b8f821026a6eb0fb$export$455426655eab1d48, (v) => $b8f821026a6eb0fb$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24, (v) => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $b8f821026a6eb0fb$export$d1d99cf900472499;\nvar $b8f821026a6eb0fb$export$fe58bcf938607f6a;\nvar $b8f821026a6eb0fb$export$455426655eab1d48;\nvar $b8f821026a6eb0fb$export$db77ccec0bb4ccac;\nvar $b8f821026a6eb0fb$export$85c928794f8d04d4;\nvar $b8f821026a6eb0fb$export$79b41aa5d56abdff;\nvar $b8f821026a6eb0fb$export$64f0bed4ae6f0f24;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $b8f821026a6eb0fb$var$find = $12jBw.find;\nvar $b8f821026a6eb0fb$var$NAMESPACE = $12jBw.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($b8f821026a6eb0fb$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $b8f821026a6eb0fb$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $b8f821026a6eb0fb$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($b8f821026a6eb0fb$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $b8f821026a6eb0fb$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $b8f821026a6eb0fb$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $b8f821026a6eb0fb$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $b8f821026a6eb0fb$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $b8f821026a6eb0fb$var$NodeType = {};\nvar $b8f821026a6eb0fb$var$ELEMENT_NODE = $b8f821026a6eb0fb$var$NodeType.ELEMENT_NODE = 1;\nvar $b8f821026a6eb0fb$var$ATTRIBUTE_NODE = $b8f821026a6eb0fb$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $b8f821026a6eb0fb$var$TEXT_NODE = $b8f821026a6eb0fb$var$NodeType.TEXT_NODE = 3;\nvar $b8f821026a6eb0fb$var$CDATA_SECTION_NODE = $b8f821026a6eb0fb$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $b8f821026a6eb0fb$var$ENTITY_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_NODE = 6;\nvar $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE = $b8f821026a6eb0fb$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $b8f821026a6eb0fb$var$COMMENT_NODE = $b8f821026a6eb0fb$var$NodeType.COMMENT_NODE = 8;\nvar $b8f821026a6eb0fb$var$DOCUMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_NODE = 9;\nvar $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $b8f821026a6eb0fb$var$NOTATION_NODE = $b8f821026a6eb0fb$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $b8f821026a6eb0fb$var$ExceptionCode = {};\nvar $b8f821026a6eb0fb$var$ExceptionMessage = {};\nvar $b8f821026a6eb0fb$var$INDEX_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INDEX_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $b8f821026a6eb0fb$var$DOMSTRING_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR = $b8f821026a6eb0fb$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $b8f821026a6eb0fb$var$WRONG_DOCUMENT_ERR = $b8f821026a6eb0fb$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $b8f821026a6eb0fb$var$INVALID_CHARACTER_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_CHARACTER_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $b8f821026a6eb0fb$var$NO_DATA_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $b8f821026a6eb0fb$var$NO_MODIFICATION_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $b8f821026a6eb0fb$var$NOT_FOUND_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_FOUND_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $b8f821026a6eb0fb$var$NOT_SUPPORTED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_SUPPORTED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $b8f821026a6eb0fb$var$INVALID_STATE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_STATE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $b8f821026a6eb0fb$var$SYNTAX_ERR = $b8f821026a6eb0fb$var$ExceptionCode.SYNTAX_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $b8f821026a6eb0fb$var$INVALID_MODIFICATION_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $b8f821026a6eb0fb$var$NAMESPACE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NAMESPACE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $b8f821026a6eb0fb$var$INVALID_ACCESS_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_ACCESS_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $b8f821026a6eb0fb$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $b8f821026a6eb0fb$var$ExceptionMessage[code]);\n this.message = $b8f821026a6eb0fb$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $b8f821026a6eb0fb$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$b8f821026a6eb0fb$var$DOMException.prototype = Error.prototype;\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$ExceptionCode, $b8f821026a6eb0fb$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $b8f821026a6eb0fb$var$NodeList() {}\n$b8f821026a6eb0fb$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$b8f821026a6eb0fb$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $b8f821026a6eb0fb$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n}\nfunction $b8f821026a6eb0fb$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $b8f821026a6eb0fb$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $b8f821026a6eb0fb$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$b8f821026a6eb0fb$var$LiveNodeList.prototype.item = function(i) {\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n return this[i] || null;\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$LiveNodeList, $b8f821026a6eb0fb$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $b8f821026a6eb0fb$var$NamedNodeMap() {}\nfunction $b8f821026a6eb0fb$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $b8f821026a6eb0fb$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$b8f821026a6eb0fb$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, oldAttr);\n $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $b8f821026a6eb0fb$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $b8f821026a6eb0fb$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$b8f821026a6eb0fb$var$NamedNodeMap.prototype = {\n length: 0,\n item: $b8f821026a6eb0fb$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $b8f821026a6eb0fb$var$DOMImplementation() {}\n$b8f821026a6eb0fb$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $b8f821026a6eb0fb$var$Document();\n doc.implementation = this;\n doc.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $b8f821026a6eb0fb$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $b8f821026a6eb0fb$var$Node() {}\n$b8f821026a6eb0fb$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $b8f821026a6eb0fb$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE && child.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $b8f821026a6eb0fb$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node);\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $b8f821026a6eb0fb$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($b8f821026a6eb0fb$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $b8f821026a6eb0fb$var$Document() {\n this.ownerDocument = this;\n}\nfunction $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $b8f821026a6eb0fb$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $b8f821026a6eb0fb$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasInsertableNodeType(node) {\n return node && ($b8f821026a6eb0fb$var$isElementNode(node) || $b8f821026a6eb0fb$var$isTextNode(node) || $b8f821026a6eb0fb$var$isDocTypeNode(node) || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.COMMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isDocTypeNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isElementNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isTextNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode) || $b8f821026a6eb0fb$var$isDocTypeNode(child)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isElementNode(node) && node !== child;\n }\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$b8f821026a6eb0fb$var$hasValidParentNodeType(parent)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$b8f821026a6eb0fb$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $b8f821026a6eb0fb$var$isDocTypeNode(node) && parent.nodeType !== $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $b8f821026a6eb0fb$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $b8f821026a6eb0fb$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$b8f821026a6eb0fb$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $b8f821026a6eb0fb$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($b8f821026a6eb0fb$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $b8f821026a6eb0fb$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $b8f821026a6eb0fb$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(classNames);\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $b8f821026a6eb0fb$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($b8f821026a6eb0fb$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $b8f821026a6eb0fb$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $b8f821026a6eb0fb$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $b8f821026a6eb0fb$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $b8f821026a6eb0fb$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $b8f821026a6eb0fb$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $b8f821026a6eb0fb$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Document, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Element() {\n this._nsMap = {};\n}\n$b8f821026a6eb0fb$var$Element.prototype = {\n nodeType: $b8f821026a6eb0fb$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $b8f821026a6eb0fb$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagName = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagName;\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagNameNS = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagNameNS;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Element, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Attr() {}\n$b8f821026a6eb0fb$var$Attr.prototype.nodeType = $b8f821026a6eb0fb$var$ATTRIBUTE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Attr, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$CharacterData() {}\n$b8f821026a6eb0fb$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($b8f821026a6eb0fb$var$ExceptionMessage[$b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CharacterData, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Text() {}\n$b8f821026a6eb0fb$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $b8f821026a6eb0fb$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Text, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$Comment() {}\n$b8f821026a6eb0fb$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $b8f821026a6eb0fb$var$COMMENT_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Comment, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$CDATASection() {}\n$b8f821026a6eb0fb$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $b8f821026a6eb0fb$var$CDATA_SECTION_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CDATASection, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$DocumentType() {}\n$b8f821026a6eb0fb$var$DocumentType.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentType, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Notation() {}\n$b8f821026a6eb0fb$var$Notation.prototype.nodeType = $b8f821026a6eb0fb$var$NOTATION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Notation, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Entity() {}\n$b8f821026a6eb0fb$var$Entity.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Entity, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$EntityReference() {}\n$b8f821026a6eb0fb$var$EntityReference.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$EntityReference, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$DocumentFragment() {}\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentFragment, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$ProcessingInstruction() {}\n$b8f821026a6eb0fb$var$ProcessingInstruction.prototype.nodeType = $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$ProcessingInstruction, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$XMLSerializer() {}\n$b8f821026a6eb0fb$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $b8f821026a6eb0fb$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$b8f821026a6eb0fb$var$Node.prototype.toString = $b8f821026a6eb0fb$var$nodeSerializeToString;\nfunction $b8f821026a6eb0fb$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $b8f821026a6eb0fb$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $b8f821026a6eb0fb$var$NAMESPACE.XML || uri === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $b8f821026a6eb0fb$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $b8f821026a6eb0fb$var$_xmlEncoder), '\"');\n}\nfunction $b8f821026a6eb0fb$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $b8f821026a6eb0fb$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($b8f821026a6eb0fb$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $b8f821026a6eb0fb$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $b8f821026a6eb0fb$var$DOCUMENT_NODE:\n case $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $b8f821026a6eb0fb$var$ATTRIBUTE_NODE:\n return $b8f821026a6eb0fb$var$addSerializedAttribute(buf, node.name, node.value);\n case $b8f821026a6eb0fb$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $b8f821026a6eb0fb$var$_xmlEncoder));\n case $b8f821026a6eb0fb$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$COMMENT_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $b8f821026a6eb0fb$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $bb581e29d81da91f$export$91f0e5ff03dc84f, (v) => $bb581e29d81da91f$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $bb581e29d81da91f$export$b7e4d4631df36afa, (v) => $bb581e29d81da91f$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $bb581e29d81da91f$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $bb581e29d81da91f$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $bb581e29d81da91f$export$79451380caed3f98;\n\"use strict\";\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bb581e29d81da91f$require$freeze = $12jBw.freeze;\n$bb581e29d81da91f$export$91f0e5ff03dc84f = $bb581e29d81da91f$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$bb581e29d81da91f$export$b7e4d4631df36afa = $bb581e29d81da91f$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$bb581e29d81da91f$export$79451380caed3f98 = $bb581e29d81da91f$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"gqQA6\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9, (v) => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $bf67dc97ecf5e14f$export$f9c837a54db411d, (v) => $bf67dc97ecf5e14f$export$f9c837a54db411d = v);\nvar $bf67dc97ecf5e14f$export$ccbc9f9f018333e9;\nvar $bf67dc97ecf5e14f$export$f9c837a54db411d;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bf67dc97ecf5e14f$require$NAMESPACE = $12jBw.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $bf67dc97ecf5e14f$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $bf67dc97ecf5e14f$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $bf67dc97ecf5e14f$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $bf67dc97ecf5e14f$var$tagNamePattern = new RegExp(\"^\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*(?::\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $bf67dc97ecf5e14f$var$S_TAG = 0; //tag name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR = 1; //attr name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $bf67dc97ecf5e14f$var$S_EQ = 3; //=space?\nvar $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $bf67dc97ecf5e14f$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $bf67dc97ecf5e14f$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $bf67dc97ecf5e14f$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $bf67dc97ecf5e14f$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $bf67dc97ecf5e14f$var$ParseError);\n}\n$bf67dc97ecf5e14f$var$ParseError.prototype = new Error();\n$bf67dc97ecf5e14f$var$ParseError.prototype.name = $bf67dc97ecf5e14f$var$ParseError.name;\nfunction $bf67dc97ecf5e14f$var$XMLReader() {}\n$bf67dc97ecf5e14f$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $bf67dc97ecf5e14f$var$_copy(defaultNSMap, defaultNSMap = {});\n $bf67dc97ecf5e14f$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $bf67dc97ecf5e14f$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $bf67dc97ecf5e14f$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $bf67dc97ecf5e14f$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $bf67dc97ecf5e14f$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_EQ;\n } else if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) s = $bf67dc97ecf5e14f$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $bf67dc97ecf5e14f$var$S_EQ || s === $bf67dc97ecf5e14f$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n s = $bf67dc97ecf5e14f$var$S_TAG_CLOSE;\n el.closed = true;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $bf67dc97ecf5e14f$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n break; //normal\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) value = attrName;\n if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_ATTR_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n s = $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $bf67dc97ecf5e14f$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $bf67dc97ecf5e14f$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $bf67dc97ecf5e14f$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $bf67dc97ecf5e14f$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.6be0dfa4.js\"))).then(() => parcelRequire('4kQHk'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst $3675d6171478137e$var$replaceTildes = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceTilde(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceTilde = (comp, options)=>{\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.TILDELOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.TILDE];\n return comp.replace(r, (_, M, m, p, pr)=>{\n $3CqZ1(\"tilde\", comp, _, M, m, p, pr);\n let ret;\n if ($3675d6171478137e$var$isX(M)) ret = \"\";\n else if ($3675d6171478137e$var$isX(m)) ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(p)) // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n else if (pr) {\n $3CqZ1(\"replaceTilde pr\", pr);\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n $3CqZ1(\"tilde return\", ret);\n return ret;\n });\n};\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst $3675d6171478137e$var$replaceCarets = (comp, options)=>{\n return comp.trim().split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceCaret(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceCaret = (comp, options)=>{\n $3CqZ1(\"caret\", comp, options);\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.CARETLOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.CARET];\n const z = options.includePrerelease ? \"-0\" : \"\";\n return comp.replace(r, (_, M, m, p, pr)=>{\n $3CqZ1(\"caret\", comp, _, M, m, p, pr);\n let ret;\n if ($3675d6171478137e$var$isX(M)) ret = \"\";\n else if ($3675d6171478137e$var$isX(m)) ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(p)) {\n if (M === \"0\") ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n else ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n } else if (pr) {\n $3CqZ1(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n } else {\n $3CqZ1(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n else ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n } else ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n $3CqZ1(\"caret return\", ret);\n return ret;\n });\n};\nconst $3675d6171478137e$var$replaceXRanges = (comp, options)=>{\n $3CqZ1(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map((c)=>$3675d6171478137e$var$replaceXRange(c, options)).join(\" \");\n};\nconst $3675d6171478137e$var$replaceXRange = (comp, options)=>{\n comp = comp.trim();\n const r = options.loose ? $3675d6171478137e$require$re[$3675d6171478137e$require$t.XRANGELOOSE] : $3675d6171478137e$require$re[$3675d6171478137e$require$t.XRANGE];\n return comp.replace(r, (ret, gtlt, M, m, p, pr)=>{\n $3CqZ1(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n const xM = $3675d6171478137e$var$isX(M);\n const xm = xM || $3675d6171478137e$var$isX(m);\n const xp = xm || $3675d6171478137e$var$isX(p);\n const anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n if (gtlt === \"<\") pr = \"-0\";\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n else if (xp) ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n $3CqZ1(\"xRange return\", ret);\n return ret;\n });\n};\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst $3675d6171478137e$var$replaceStars = (comp, options)=>{\n $3CqZ1(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace($3675d6171478137e$require$re[$3675d6171478137e$require$t.STAR], \"\");\n};\nconst $3675d6171478137e$var$replaceGTE0 = (comp, options)=>{\n $3CqZ1(\"replaceGTE0\", comp, options);\n return comp.trim().replace($3675d6171478137e$require$re[options.includePrerelease ? $3675d6171478137e$require$t.GTE0PRE : $3675d6171478137e$require$t.GTE0], \"\");\n};\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst $3675d6171478137e$var$hyphenReplace = (incPr)=>($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb)=>{\n if ($3675d6171478137e$var$isX(fM)) from = \"\";\n else if ($3675d6171478137e$var$isX(fm)) from = `>=${fM}.0.0${incPr ? \"-0\" : \"\"}`;\n else if ($3675d6171478137e$var$isX(fp)) from = `>=${fM}.${fm}.0${incPr ? \"-0\" : \"\"}`;\n else if (fpr) from = `>=${from}`;\n else from = `>=${from}${incPr ? \"-0\" : \"\"}`;\n if ($3675d6171478137e$var$isX(tM)) to = \"\";\n else if ($3675d6171478137e$var$isX(tm)) to = `<${+tM + 1}.0.0-0`;\n else if ($3675d6171478137e$var$isX(tp)) to = `<${tM}.${+tm + 1}.0-0`;\n else if (tpr) to = `<=${tM}.${tm}.${tp}-${tpr}`;\n else if (incPr) to = `<${tM}.${tm}.${+tp + 1}-0`;\n else to = `<=${to}`;\n return `${from} ${to}`.trim();\n };\nconst $3675d6171478137e$var$testSet = (set, version, options)=>{\n for(let i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(let i = 0; i < set.length; i++){\n $3CqZ1(set[i].semver);\n if (set[i].semver === $dSz9p.ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n};\n\n});\nparcelRegister(\"eGCLk\", function(module, exports) {\n\"use strict\";\n\nvar $JD6z9 = parcelRequire(\"JD6z9\");\nconst $ab130e548a2d4b38$var$MAX = Symbol(\"max\");\nconst $ab130e548a2d4b38$var$LENGTH = Symbol(\"length\");\nconst $ab130e548a2d4b38$var$LENGTH_CALCULATOR = Symbol(\"lengthCalculator\");\nconst $ab130e548a2d4b38$var$ALLOW_STALE = Symbol(\"allowStale\");\nconst $ab130e548a2d4b38$var$MAX_AGE = Symbol(\"maxAge\");\nconst $ab130e548a2d4b38$var$DISPOSE = Symbol(\"dispose\");\nconst $ab130e548a2d4b38$var$NO_DISPOSE_ON_SET = Symbol(\"noDisposeOnSet\");\nconst $ab130e548a2d4b38$var$LRU_LIST = Symbol(\"lruList\");\nconst $ab130e548a2d4b38$var$CACHE = Symbol(\"cache\");\nconst $ab130e548a2d4b38$var$UPDATE_AGE_ON_GET = Symbol(\"updateAgeOnGet\");\nconst $ab130e548a2d4b38$var$naiveLength = ()=>1;\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass $ab130e548a2d4b38$var$LRUCache {\n constructor(options){\n if (typeof options === \"number\") options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== \"number\" || options.max < 0)) throw new TypeError(\"max must be a non-negative number\");\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[$ab130e548a2d4b38$var$MAX] = options.max || Infinity;\n const lc = options.length || $ab130e548a2d4b38$var$naiveLength;\n this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR] = typeof lc !== \"function\" ? $ab130e548a2d4b38$var$naiveLength : lc;\n this[$ab130e548a2d4b38$var$ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n this[$ab130e548a2d4b38$var$MAX_AGE] = options.maxAge || 0;\n this[$ab130e548a2d4b38$var$DISPOSE] = options.dispose;\n this[$ab130e548a2d4b38$var$NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[$ab130e548a2d4b38$var$UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n }\n // resize the cache when the max changes.\n set max(mL) {\n if (typeof mL !== \"number\" || mL < 0) throw new TypeError(\"max must be a non-negative number\");\n this[$ab130e548a2d4b38$var$MAX] = mL || Infinity;\n $ab130e548a2d4b38$var$trim(this);\n }\n get max() {\n return this[$ab130e548a2d4b38$var$MAX];\n }\n set allowStale(allowStale) {\n this[$ab130e548a2d4b38$var$ALLOW_STALE] = !!allowStale;\n }\n get allowStale() {\n return this[$ab130e548a2d4b38$var$ALLOW_STALE];\n }\n set maxAge(mA) {\n if (typeof mA !== \"number\") throw new TypeError(\"maxAge must be a non-negative number\");\n this[$ab130e548a2d4b38$var$MAX_AGE] = mA;\n $ab130e548a2d4b38$var$trim(this);\n }\n get maxAge() {\n return this[$ab130e548a2d4b38$var$MAX_AGE];\n }\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator(lC) {\n if (typeof lC !== \"function\") lC = $ab130e548a2d4b38$var$naiveLength;\n if (lC !== this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR]) {\n this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR] = lC;\n this[$ab130e548a2d4b38$var$LENGTH] = 0;\n this[$ab130e548a2d4b38$var$LRU_LIST].forEach((hit)=>{\n hit.length = this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR](hit.value, hit.key);\n this[$ab130e548a2d4b38$var$LENGTH] += hit.length;\n });\n }\n $ab130e548a2d4b38$var$trim(this);\n }\n get lengthCalculator() {\n return this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR];\n }\n get length() {\n return this[$ab130e548a2d4b38$var$LENGTH];\n }\n get itemCount() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].length;\n }\n rforEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$ab130e548a2d4b38$var$LRU_LIST].tail; walker !== null;){\n const prev = walker.prev;\n $ab130e548a2d4b38$var$forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n forEach(fn, thisp) {\n thisp = thisp || this;\n for(let walker = this[$ab130e548a2d4b38$var$LRU_LIST].head; walker !== null;){\n const next = walker.next;\n $ab130e548a2d4b38$var$forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n keys() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].toArray().map((k)=>k.key);\n }\n values() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].toArray().map((k)=>k.value);\n }\n reset() {\n if (this[$ab130e548a2d4b38$var$DISPOSE] && this[$ab130e548a2d4b38$var$LRU_LIST] && this[$ab130e548a2d4b38$var$LRU_LIST].length) this[$ab130e548a2d4b38$var$LRU_LIST].forEach((hit)=>this[$ab130e548a2d4b38$var$DISPOSE](hit.key, hit.value));\n this[$ab130e548a2d4b38$var$CACHE] = new Map() // hash of items by key\n ;\n this[$ab130e548a2d4b38$var$LRU_LIST] = new $JD6z9() // list of items in order of use recency\n ;\n this[$ab130e548a2d4b38$var$LENGTH] = 0 // length of items in the list\n ;\n }\n dump() {\n return this[$ab130e548a2d4b38$var$LRU_LIST].map((hit)=>$ab130e548a2d4b38$var$isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter((h)=>h);\n }\n dumpLru() {\n return this[$ab130e548a2d4b38$var$LRU_LIST];\n }\n set(key, value, maxAge) {\n maxAge = maxAge || this[$ab130e548a2d4b38$var$MAX_AGE];\n if (maxAge && typeof maxAge !== \"number\") throw new TypeError(\"maxAge must be a number\");\n const now = maxAge ? Date.now() : 0;\n const len = this[$ab130e548a2d4b38$var$LENGTH_CALCULATOR](value, key);\n if (this[$ab130e548a2d4b38$var$CACHE].has(key)) {\n if (len > this[$ab130e548a2d4b38$var$MAX]) {\n $ab130e548a2d4b38$var$del(this, this[$ab130e548a2d4b38$var$CACHE].get(key));\n return false;\n }\n const node = this[$ab130e548a2d4b38$var$CACHE].get(key);\n const item = node.value;\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[$ab130e548a2d4b38$var$DISPOSE]) {\n if (!this[$ab130e548a2d4b38$var$NO_DISPOSE_ON_SET]) this[$ab130e548a2d4b38$var$DISPOSE](key, item.value);\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[$ab130e548a2d4b38$var$LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n $ab130e548a2d4b38$var$trim(this);\n return true;\n }\n const hit = new $ab130e548a2d4b38$var$Entry(key, value, len, now, maxAge);\n // oversized objects fall out of cache automatically.\n if (hit.length > this[$ab130e548a2d4b38$var$MAX]) {\n if (this[$ab130e548a2d4b38$var$DISPOSE]) this[$ab130e548a2d4b38$var$DISPOSE](key, value);\n return false;\n }\n this[$ab130e548a2d4b38$var$LENGTH] += hit.length;\n this[$ab130e548a2d4b38$var$LRU_LIST].unshift(hit);\n this[$ab130e548a2d4b38$var$CACHE].set(key, this[$ab130e548a2d4b38$var$LRU_LIST].head);\n $ab130e548a2d4b38$var$trim(this);\n return true;\n }\n has(key) {\n if (!this[$ab130e548a2d4b38$var$CACHE].has(key)) return false;\n const hit = this[$ab130e548a2d4b38$var$CACHE].get(key).value;\n return !$ab130e548a2d4b38$var$isStale(this, hit);\n }\n get(key) {\n return $ab130e548a2d4b38$var$get(this, key, true);\n }\n peek(key) {\n return $ab130e548a2d4b38$var$get(this, key, false);\n }\n pop() {\n const node = this[$ab130e548a2d4b38$var$LRU_LIST].tail;\n if (!node) return null;\n $ab130e548a2d4b38$var$del(this, node);\n return node.value;\n }\n del(key) {\n $ab130e548a2d4b38$var$del(this, this[$ab130e548a2d4b38$var$CACHE].get(key));\n }\n load(arr) {\n // reset the cache\n this.reset();\n const now = Date.now();\n // A previous serialized cache has the most recent items first\n for(let l = arr.length - 1; l >= 0; l--){\n const hit = arr[l];\n const expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);\n else {\n const maxAge = expiresAt - now;\n // dont add already expired items\n if (maxAge > 0) this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n prune() {\n this[$ab130e548a2d4b38$var$CACHE].forEach((value, key)=>$ab130e548a2d4b38$var$get(this, key, false));\n }\n}\nconst $ab130e548a2d4b38$var$get = (self, key, doUse)=>{\n const node = self[$ab130e548a2d4b38$var$CACHE].get(key);\n if (node) {\n const hit = node.value;\n if ($ab130e548a2d4b38$var$isStale(self, hit)) {\n $ab130e548a2d4b38$var$del(self, node);\n if (!self[$ab130e548a2d4b38$var$ALLOW_STALE]) return undefined;\n } else if (doUse) {\n if (self[$ab130e548a2d4b38$var$UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[$ab130e548a2d4b38$var$LRU_LIST].unshiftNode(node);\n }\n return hit.value;\n }\n};\nconst $ab130e548a2d4b38$var$isStale = (self, hit)=>{\n if (!hit || !hit.maxAge && !self[$ab130e548a2d4b38$var$MAX_AGE]) return false;\n const diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[$ab130e548a2d4b38$var$MAX_AGE] && diff > self[$ab130e548a2d4b38$var$MAX_AGE];\n};\nconst $ab130e548a2d4b38$var$trim = (self)=>{\n if (self[$ab130e548a2d4b38$var$LENGTH] > self[$ab130e548a2d4b38$var$MAX]) for(let walker = self[$ab130e548a2d4b38$var$LRU_LIST].tail; self[$ab130e548a2d4b38$var$LENGTH] > self[$ab130e548a2d4b38$var$MAX] && walker !== null;){\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev;\n $ab130e548a2d4b38$var$del(self, walker);\n walker = prev;\n }\n};\nconst $ab130e548a2d4b38$var$del = (self, node)=>{\n if (node) {\n const hit = node.value;\n if (self[$ab130e548a2d4b38$var$DISPOSE]) self[$ab130e548a2d4b38$var$DISPOSE](hit.key, hit.value);\n self[$ab130e548a2d4b38$var$LENGTH] -= hit.length;\n self[$ab130e548a2d4b38$var$CACHE].delete(hit.key);\n self[$ab130e548a2d4b38$var$LRU_LIST].removeNode(node);\n }\n};\nclass $ab130e548a2d4b38$var$Entry {\n constructor(key, value, length, now, maxAge){\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n}\nconst $ab130e548a2d4b38$var$forEachStep = (self, fn, node, thisp)=>{\n let hit = node.value;\n if ($ab130e548a2d4b38$var$isStale(self, hit)) {\n $ab130e548a2d4b38$var$del(self, node);\n if (!self[$ab130e548a2d4b38$var$ALLOW_STALE]) hit = undefined;\n }\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\nmodule.exports = $ab130e548a2d4b38$var$LRUCache;\n\n});\nparcelRegister(\"JD6z9\", function(module, exports) {\n\"use strict\";\nmodule.exports = $08928980bda7e450$var$Yallist;\n$08928980bda7e450$var$Yallist.Node = $08928980bda7e450$var$Node;\n$08928980bda7e450$var$Yallist.create = $08928980bda7e450$var$Yallist;\nfunction $08928980bda7e450$var$Yallist(list) {\n var self = this;\n if (!(self instanceof $08928980bda7e450$var$Yallist)) self = new $08928980bda7e450$var$Yallist();\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") list.forEach(function(item) {\n self.push(item);\n });\n else if (arguments.length > 0) for(var i = 0, l = arguments.length; i < l; i++)self.push(arguments[i]);\n return self;\n}\n$08928980bda7e450$var$Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) throw new Error(\"removing node which does not belong to this list\");\n var next = node.next;\n var prev = node.prev;\n if (next) next.prev = prev;\n if (prev) prev.next = next;\n if (node === this.head) this.head = next;\n if (node === this.tail) this.tail = prev;\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n$08928980bda7e450$var$Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) return;\n if (node.list) node.list.removeNode(node);\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) head.prev = node;\n this.head = node;\n if (!this.tail) this.tail = node;\n this.length++;\n};\n$08928980bda7e450$var$Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) return;\n if (node.list) node.list.removeNode(node);\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) tail.next = node;\n this.tail = node;\n if (!this.head) this.head = node;\n this.length++;\n};\n$08928980bda7e450$var$Yallist.prototype.push = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$08928980bda7e450$var$push(this, arguments[i]);\n return this.length;\n};\n$08928980bda7e450$var$Yallist.prototype.unshift = function() {\n for(var i = 0, l = arguments.length; i < l; i++)$08928980bda7e450$var$unshift(this, arguments[i]);\n return this.length;\n};\n$08928980bda7e450$var$Yallist.prototype.pop = function() {\n if (!this.tail) return undefined;\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) this.tail.next = null;\n else this.head = null;\n this.length--;\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.shift = function() {\n if (!this.head) return undefined;\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) this.head.prev = null;\n else this.tail = null;\n this.length--;\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.head, i = 0; walker !== null; i++){\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n$08928980bda7e450$var$Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for(var walker = this.tail, i = this.length - 1; walker !== null; i--){\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n$08928980bda7e450$var$Yallist.prototype.get = function(n) {\n for(var i = 0, walker = this.head; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.next;\n if (i === n && walker !== null) return walker.value;\n};\n$08928980bda7e450$var$Yallist.prototype.getReverse = function(n) {\n for(var i = 0, walker = this.tail; walker !== null && i < n; i++)// abort out of the list early if we hit a cycle\n walker = walker.prev;\n if (i === n && walker !== null) return walker.value;\n};\n$08928980bda7e450$var$Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $08928980bda7e450$var$Yallist();\n for(var walker = this.head; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new $08928980bda7e450$var$Yallist();\n for(var walker = this.tail; walker !== null;){\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n};\n$08928980bda7e450$var$Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) acc = initial;\n else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = 0; walker !== null; i++){\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n};\n$08928980bda7e450$var$Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) acc = initial;\n else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else throw new TypeError(\"Reduce of empty list with no initial value\");\n for(var i = this.length - 1; walker !== null; i--){\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n};\n$08928980bda7e450$var$Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.head; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n};\n$08928980bda7e450$var$Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for(var i = 0, walker = this.tail; walker !== null; i++){\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n};\n$08928980bda7e450$var$Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $08928980bda7e450$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = 0, walker = this.head; walker !== null && i < from; i++)walker = walker.next;\n for(; walker !== null && i < to; i++, walker = walker.next)ret.push(walker.value);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) to += this.length;\n from = from || 0;\n if (from < 0) from += this.length;\n var ret = new $08928980bda7e450$var$Yallist();\n if (to < from || to < 0) return ret;\n if (from < 0) from = 0;\n if (to > this.length) to = this.length;\n for(var i = this.length, walker = this.tail; walker !== null && i > to; i--)walker = walker.prev;\n for(; walker !== null && i > from; i--, walker = walker.prev)ret.push(walker.value);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.splice = function(start, deleteCount, ...nodes) {\n if (start > this.length) start = this.length - 1;\n if (start < 0) start = this.length + start;\n for(var i = 0, walker = this.head; walker !== null && i < start; i++)walker = walker.next;\n var ret = [];\n for(var i = 0; walker && i < deleteCount; i++){\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n if (walker === null) walker = this.tail;\n if (walker !== this.head && walker !== this.tail) walker = walker.prev;\n for(var i = 0; i < nodes.length; i++)walker = $08928980bda7e450$var$insert(this, walker, nodes[i]);\n return ret;\n};\n$08928980bda7e450$var$Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for(var walker = head; walker !== null; walker = walker.prev){\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n};\nfunction $08928980bda7e450$var$insert(self, node, value) {\n var inserted = node === self.head ? new $08928980bda7e450$var$Node(value, null, node, self) : new $08928980bda7e450$var$Node(value, node, node.next, self);\n if (inserted.next === null) self.tail = inserted;\n if (inserted.prev === null) self.head = inserted;\n self.length++;\n return inserted;\n}\nfunction $08928980bda7e450$var$push(self, item) {\n self.tail = new $08928980bda7e450$var$Node(item, self.tail, null, self);\n if (!self.head) self.head = self.tail;\n self.length++;\n}\nfunction $08928980bda7e450$var$unshift(self, item) {\n self.head = new $08928980bda7e450$var$Node(item, null, self.head, self);\n if (!self.tail) self.tail = self.head;\n self.length++;\n}\nfunction $08928980bda7e450$var$Node(value, prev, next, list) {\n if (!(this instanceof $08928980bda7e450$var$Node)) return new $08928980bda7e450$var$Node(value, prev, next, list);\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else this.prev = null;\n if (next) {\n next.prev = this;\n this.next = next;\n } else this.next = null;\n}\n\ntry {\n // add if support for Symbol.iterator is present\n (parcelRequire(\"6mmJJ\"))($08928980bda7e450$var$Yallist);\n} catch (er) {}\n\n});\nparcelRegister(\"6mmJJ\", function(module, exports) {\n\"use strict\";\nmodule.exports = function(Yallist) {\n Yallist.prototype[Symbol.iterator] = function*() {\n for(let walker = this.head; walker; walker = walker.next)yield walker.value;\n };\n};\n\n});\n\n\n\n\n\nparcelRegister(\"2bU8Y\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $198828d4690f72ab$var$satisfies = (version, range, options)=>{\n try {\n range = new $4FTez(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n};\nmodule.exports = $198828d4690f72ab$var$satisfies;\n\n});\n\nparcelRegister(\"eRnrA\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\n// Mostly just for testing and legacy API reasons\nconst $ad183366a1601ea2$var$toComparators = (range, options)=>new $4FTez(range, options).set.map((comp)=>comp.map((c)=>c.value).join(\" \").trim().split(\" \"));\nmodule.exports = $ad183366a1601ea2$var$toComparators;\n\n});\n\nparcelRegister(\"aAvhf\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $7b55873206bf39b9$var$maxSatisfying = (versions, range, options)=>{\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $4FTez(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new $aMLnW(max, options);\n }\n }\n });\n return max;\n};\nmodule.exports = $7b55873206bf39b9$var$maxSatisfying;\n\n});\n\nparcelRegister(\"iWAcu\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $dca9b97392366ccd$var$minSatisfying = (versions, range, options)=>{\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new $4FTez(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach((v)=>{\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new $aMLnW(min, options);\n }\n }\n });\n return min;\n};\nmodule.exports = $dca9b97392366ccd$var$minSatisfying;\n\n});\n\nparcelRegister(\"32TwK\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\nconst $237ca191c3ae55cc$var$minVersion = (range, loose)=>{\n range = new $4FTez(range, loose);\n let minver = new $aMLnW(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new $aMLnW(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let setMin = null;\n comparators.forEach((comparator)=>{\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new $aMLnW(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!setMin || $cPjhN(compver, setMin)) setMin = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(`Unexpected operation: ${comparator.operator}`);\n }\n });\n if (setMin && (!minver || $cPjhN(minver, setMin))) minver = setMin;\n }\n if (minver && range.test(minver)) return minver;\n return null;\n};\nmodule.exports = $237ca191c3ae55cc$var$minVersion;\n\n});\n\nparcelRegister(\"194Ox\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $0d5a5dad0eeb3de1$var$validRange = (range, options)=>{\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new $4FTez(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n};\nmodule.exports = $0d5a5dad0eeb3de1$var$validRange;\n\n});\n\nparcelRegister(\"a8VZj\", function(module, exports) {\n\nvar $aMLnW = parcelRequire(\"aMLnW\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\nconst { ANY: $7627a1f1d8b68e56$var$ANY } = $dSz9p;\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $cPjhN = parcelRequire(\"cPjhN\");\n\nvar $avz3V = parcelRequire(\"avz3V\");\n\nvar $8aNoG = parcelRequire(\"8aNoG\");\n\nvar $9xdhv = parcelRequire(\"9xdhv\");\nconst $7627a1f1d8b68e56$var$outside = (version, range, hilo, options)=>{\n version = new $aMLnW(version, options);\n range = new $4FTez(range, options);\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = $cPjhN;\n ltefn = $8aNoG;\n ltfn = $avz3V;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = $avz3V;\n ltefn = $9xdhv;\n ltfn = $cPjhN;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisfies the range it is not outside\n if ($2bU8Y(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(let i = 0; i < range.set.length; ++i){\n const comparators = range.set[i];\n let high = null;\n let low = null;\n comparators.forEach((comparator)=>{\n if (comparator.semver === $7627a1f1d8b68e56$var$ANY) comparator = new $dSz9p(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n};\nmodule.exports = $7627a1f1d8b68e56$var$outside;\n\n});\n\nparcelRegister(\"2yv5J\", function(module, exports) {\n// Determine if version is greater than all the versions possible in the range.\n\nvar $a8VZj = parcelRequire(\"a8VZj\");\nconst $1dc6dfd60f6d4b61$var$gtr = (version, range, options)=>$a8VZj(version, range, \">\", options);\nmodule.exports = $1dc6dfd60f6d4b61$var$gtr;\n\n});\n\nparcelRegister(\"46KXA\", function(module, exports) {\n\nvar $a8VZj = parcelRequire(\"a8VZj\");\n// Determine if version is less than all the versions possible in the range\nconst $2fdc264220ba3549$var$ltr = (version, range, options)=>$a8VZj(version, range, \"<\", options);\nmodule.exports = $2fdc264220ba3549$var$ltr;\n\n});\n\nparcelRegister(\"e3Thp\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\nconst $a3cc39e8e39a0af8$var$intersects = (r1, r2, options)=>{\n r1 = new $4FTez(r1, options);\n r2 = new $4FTez(r2, options);\n return r1.intersects(r2, options);\n};\nmodule.exports = $a3cc39e8e39a0af8$var$intersects;\n\n});\n\nparcelRegister(\"8g51l\", function(module, exports) {\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $3uysP = parcelRequire(\"3uysP\");\nmodule.exports = (versions, range, options)=>{\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b)=>$3uysP(a, b, options));\n for (const version of v){\n const included = $2bU8Y(version, range, options);\n if (included) {\n prev = version;\n if (!first) first = version;\n } else {\n if (prev) set.push([\n first,\n prev\n ]);\n prev = null;\n first = null;\n }\n }\n if (first) set.push([\n first,\n null\n ]);\n const ranges = [];\n for (const [min, max] of set){\n if (min === max) ranges.push(min);\n else if (!max && min === v[0]) ranges.push(\"*\");\n else if (!max) ranges.push(`>=${min}`);\n else if (min === v[0]) ranges.push(`<=${max}`);\n else ranges.push(`${min} - ${max}`);\n }\n const simplified = ranges.join(\" || \");\n const original = typeof range.raw === \"string\" ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range;\n};\n\n});\n\nparcelRegister(\"96YVB\", function(module, exports) {\n\nvar $4FTez = parcelRequire(\"4FTez\");\n\nvar $dSz9p = parcelRequire(\"dSz9p\");\nconst { ANY: $6a23efa6855afc70$var$ANY } = $dSz9p;\n\nvar $2bU8Y = parcelRequire(\"2bU8Y\");\n\nvar $3uysP = parcelRequire(\"3uysP\");\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\nconst $6a23efa6855afc70$var$subset = (sub, dom, options = {})=>{\n if (sub === dom) return true;\n sub = new $4FTez(sub, options);\n dom = new $4FTez(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set){\n for (const simpleDom of dom.set){\n const isSub = $6a23efa6855afc70$var$simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) continue OUTER;\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) return false;\n }\n return true;\n};\nconst $6a23efa6855afc70$var$minimumVersionWithPreRelease = [\n new $dSz9p(\">=0.0.0-0\")\n];\nconst $6a23efa6855afc70$var$minimumVersion = [\n new $dSz9p(\">=0.0.0\")\n];\nconst $6a23efa6855afc70$var$simpleSubset = (sub, dom, options)=>{\n if (sub === dom) return true;\n if (sub.length === 1 && sub[0].semver === $6a23efa6855afc70$var$ANY) {\n if (dom.length === 1 && dom[0].semver === $6a23efa6855afc70$var$ANY) return true;\n else if (options.includePrerelease) sub = $6a23efa6855afc70$var$minimumVersionWithPreRelease;\n else sub = $6a23efa6855afc70$var$minimumVersion;\n }\n if (dom.length === 1 && dom[0].semver === $6a23efa6855afc70$var$ANY) {\n if (options.includePrerelease) return true;\n else dom = $6a23efa6855afc70$var$minimumVersion;\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub){\n if (c.operator === \">\" || c.operator === \">=\") gt = $6a23efa6855afc70$var$higherGT(gt, c, options);\n else if (c.operator === \"<\" || c.operator === \"<=\") lt = $6a23efa6855afc70$var$lowerLT(lt, c, options);\n else eqSet.add(c.semver);\n }\n if (eqSet.size > 1) return null;\n let gtltComp;\n if (gt && lt) {\n gtltComp = $3uysP(gt.semver, lt.semver, options);\n if (gtltComp > 0) return null;\n else if (gtltComp === 0 && (gt.operator !== \">=\" || lt.operator !== \"<=\")) return null;\n }\n // will iterate one or zero times\n for (const eq of eqSet){\n if (gt && !$2bU8Y(eq, String(gt), options)) return null;\n if (lt && !$2bU8Y(eq, String(lt), options)) return null;\n for (const c of dom){\n if (!$2bU8Y(eq, String(c), options)) return false;\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === \"<\" && needDomLTPre.prerelease[0] === 0) needDomLTPre = false;\n for (const c of dom){\n hasDomGT = hasDomGT || c.operator === \">\" || c.operator === \">=\";\n hasDomLT = hasDomLT || c.operator === \"<\" || c.operator === \"<=\";\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) needDomGTPre = false;\n }\n if (c.operator === \">\" || c.operator === \">=\") {\n higher = $6a23efa6855afc70$var$higherGT(gt, c, options);\n if (higher === c && higher !== gt) return false;\n } else if (gt.operator === \">=\" && !$2bU8Y(gt.semver, String(c), options)) return false;\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) needDomLTPre = false;\n }\n if (c.operator === \"<\" || c.operator === \"<=\") {\n lower = $6a23efa6855afc70$var$lowerLT(lt, c, options);\n if (lower === c && lower !== lt) return false;\n } else if (lt.operator === \"<=\" && !$2bU8Y(lt.semver, String(c), options)) return false;\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) return false;\n }\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) return false;\n if (lt && hasDomGT && !gt && gtltComp !== 0) return false;\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) return false;\n return true;\n};\n// >=1.2.3 is lower than >1.2.3\nconst $6a23efa6855afc70$var$higherGT = (a, b, options)=>{\n if (!a) return b;\n const comp = $3uysP(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === \">\" && a.operator === \">=\" ? b : a;\n};\n// <=1.2.3 is higher than <1.2.3\nconst $6a23efa6855afc70$var$lowerLT = (a, b, options)=>{\n if (!a) return b;\n const comp = $3uysP(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === \"<\" && a.operator === \"<=\" ? b : a;\n};\nmodule.exports = $6a23efa6855afc70$var$subset;\n\n});\n\n\nparcelRegister(\"i8A01\", function(module, exports) {\n\"use strict\";\nvar $d344e60cef0315df$var$matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nmodule.exports = function(str) {\n if (typeof str !== \"string\") throw new TypeError(\"Expected a string\");\n return str.replace($d344e60cef0315df$var$matchOperatorsRe, \"\\\\$&\");\n};\n\n});\n\nparcelRegister(\"kY0n1\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathExists\", () => $f439b2cda090cb68$export$f8b9fb4db095815b);\n\nasync function $f439b2cda090cb68$export$f8b9fb4db095815b(path) {\n try {\n await (0, $d7DIX$nodefs.promises).access(path);\n return true;\n } catch {\n return false;\n }\n}\nfunction $f439b2cda090cb68$export$d878061e34fd0f5a(path) {\n try {\n (0, ($parcel$interopDefault($d7DIX$nodefs))).accessSync(path);\n return true;\n } catch {\n return false;\n }\n}\n\n});\n\nparcelRegister(\"bzNgi\", function(module, exports) {\n\n$parcel$export(module.exports, \"addExeExt\", () => $3294af0a12e8cafb$export$2d20c564cade3c93);\n$parcel$export(module.exports, \"addShExt\", () => $3294af0a12e8cafb$export$609be29b80b555e1);\n$parcel$export(module.exports, \"addShRelativePrefix\", () => $3294af0a12e8cafb$export$e1f23f8d3e53fe6);\n$parcel$export(module.exports, \"dirname\", () => $d7DIX$path.dirname);\n$parcel$export(module.exports, \"join\", () => $d7DIX$path.join);\n\n\nvar $iNGpn = parcelRequire(\"iNGpn\");\n\nvar $axeRu = parcelRequire(\"axeRu\");\nfunction $3294af0a12e8cafb$var$e(e, a) {\n return Object.keys(a).forEach((r)=>{\n \"default\" === r || \"__esModule\" === r || e.hasOwnProperty(r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get () {\n return a[r];\n }\n });\n }), e;\n}\nfunction $3294af0a12e8cafb$var$a(e, a, r, s) {\n Object.defineProperty(e, a, {\n get: r,\n set: s,\n enumerable: !0,\n configurable: !0\n });\n}\nfunction $3294af0a12e8cafb$export$a8ff84c12d48cfa6(e, a = !0) {\n return a ? (0, $d7DIX$path.basename)(e) : (0, $d7DIX$path.basename)(e, (0, $d7DIX$path.extname)(e));\n}\nfunction $3294af0a12e8cafb$export$873fead74fe2f1ff(e) {\n return (0, $d7DIX$path.normalize)(e).replace(RegExp((0, $iNGpn.default)((0, $d7DIX$path.sep)) + \"$\"), \"\");\n}\nfunction $3294af0a12e8cafb$export$2d20c564cade3c93(e, a = \".exe\", r = \"\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3294af0a12e8cafb$export$3e333f8cb13439c(e, a) {\n const r = (0, $d7DIX$path.extname)(e), s = `${a}${(0, $d7DIX$path.basename)(e, r)}${r}`;\n return (0, $d7DIX$path.join)((0, $d7DIX$path.dirname)(e), s);\n}\nfunction $3294af0a12e8cafb$export$3b60a3e9bd1aef9d(e, a) {\n const r = (0, $d7DIX$path.extname)(e), s = `${(0, $d7DIX$path.basename)(e, r)}${a}${r}`;\n return (0, $d7DIX$path.join)((0, $d7DIX$path.dirname)(e), s);\n}\nfunction $3294af0a12e8cafb$export$609be29b80b555e1(e, a = \".cmd\", r = \".sh\") {\n return \"win32\" === process.platform ? `${e}${a}` : `${e}${r}`;\n}\nfunction $3294af0a12e8cafb$export$e1f23f8d3e53fe6(e) {\n return \"win32\" === process.platform ? e : \"./\" + e;\n}\nfunction $3294af0a12e8cafb$export$19c5468f88f6e968(e) {\n const a = (0, $d7DIX$path.extname)(e).length;\n return e.slice(0, -a);\n}\nfunction $3294af0a12e8cafb$export$e9c34737ac8e53d2(e, a) {\n return (0, (/*@__PURE__*/$parcel$interopDefault($axeRu)))(e, a);\n}\nfunction $3294af0a12e8cafb$export$7d0573375890d05c(e, a) {\n const r = (0, $d7DIX$path.relative)(a, e);\n return !(!r || \"..\" === r || r.startsWith(\"..\" + (0, $d7DIX$path.sep)) || r === (0, $d7DIX$path.resolve)(e));\n}\nvar $3294af0a12e8cafb$var$O = {}, $3294af0a12e8cafb$var$R = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$R, \"name\", ()=>$3294af0a12e8cafb$export$a8ff84c12d48cfa6);\nvar $3294af0a12e8cafb$var$A = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$A, \"normalizeTrim\", ()=>$3294af0a12e8cafb$export$873fead74fe2f1ff);\nvar $3294af0a12e8cafb$var$I = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$I, \"addExeExt\", ()=>$3294af0a12e8cafb$export$2d20c564cade3c93);\nvar $3294af0a12e8cafb$var$T = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$T, \"addNamePrefix\", ()=>$3294af0a12e8cafb$export$3e333f8cb13439c);\nvar $3294af0a12e8cafb$var$_ = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$_, \"addNameSuffix\", ()=>$3294af0a12e8cafb$export$3b60a3e9bd1aef9d);\nvar $3294af0a12e8cafb$var$k = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$k, \"addShExt\", ()=>$3294af0a12e8cafb$export$609be29b80b555e1);\nvar $3294af0a12e8cafb$var$M = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$M, \"addShRelativePrefix\", ()=>$3294af0a12e8cafb$export$e1f23f8d3e53fe6);\nvar $3294af0a12e8cafb$var$W = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$W, \"removeExt\", ()=>$3294af0a12e8cafb$export$19c5468f88f6e968);\nvar $3294af0a12e8cafb$var$q = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$q, \"replaceExt\", ()=>$3294af0a12e8cafb$export$e9c34737ac8e53d2);\nvar $3294af0a12e8cafb$var$B = {};\n$3294af0a12e8cafb$var$a($3294af0a12e8cafb$var$B, \"isPathInside\", ()=>$3294af0a12e8cafb$export$7d0573375890d05c), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$R), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$A), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$I), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$T), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$_), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$k), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$M), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$W), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$q), $3294af0a12e8cafb$var$e($3294af0a12e8cafb$var$O, $3294af0a12e8cafb$var$B);\n\n});\nparcelRegister(\"iNGpn\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $dafdb304e43595c1$export$2e2bcd8739ae039);\nfunction $dafdb304e43595c1$export$2e2bcd8739ae039(string) {\n if (typeof string !== \"string\") throw new TypeError(\"Expected a string\");\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n});\n\nparcelRegister(\"axeRu\", function(module, exports) {\n\"use strict\";\n\nfunction $7ab883abb47fe1b1$var$replaceExt(npath, ext) {\n if (typeof npath !== \"string\") return npath;\n if (npath.length === 0) return npath;\n var nFileName = $d7DIX$path.basename(npath, $d7DIX$path.extname(npath)) + ext;\n var nFilepath = $d7DIX$path.join($d7DIX$path.dirname(npath), nFileName);\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if ($7ab883abb47fe1b1$var$startsWithSingleDot(npath)) return \".\" + $d7DIX$path.sep + nFilepath;\n return nFilepath;\n}\nfunction $7ab883abb47fe1b1$var$startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === \".\" + $d7DIX$path.sep || first2chars === \"./\";\n}\nmodule.exports = $7ab883abb47fe1b1$var$replaceExt;\n\n});\n\n\nparcelRegister(\"hZdK0\", function(module, exports) {\n\"use strict\";\nvar $d182cae0c6b8c393$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d182cae0c6b8c393$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d182cae0c6b8c393$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d182cae0c6b8c393$var$__createBinding(result, mod, k);\n }\n $d182cae0c6b8c393$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d182cae0c6b8c393$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0;\n\n\nconst $d182cae0c6b8c393$var$path = $d182cae0c6b8c393$var$__importStar($d7DIX$path);\n\nconst $d182cae0c6b8c393$var$ioUtil = $d182cae0c6b8c393$var$__importStar((parcelRequire(\"ipB3d\")));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */ function $d182cae0c6b8c393$var$cp(source, dest, options = {}) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $d182cae0c6b8c393$var$readCopyOptions(options);\n const destStat = (yield $d182cae0c6b8c393$var$ioUtil.exists(dest)) ? yield $d182cae0c6b8c393$var$ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) return;\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $d182cae0c6b8c393$var$path.join(dest, $d182cae0c6b8c393$var$path.basename(source)) : dest;\n if (!(yield $d182cae0c6b8c393$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`);\n const sourceStat = yield $d182cae0c6b8c393$var$ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n else yield $d182cae0c6b8c393$var$cpDirRecursive(source, newDest, 0, force);\n } else {\n if ($d182cae0c6b8c393$var$path.relative(source, newDest) === \"\") // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n yield $d182cae0c6b8c393$var$copyFile(source, newDest, force);\n }\n });\n}\nmodule.exports.cp = $d182cae0c6b8c393$var$cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */ function $d182cae0c6b8c393$var$mv(source, dest, options = {}) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (yield $d182cae0c6b8c393$var$ioUtil.exists(dest)) {\n let destExists = true;\n if (yield $d182cae0c6b8c393$var$ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = $d182cae0c6b8c393$var$path.join(dest, $d182cae0c6b8c393$var$path.basename(source));\n destExists = yield $d182cae0c6b8c393$var$ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) yield $d182cae0c6b8c393$var$rmRF(dest);\n else throw new Error(\"Destination already exists\");\n }\n }\n yield $d182cae0c6b8c393$var$mkdirP($d182cae0c6b8c393$var$path.dirname(dest));\n yield $d182cae0c6b8c393$var$ioUtil.rename(source, dest);\n });\n}\nmodule.exports.mv = $d182cae0c6b8c393$var$mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */ function $d182cae0c6b8c393$var$rmRF(inputPath) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n try {\n // note if path does not exist, error is silent\n yield $d182cae0c6b8c393$var$ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n } catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nmodule.exports.rmRF = $d182cae0c6b8c393$var$rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */ function $d182cae0c6b8c393$var$mkdirP(fsPath) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n $d7DIX$assert.ok(fsPath, \"a path argument must be provided\");\n yield $d182cae0c6b8c393$var$ioUtil.mkdir(fsPath, {\n recursive: true\n });\n });\n}\nmodule.exports.mkdirP = $d182cae0c6b8c393$var$mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */ function $d182cae0c6b8c393$var$which(tool, check) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // recursive when check=true\n if (check) {\n const result = yield $d182cae0c6b8c393$var$which(tool, false);\n if (!result) {\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n return result;\n }\n const matches = yield $d182cae0c6b8c393$var$findInPath(tool);\n if (matches && matches.length > 0) return matches[0];\n return \"\";\n });\n}\nmodule.exports.which = $d182cae0c6b8c393$var$which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */ function $d182cae0c6b8c393$var$findInPath(tool) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if (!tool) throw new Error(\"parameter 'tool' is required\");\n // build the list of extensions to try\n const extensions = [];\n if ($d182cae0c6b8c393$var$ioUtil.IS_WINDOWS && process.env[\"PATHEXT\"]) {\n for (const extension of process.env[\"PATHEXT\"].split($d182cae0c6b8c393$var$path.delimiter))if (extension) extensions.push(extension);\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if ($d182cae0c6b8c393$var$ioUtil.isRooted(tool)) {\n const filePath = yield $d182cae0c6b8c393$var$ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) return [\n filePath\n ];\n return [];\n }\n // if any path separators, return empty\n if (tool.includes($d182cae0c6b8c393$var$path.sep)) return [];\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split($d182cae0c6b8c393$var$path.delimiter))if (p) directories.push(p);\n }\n // find all matches\n const matches = [];\n for (const directory of directories){\n const filePath = yield $d182cae0c6b8c393$var$ioUtil.tryGetExecutablePath($d182cae0c6b8c393$var$path.join(directory, tool), extensions);\n if (filePath) matches.push(filePath);\n }\n return matches;\n });\n}\nmodule.exports.findInPath = $d182cae0c6b8c393$var$findInPath;\nfunction $d182cae0c6b8c393$var$readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory);\n return {\n force: force,\n recursive: recursive,\n copySourceDirectory: copySourceDirectory\n };\n}\nfunction $d182cae0c6b8c393$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255) return;\n currentDepth++;\n yield $d182cae0c6b8c393$var$mkdirP(destDir);\n const files = yield $d182cae0c6b8c393$var$ioUtil.readdir(sourceDir);\n for (const fileName of files){\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield $d182cae0c6b8c393$var$ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) // Recurse\n yield $d182cae0c6b8c393$var$cpDirRecursive(srcFile, destFile, currentDepth, force);\n else yield $d182cae0c6b8c393$var$copyFile(srcFile, destFile, force);\n }\n // Change the mode for the newly created directory\n yield $d182cae0c6b8c393$var$ioUtil.chmod(destDir, (yield $d182cae0c6b8c393$var$ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction $d182cae0c6b8c393$var$copyFile(srcFile, destFile, force) {\n return $d182cae0c6b8c393$var$__awaiter(this, void 0, void 0, function*() {\n if ((yield $d182cae0c6b8c393$var$ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield $d182cae0c6b8c393$var$ioUtil.lstat(destFile);\n yield $d182cae0c6b8c393$var$ioUtil.unlink(destFile);\n } catch (e) {\n // Try to override file permission\n if (e.code === \"EPERM\") {\n yield $d182cae0c6b8c393$var$ioUtil.chmod(destFile, \"0666\");\n yield $d182cae0c6b8c393$var$ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield $d182cae0c6b8c393$var$ioUtil.readlink(srcFile);\n yield $d182cae0c6b8c393$var$ioUtil.symlink(symlinkFull, destFile, $d182cae0c6b8c393$var$ioUtil.IS_WINDOWS ? \"junction\" : null);\n } else if (!(yield $d182cae0c6b8c393$var$ioUtil.exists(destFile)) || force) yield $d182cae0c6b8c393$var$ioUtil.copyFile(srcFile, destFile);\n });\n}\n\n});\nparcelRegister(\"ipB3d\", function(module, exports) {\n\"use strict\";\nvar $d6774d525a29799d$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $d6774d525a29799d$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $d6774d525a29799d$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $d6774d525a29799d$var$__createBinding(result, mod, k);\n }\n $d6774d525a29799d$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $d6774d525a29799d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar $d6774d525a29799d$var$_a;\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0;\n\nconst $d6774d525a29799d$var$fs = $d6774d525a29799d$var$__importStar($d7DIX$fs);\n\nconst $d6774d525a29799d$var$path = $d6774d525a29799d$var$__importStar($d7DIX$path);\n$d6774d525a29799d$var$_a = $d6774d525a29799d$var$fs.promises, module.exports.chmod = $d6774d525a29799d$var$_a.chmod, module.exports.copyFile = $d6774d525a29799d$var$_a.copyFile, module.exports.lstat = $d6774d525a29799d$var$_a.lstat, module.exports.mkdir = $d6774d525a29799d$var$_a.mkdir, module.exports.open = $d6774d525a29799d$var$_a.open, module.exports.readdir = $d6774d525a29799d$var$_a.readdir, module.exports.readlink = $d6774d525a29799d$var$_a.readlink, module.exports.rename = $d6774d525a29799d$var$_a.rename, module.exports.rm = $d6774d525a29799d$var$_a.rm, module.exports.rmdir = $d6774d525a29799d$var$_a.rmdir, module.exports.stat = $d6774d525a29799d$var$_a.stat, module.exports.symlink = $d6774d525a29799d$var$_a.symlink, module.exports.unlink = $d6774d525a29799d$var$_a.unlink;\n// export const {open} = 'fs'\nmodule.exports.IS_WINDOWS = process.platform === \"win32\";\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nmodule.exports.UV_FS_O_EXLOCK = 0x10000000;\nmodule.exports.READONLY = $d6774d525a29799d$var$fs.constants.O_RDONLY;\nfunction $d6774d525a29799d$var$exists(fsPath) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n try {\n yield module.exports.stat(fsPath);\n } catch (err) {\n if (err.code === \"ENOENT\") return false;\n throw err;\n }\n return true;\n });\n}\nmodule.exports.exists = $d6774d525a29799d$var$exists;\nfunction $d6774d525a29799d$var$isDirectory(fsPath, useStat = false) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nmodule.exports.isDirectory = $d6774d525a29799d$var$isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */ function $d6774d525a29799d$var$isRooted(p) {\n p = $d6774d525a29799d$var$normalizeSeparators(p);\n if (!p) throw new Error('isRooted() parameter \"p\" cannot be empty');\n if (module.exports.IS_WINDOWS) return p.startsWith(\"\\\\\") || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ; // e.g. C: or C:\\hello\n return p.startsWith(\"/\");\n}\nmodule.exports.isRooted = $d6774d525a29799d$var$isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */ function $d6774d525a29799d$var$tryGetExecutablePath(filePath, extensions) {\n return $d6774d525a29799d$var$__awaiter(this, void 0, void 0, function*() {\n let stats = undefined;\n try {\n // test file exists\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = $d6774d525a29799d$var$path.extname(filePath).toUpperCase();\n if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath;\n } else {\n if ($d6774d525a29799d$var$isUnixExecutable(stats)) return filePath;\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions){\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield module.exports.stat(filePath);\n } catch (err) {\n if (err.code !== \"ENOENT\") // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n if (stats && stats.isFile()) {\n if (module.exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = $d6774d525a29799d$var$path.dirname(filePath);\n const upperName = $d6774d525a29799d$var$path.basename(filePath).toUpperCase();\n for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) {\n filePath = $d6774d525a29799d$var$path.join(directory, actualName);\n break;\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n } else {\n if ($d6774d525a29799d$var$isUnixExecutable(stats)) return filePath;\n }\n }\n }\n return \"\";\n });\n}\nmodule.exports.tryGetExecutablePath = $d6774d525a29799d$var$tryGetExecutablePath;\nfunction $d6774d525a29799d$var$normalizeSeparators(p) {\n p = p || \"\";\n if (module.exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, \"\\\\\");\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, \"\\\\\");\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, \"/\");\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction $d6774d525a29799d$var$isUnixExecutable(stats) {\n return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid();\n}\n// Get the path of cmd.exe in windows\nfunction $d6774d525a29799d$var$getCmdPath() {\n var _a;\n return (_a = process.env[\"COMSPEC\"]) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nmodule.exports.getCmdPath = $d6774d525a29799d$var$getCmdPath;\n\n});\n\n\nparcelRegister(\"42L4Y\", function(module, exports) {\n\"use strict\";\nvar $2f1bde43f3e1d36b$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $2f1bde43f3e1d36b$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $2f1bde43f3e1d36b$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $2f1bde43f3e1d36b$var$__createBinding(result, mod, k);\n }\n $2f1bde43f3e1d36b$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $2f1bde43f3e1d36b$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0;\n\nconst $2f1bde43f3e1d36b$var$semver = $2f1bde43f3e1d36b$var$__importStar((parcelRequire(\"lroIv\")));\n\nvar $4t50X = parcelRequire(\"4t50X\");\n\n\n\nfunction $2f1bde43f3e1d36b$var$_findMatch(versionSpec, stable, candidates, archFilter) {\n return $2f1bde43f3e1d36b$var$__awaiter(this, void 0, void 0, function*() {\n const platFilter = $d7DIX$os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates){\n const version = candidate.version;\n $4t50X.debug(`check ${version} satisfies ${versionSpec}`);\n if ($2f1bde43f3e1d36b$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {\n file = candidate.files.find((item)=>{\n $4t50X.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);\n let chk = item.arch === archFilter && item.platform === platFilter;\n if (chk && item.platform_version) {\n const osVersion = module.exports._getOsVersion();\n if (osVersion === item.platform_version) chk = true;\n else chk = $2f1bde43f3e1d36b$var$semver.satisfies(osVersion, item.platform_version);\n }\n return chk;\n });\n if (file) {\n $4t50X.debug(`matched ${candidate.version}`);\n match = candidate;\n break;\n }\n }\n }\n if (match && file) {\n // clone since we're mutating the file list to be only the file that matches\n result = Object.assign({}, match);\n result.files = [\n file\n ];\n }\n return result;\n });\n}\nmodule.exports._findMatch = $2f1bde43f3e1d36b$var$_findMatch;\nfunction $2f1bde43f3e1d36b$var$_getOsVersion() {\n // TODO: add windows and other linux, arm variants\n // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)\n const plat = $d7DIX$os.platform();\n let version = \"\";\n if (plat === \"darwin\") version = $d7DIX$child_process.execSync(\"sw_vers -productVersion\").toString();\n else if (plat === \"linux\") {\n // lsb_release process not in some containers, readfile\n // Run cat /etc/lsb-release\n // DISTRIB_ID=Ubuntu\n // DISTRIB_RELEASE=18.04\n // DISTRIB_CODENAME=bionic\n // DISTRIB_DESCRIPTION=\"Ubuntu 18.04.4 LTS\"\n const lsbContents = module.exports._readLinuxVersionFile();\n if (lsbContents) {\n const lines = lsbContents.split(\"\\n\");\n for (const line of lines){\n const parts = line.split(\"=\");\n if (parts.length === 2 && (parts[0].trim() === \"VERSION_ID\" || parts[0].trim() === \"DISTRIB_RELEASE\")) {\n version = parts[1].trim().replace(/^\"/, \"\").replace(/\"$/, \"\");\n break;\n }\n }\n }\n }\n return version;\n}\nmodule.exports._getOsVersion = $2f1bde43f3e1d36b$var$_getOsVersion;\nfunction $2f1bde43f3e1d36b$var$_readLinuxVersionFile() {\n const lsbReleaseFile = \"/etc/lsb-release\";\n const osReleaseFile = \"/etc/os-release\";\n let contents = \"\";\n if ($d7DIX$fs.existsSync(lsbReleaseFile)) contents = $d7DIX$fs.readFileSync(lsbReleaseFile).toString();\n else if ($d7DIX$fs.existsSync(osReleaseFile)) contents = $d7DIX$fs.readFileSync(osReleaseFile).toString();\n return contents;\n}\nmodule.exports._readLinuxVersionFile = $2f1bde43f3e1d36b$var$_readLinuxVersionFile;\n\n});\nparcelRegister(\"lroIv\", function(module, exports) {\nexports = module.exports = SemVer;\nvar debug;\n/* istanbul ignore next */ if (typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) debug = function() {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(\"SEMVER\");\n console.log.apply(console, args);\n};\nelse debug = function() {};\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = \"2.0.0\";\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991;\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16;\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar safeRe = exports.safeRe = [];\nvar src = exports.src = [];\nvar t = exports.tokens = {};\nvar R = 0;\nfunction tok(n) {\n t[n] = R++;\n}\nvar LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n [\n \"\\\\s\",\n 1\n ],\n [\n \"\\\\d\",\n MAX_LENGTH\n ],\n [\n LETTERDASHNUMBER,\n MAX_SAFE_BUILD_LENGTH\n ]\n];\nfunction makeSafeRe(value) {\n for(var i = 0; i < safeRegexReplacements.length; i++){\n var token = safeRegexReplacements[i][0];\n var max = safeRegexReplacements[i][1];\n value = value.split(token + \"*\").join(token + \"{0,\" + max + \"}\").split(token + \"+\").join(token + \"{1,\" + max + \"}\");\n }\n return value;\n}\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\ntok(\"NUMERICIDENTIFIER\");\nsrc[t.NUMERICIDENTIFIER] = \"0|[1-9]\\\\d*\";\ntok(\"NUMERICIDENTIFIERLOOSE\");\nsrc[t.NUMERICIDENTIFIERLOOSE] = \"\\\\d+\";\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\ntok(\"NONNUMERICIDENTIFIER\");\nsrc[t.NONNUMERICIDENTIFIER] = \"\\\\d*[a-zA-Z-]\" + LETTERDASHNUMBER + \"*\";\n// ## Main Version\n// Three dot-separated numeric identifiers.\ntok(\"MAINVERSION\");\nsrc[t.MAINVERSION] = \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIER] + \")\";\ntok(\"MAINVERSIONLOOSE\");\nsrc[t.MAINVERSIONLOOSE] = \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\\\\.\" + \"(\" + src[t.NUMERICIDENTIFIERLOOSE] + \")\";\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\ntok(\"PRERELEASEIDENTIFIER\");\nsrc[t.PRERELEASEIDENTIFIER] = \"(?:\" + src[t.NUMERICIDENTIFIER] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\ntok(\"PRERELEASEIDENTIFIERLOOSE\");\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = \"(?:\" + src[t.NUMERICIDENTIFIERLOOSE] + \"|\" + src[t.NONNUMERICIDENTIFIER] + \")\";\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\ntok(\"PRERELEASE\");\nsrc[t.PRERELEASE] = \"(?:-(\" + src[t.PRERELEASEIDENTIFIER] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIER] + \")*))\";\ntok(\"PRERELEASELOOSE\");\nsrc[t.PRERELEASELOOSE] = \"(?:-?(\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \"(?:\\\\.\" + src[t.PRERELEASEIDENTIFIERLOOSE] + \")*))\";\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\ntok(\"BUILDIDENTIFIER\");\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + \"+\";\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\ntok(\"BUILD\");\nsrc[t.BUILD] = \"(?:\\\\+(\" + src[t.BUILDIDENTIFIER] + \"(?:\\\\.\" + src[t.BUILDIDENTIFIER] + \")*))\";\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\ntok(\"FULL\");\ntok(\"FULLPLAIN\");\nsrc[t.FULLPLAIN] = \"v?\" + src[t.MAINVERSION] + src[t.PRERELEASE] + \"?\" + src[t.BUILD] + \"?\";\nsrc[t.FULL] = \"^\" + src[t.FULLPLAIN] + \"$\";\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok(\"LOOSEPLAIN\");\nsrc[t.LOOSEPLAIN] = \"[v=\\\\s]*\" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + \"?\" + src[t.BUILD] + \"?\";\ntok(\"LOOSE\");\nsrc[t.LOOSE] = \"^\" + src[t.LOOSEPLAIN] + \"$\";\ntok(\"GTLT\");\nsrc[t.GTLT] = \"((?:<|>)?=?)\";\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok(\"XRANGEIDENTIFIERLOOSE\");\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + \"|x|X|\\\\*\";\ntok(\"XRANGEIDENTIFIER\");\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + \"|x|X|\\\\*\";\ntok(\"XRANGEPLAIN\");\nsrc[t.XRANGEPLAIN] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIER] + \")\" + \"(?:\" + src[t.PRERELEASE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGEPLAINLOOSE\");\nsrc[t.XRANGEPLAINLOOSE] = \"[v=\\\\s]*(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\\\\.(\" + src[t.XRANGEIDENTIFIERLOOSE] + \")\" + \"(?:\" + src[t.PRERELEASELOOSE] + \")?\" + src[t.BUILD] + \"?\" + \")?)?\";\ntok(\"XRANGE\");\nsrc[t.XRANGE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAIN] + \"$\";\ntok(\"XRANGELOOSE\");\nsrc[t.XRANGELOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*\" + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok(\"COERCE\");\nsrc[t.COERCE] = \"(^|[^\\\\d])(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"})\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:\\\\.(\\\\d{1,\" + MAX_SAFE_COMPONENT_LENGTH + \"}))?\" + \"(?:$|[^\\\\d])\";\ntok(\"COERCERTL\");\nre[t.COERCERTL] = new RegExp(src[t.COERCE], \"g\");\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), \"g\");\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok(\"LONETILDE\");\nsrc[t.LONETILDE] = \"(?:~>?)\";\ntok(\"TILDETRIM\");\nsrc[t.TILDETRIM] = \"(\\\\s*)\" + src[t.LONETILDE] + \"\\\\s+\";\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], \"g\");\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), \"g\");\nvar tildeTrimReplace = \"$1~\";\ntok(\"TILDE\");\nsrc[t.TILDE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"TILDELOOSE\");\nsrc[t.TILDELOOSE] = \"^\" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok(\"LONECARET\");\nsrc[t.LONECARET] = \"(?:\\\\^)\";\ntok(\"CARETTRIM\");\nsrc[t.CARETTRIM] = \"(\\\\s*)\" + src[t.LONECARET] + \"\\\\s+\";\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], \"g\");\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), \"g\");\nvar caretTrimReplace = \"$1^\";\ntok(\"CARET\");\nsrc[t.CARET] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAIN] + \"$\";\ntok(\"CARETLOOSE\");\nsrc[t.CARETLOOSE] = \"^\" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + \"$\";\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok(\"COMPARATORLOOSE\");\nsrc[t.COMPARATORLOOSE] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \")$|^$\";\ntok(\"COMPARATOR\");\nsrc[t.COMPARATOR] = \"^\" + src[t.GTLT] + \"\\\\s*(\" + src[t.FULLPLAIN] + \")$|^$\";\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok(\"COMPARATORTRIM\");\nsrc[t.COMPARATORTRIM] = \"(\\\\s*)\" + src[t.GTLT] + \"\\\\s*(\" + src[t.LOOSEPLAIN] + \"|\" + src[t.XRANGEPLAIN] + \")\";\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], \"g\");\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), \"g\");\nvar comparatorTrimReplace = \"$1$2$3\";\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok(\"HYPHENRANGE\");\nsrc[t.HYPHENRANGE] = \"^\\\\s*(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAIN] + \")\" + \"\\\\s*$\";\ntok(\"HYPHENRANGELOOSE\");\nsrc[t.HYPHENRANGELOOSE] = \"^\\\\s*(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s+-\\\\s+\" + \"(\" + src[t.XRANGEPLAINLOOSE] + \")\" + \"\\\\s*$\";\n// Star ranges basically just allow anything at all.\ntok(\"STAR\");\nsrc[t.STAR] = \"(<|>)?=?\\\\s*\\\\*\";\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor(var i = 0; i < R; i++){\n debug(i, src[i]);\n if (!re[i]) {\n re[i] = new RegExp(src[i]);\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]));\n }\n}\nexports.parse = parse;\nfunction parse(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) return version;\n if (typeof version !== \"string\") return null;\n if (version.length > MAX_LENGTH) return null;\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL];\n if (!r.test(version)) return null;\n try {\n return new SemVer(version, options);\n } catch (er) {\n return null;\n }\n}\nexports.valid = valid;\nfunction valid(version, options) {\n var v = parse(version, options);\n return v ? v.version : null;\n}\nexports.clean = clean;\nfunction clean(version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, \"\"), options);\n return s ? s.version : null;\n}\nexports.SemVer = SemVer;\nfunction SemVer(version, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (version instanceof SemVer) {\n if (version.loose === options.loose) return version;\n else version = version.version;\n } else if (typeof version !== \"string\") throw new TypeError(\"Invalid Version: \" + version);\n if (version.length > MAX_LENGTH) throw new TypeError(\"version is longer than \" + MAX_LENGTH + \" characters\");\n if (!(this instanceof SemVer)) return new SemVer(version, options);\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]);\n if (!m) throw new TypeError(\"Invalid Version: \" + version);\n this.raw = version;\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError(\"Invalid major version\");\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n // numberify any prerelease numeric ids\n if (!m[4]) this.prerelease = [];\n else this.prerelease = m[4].split(\".\").map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) return num;\n }\n return id;\n });\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n}\nSemVer.prototype.format = function() {\n this.version = this.major + \".\" + this.minor + \".\" + this.patch;\n if (this.prerelease.length) this.version += \"-\" + this.prerelease.join(\".\");\n return this.version;\n};\nSemVer.prototype.toString = function() {\n return this.version;\n};\nSemVer.prototype.compare = function(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return this.compareMain(other) || this.comparePre(other);\n};\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n};\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) return -1;\n else if (!this.prerelease.length && other.prerelease.length) return 1;\n else if (!this.prerelease.length && !other.prerelease.length) return 0;\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\nSemVer.prototype.compareBuild = function(other) {\n if (!(other instanceof SemVer)) other = new SemVer(other, this.options);\n var i = 0;\n do {\n var a = this.build[i];\n var b = other.build[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === undefined && b === undefined) return 0;\n else if (b === undefined) return 1;\n else if (a === undefined) return -1;\n else if (a === b) continue;\n else return compareIdentifiers(a, b);\n }while (++i);\n};\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch(release){\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier);\n break;\n case \"prepatch\":\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) this.inc(\"patch\", identifier);\n this.inc(\"pre\", identifier);\n break;\n case \"major\":\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case \"pre\":\n if (this.prerelease.length === 0) this.prerelease = [\n 0\n ];\n else {\n var i = this.prerelease.length;\n while(--i >= 0)if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) this.prerelease = [\n identifier,\n 0\n ];\n } else this.prerelease = [\n identifier,\n 0\n ];\n }\n break;\n default:\n throw new Error(\"invalid increment argument: \" + release);\n }\n this.format();\n this.raw = this.version;\n return this;\n};\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof loose === \"string\") {\n identifier = loose;\n loose = undefined;\n }\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) return null;\n else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n var prefix = \"\";\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = \"pre\";\n var defaultResult = \"prerelease\";\n }\n for(var key in v1)if (key === \"major\" || key === \"minor\" || key === \"patch\") {\n if (v1[key] !== v2[key]) return prefix + key;\n }\n return defaultResult // may be undefined\n ;\n }\n}\nexports.compareIdentifiers = compareIdentifiers;\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n}\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose));\n}\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\nexports.compareBuild = compareBuild;\nfunction compareBuild(a, b, loose) {\n var versionA = new SemVer(a, loose);\n var versionB = new SemVer(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB);\n}\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(a, b, loose);\n });\n}\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compareBuild(b, a, loose);\n });\n}\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n switch(op){\n case \"===\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a === b;\n case \"!==\":\n if (typeof a === \"object\") a = a.version;\n if (typeof b === \"object\") b = b.version;\n return a !== b;\n case \"\":\n case \"=\":\n case \"==\":\n return eq(a, b, loose);\n case \"!=\":\n return neq(a, b, loose);\n case \">\":\n return gt(a, b, loose);\n case \">=\":\n return gte(a, b, loose);\n case \"<\":\n return lt(a, b, loose);\n case \"<=\":\n return lte(a, b, loose);\n default:\n throw new TypeError(\"Invalid operator: \" + op);\n }\n}\nexports.Comparator = Comparator;\nfunction Comparator(comp, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) return comp;\n else comp = comp.value;\n }\n if (!(this instanceof Comparator)) return new Comparator(comp, options);\n comp = comp.trim().split(/\\s+/).join(\" \");\n debug(\"comparator\", comp, options);\n this.options = options;\n this.loose = !!options.loose;\n this.parse(comp);\n if (this.semver === ANY) this.value = \"\";\n else this.value = this.operator + this.semver.version;\n debug(\"comp\", this);\n}\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var m = comp.match(r);\n if (!m) throw new TypeError(\"Invalid comparator: \" + comp);\n this.operator = m[1] !== undefined ? m[1] : \"\";\n if (this.operator === \"=\") this.operator = \"\";\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) this.semver = ANY;\n else this.semver = new SemVer(m[2], this.options.loose);\n};\nComparator.prototype.toString = function() {\n return this.value;\n};\nComparator.prototype.test = function(version) {\n debug(\"Comparator.test\", version, this.options.loose);\n if (this.semver === ANY || version === ANY) return true;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n return cmp(version, this.operator, this.semver, this.options);\n};\nComparator.prototype.intersects = function(comp, options) {\n if (!(comp instanceof Comparator)) throw new TypeError(\"a Comparator is required\");\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n var rangeTmp;\n if (this.operator === \"\") {\n if (this.value === \"\") return true;\n rangeTmp = new Range(comp.value, options);\n return satisfies(this.value, rangeTmp, options);\n } else if (comp.operator === \"\") {\n if (comp.value === \"\") return true;\n rangeTmp = new Range(this.value, options);\n return satisfies(comp.semver, rangeTmp, options);\n }\n var sameDirectionIncreasing = (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \">=\" || comp.operator === \">\");\n var sameDirectionDecreasing = (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var sameSemVer = this.semver.version === comp.semver.version;\n var differentDirectionsInclusive = (this.operator === \">=\" || this.operator === \"<=\") && (comp.operator === \">=\" || comp.operator === \"<=\");\n var oppositeDirectionsLessThan = cmp(this.semver, \"<\", comp.semver, options) && (this.operator === \">=\" || this.operator === \">\") && (comp.operator === \"<=\" || comp.operator === \"<\");\n var oppositeDirectionsGreaterThan = cmp(this.semver, \">\", comp.semver, options) && (this.operator === \"<=\" || this.operator === \"<\") && (comp.operator === \">=\" || comp.operator === \">\");\n return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;\n};\nexports.Range = Range;\nfunction Range(range, options) {\n if (!options || typeof options !== \"object\") options = {\n loose: !!options,\n includePrerelease: false\n };\n if (range instanceof Range) {\n if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range;\n else return new Range(range.raw, options);\n }\n if (range instanceof Comparator) return new Range(range.value, options);\n if (!(this instanceof Range)) return new Range(range, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().split(/\\s+/).join(\" \");\n // First, split based on boolean or ||\n this.set = this.raw.split(\"||\").map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n if (!this.set.length) throw new TypeError(\"Invalid SemVer Range: \" + this.raw);\n this.format();\n}\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(\" \").trim();\n }).join(\"||\").trim();\n return this.range;\n};\nRange.prototype.toString = function() {\n return this.range;\n};\nRange.prototype.parseRange = function(range) {\n var loose = this.options.loose;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n debug(\"hyphen replace\", range);\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace);\n debug(\"comparator trim\", range, safeRe[t.COMPARATORTRIM]);\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace);\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace);\n // normalize spaces\n range = range.split(/\\s+/).join(\" \");\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR];\n var set = range.split(\" \").map(function(comp) {\n return parseComparator(comp, this.options);\n }, this).join(\" \").split(/\\s+/);\n if (this.options.loose) // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n set = set.map(function(comp) {\n return new Comparator(comp, this.options);\n }, this);\n return set;\n};\nRange.prototype.intersects = function(range, options) {\n if (!(range instanceof Range)) throw new TypeError(\"a Range is required\");\n return this.set.some(function(thisComparators) {\n return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) {\n return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) {\n return rangeComparators.every(function(rangeComparator) {\n return thisComparator.intersects(rangeComparator, options);\n });\n });\n });\n });\n};\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable(comparators, options) {\n var result = true;\n var remainingComparators = comparators.slice();\n var testComparator = remainingComparators.pop();\n while(result && remainingComparators.length){\n result = remainingComparators.every(function(otherComparator) {\n return testComparator.intersects(otherComparator, options);\n });\n testComparator = remainingComparators.pop();\n }\n return result;\n}\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, options) {\n return new Range(range, options).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(\" \").trim().split(\" \");\n });\n}\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, options) {\n debug(\"comp\", comp, options);\n comp = replaceCarets(comp, options);\n debug(\"caret\", comp);\n comp = replaceTildes(comp, options);\n debug(\"tildes\", comp);\n comp = replaceXRanges(comp, options);\n debug(\"xrange\", comp);\n comp = replaceStars(comp, options);\n debug(\"stars\", comp);\n return comp;\n}\nfunction isX(id) {\n return !id || id.toLowerCase() === \"x\" || id === \"*\";\n}\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, options);\n }).join(\" \");\n}\nfunction replaceTilde(comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"tilde\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0\n ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else if (pr) {\n debug(\"replaceTilde pr\", pr);\n ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else // ~1.2.3 == >=1.2.3 <1.3.0\n ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n debug(\"tilde return\", ret);\n return ret;\n });\n}\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, options) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, options);\n }).join(\" \");\n}\nfunction replaceCaret(comp, options) {\n debug(\"caret\", comp, options);\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n debug(\"caret\", comp, _, M, m, p, pr);\n var ret;\n if (isX(M)) ret = \"\";\n else if (isX(m)) ret = \">=\" + M + \".0.0 <\" + (+M + 1) + \".0.0\";\n else if (isX(p)) {\n if (M === \"0\") ret = \">=\" + M + \".\" + m + \".0 <\" + M + \".\" + (+m + 1) + \".0\";\n else ret = \">=\" + M + \".\" + m + \".0 <\" + (+M + 1) + \".0.0\";\n } else if (pr) {\n debug(\"replaceCaret pr\", pr);\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \"-\" + pr + \" <\" + (+M + 1) + \".0.0\";\n } else {\n debug(\"no pr\");\n if (M === \"0\") {\n if (m === \"0\") ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + m + \".\" + (+p + 1);\n else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + M + \".\" + (+m + 1) + \".0\";\n } else ret = \">=\" + M + \".\" + m + \".\" + p + \" <\" + (+M + 1) + \".0.0\";\n }\n debug(\"caret return\", ret);\n return ret;\n });\n}\nfunction replaceXRanges(comp, options) {\n debug(\"replaceXRanges\", comp, options);\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, options);\n }).join(\" \");\n}\nfunction replaceXRange(comp, options) {\n comp = comp.trim();\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n debug(\"xRange\", comp, ret, gtlt, M, m, p, pr);\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n if (gtlt === \"=\" && anyX) gtlt = \"\";\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? \"-0\" : \"\";\n if (xM) {\n if (gtlt === \">\" || gtlt === \"<\") // nothing is allowed\n ret = \"<0.0.0-0\";\n else // nothing is forbidden\n ret = \"*\";\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) m = 0;\n p = 0;\n if (gtlt === \">\") {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = \">=\";\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === \"<=\") {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = \"<\";\n if (xm) M = +M + 1;\n else m = +m + 1;\n }\n ret = gtlt + M + \".\" + m + \".\" + p + pr;\n } else if (xm) ret = \">=\" + M + \".0.0\" + pr + \" <\" + (+M + 1) + \".0.0\" + pr;\n else if (xp) ret = \">=\" + M + \".\" + m + \".0\" + pr + \" <\" + M + \".\" + (+m + 1) + \".0\" + pr;\n debug(\"xRange return\", ret);\n return ret;\n });\n}\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, options) {\n debug(\"replaceStars\", comp, options);\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], \"\");\n}\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) from = \"\";\n else if (isX(fm)) from = \">=\" + fM + \".0.0\";\n else if (isX(fp)) from = \">=\" + fM + \".\" + fm + \".0\";\n else from = \">=\" + from;\n if (isX(tM)) to = \"\";\n else if (isX(tm)) to = \"<\" + (+tM + 1) + \".0.0\";\n else if (isX(tp)) to = \"<\" + tM + \".\" + (+tm + 1) + \".0\";\n else if (tpr) to = \"<=\" + tM + \".\" + tm + \".\" + tp + \"-\" + tpr;\n else to = \"<=\" + to;\n return (from + \" \" + to).trim();\n}\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version) return false;\n if (typeof version === \"string\") try {\n version = new SemVer(version, this.options);\n } catch (er) {\n return false;\n }\n for(var i = 0; i < this.set.length; i++){\n if (testSet(this.set[i], version, this.options)) return true;\n }\n return false;\n};\nfunction testSet(set, version, options) {\n for(var i = 0; i < set.length; i++){\n if (!set[i].test(version)) return false;\n }\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for(i = 0; i < set.length; i++){\n debug(set[i].semver);\n if (set[i].semver === ANY) continue;\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true;\n }\n }\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n return true;\n}\nexports.satisfies = satisfies;\nfunction satisfies(version, range, options) {\n try {\n range = new Range(range, options);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, options) {\n var max = null;\n var maxSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer(max, options);\n }\n }\n });\n return max;\n}\nexports.minSatisfying = minSatisfying;\nfunction minSatisfying(versions, range, options) {\n var min = null;\n var minSV = null;\n try {\n var rangeObj = new Range(range, options);\n } catch (er) {\n return null;\n }\n versions.forEach(function(v) {\n if (rangeObj.test(v)) // satisfies(v, range, options)\n {\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer(min, options);\n }\n }\n });\n return min;\n}\nexports.minVersion = minVersion;\nfunction minVersion(range, loose) {\n range = new Range(range, loose);\n var minver = new SemVer(\"0.0.0\");\n if (range.test(minver)) return minver;\n minver = new SemVer(\"0.0.0-0\");\n if (range.test(minver)) return minver;\n minver = null;\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n comparators.forEach(function(comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version);\n switch(comparator.operator){\n case \">\":\n if (compver.prerelease.length === 0) compver.patch++;\n else compver.prerelease.push(0);\n compver.raw = compver.format();\n /* fallthrough */ case \"\":\n case \">=\":\n if (!minver || gt(minver, compver)) minver = compver;\n break;\n case \"<\":\n case \"<=\":\n break;\n /* istanbul ignore next */ default:\n throw new Error(\"Unexpected operation: \" + comparator.operator);\n }\n });\n }\n if (minver && range.test(minver)) return minver;\n return null;\n}\nexports.validRange = validRange;\nfunction validRange(range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || \"*\";\n } catch (er) {\n return null;\n }\n}\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, options) {\n return outside(version, range, \"<\", options);\n}\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, options) {\n return outside(version, range, \">\", options);\n}\nexports.outside = outside;\nfunction outside(version, range, hilo, options) {\n version = new SemVer(version, options);\n range = new Range(range, options);\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch(hilo){\n case \">\":\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = \">\";\n ecomp = \">=\";\n break;\n case \"<\":\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = \"<\";\n ecomp = \"<=\";\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) return false;\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n for(var i = 0; i < range.set.length; ++i){\n var comparators = range.set[i];\n var high = null;\n var low = null;\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) comparator = new Comparator(\">=0.0.0\");\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) high = comparator;\n else if (ltfn(comparator.semver, low.semver, options)) low = comparator;\n });\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) return false;\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false;\n else if (low.operator === ecomp && ltfn(version, low.semver)) return false;\n }\n return true;\n}\nexports.prerelease = prerelease;\nfunction prerelease(version, options) {\n var parsed = parse(version, options);\n return parsed && parsed.prerelease.length ? parsed.prerelease : null;\n}\nexports.intersects = intersects;\nfunction intersects(r1, r2, options) {\n r1 = new Range(r1, options);\n r2 = new Range(r2, options);\n return r1.intersects(r2);\n}\nexports.coerce = coerce;\nfunction coerce(version, options) {\n if (version instanceof SemVer) return version;\n if (typeof version === \"number\") version = String(version);\n if (typeof version !== \"string\") return null;\n options = options || {};\n var match = null;\n if (!options.rtl) match = version.match(safeRe[t.COERCE]);\n else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next;\n while((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){\n if (!match || next.index + next[0].length !== match.index + match[0].length) match = next;\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1;\n }\n if (match === null) return null;\n return parse(match[2] + \".\" + (match[3] || \"0\") + \".\" + (match[4] || \"0\"), options);\n}\n\n});\n\n\nparcelRegister(\"eAF86\", function(module, exports) {\n\nvar $1W8as = parcelRequire(\"1W8as\");\n\nvar $hTpVN = parcelRequire(\"hTpVN\");\nfunction $a9f454f8e288d649$var$v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == \"string\") {\n buf = options === \"binary\" ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || $1W8as)();\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n // Copy bytes to buffer, if provided\n if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii];\n return buf || $hTpVN(rnds);\n}\nmodule.exports = $a9f454f8e288d649$var$v4;\n\n});\nparcelRegister(\"1W8as\", function(module, exports) {\n// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nmodule.exports = function nodeRNG() {\n return $d7DIX$crypto.randomBytes(16);\n};\n\n});\n\nparcelRegister(\"hTpVN\", function(module, exports) {\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */ var $d06bb019f71e9144$var$byteToHex = [];\nfor(var $d06bb019f71e9144$var$i = 0; $d06bb019f71e9144$var$i < 256; ++$d06bb019f71e9144$var$i)$d06bb019f71e9144$var$byteToHex[$d06bb019f71e9144$var$i] = ($d06bb019f71e9144$var$i + 0x100).toString(16).substr(1);\nfunction $d06bb019f71e9144$var$bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = $d06bb019f71e9144$var$byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n \"-\",\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]]\n ].join(\"\");\n}\nmodule.exports = $d06bb019f71e9144$var$bytesToUuid;\n\n});\n\n\nparcelRegister(\"1f6JF\", function(module, exports) {\n\"use strict\";\nvar $0e7c6aae7f120a88$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $0e7c6aae7f120a88$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $0e7c6aae7f120a88$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $0e7c6aae7f120a88$var$__createBinding(result, mod, k);\n }\n $0e7c6aae7f120a88$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $0e7c6aae7f120a88$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.getExecOutput = module.exports.exec = void 0;\n\n\nconst $0e7c6aae7f120a88$var$tr = $0e7c6aae7f120a88$var$__importStar((parcelRequire(\"4B2AJ\")));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */ function $0e7c6aae7f120a88$var$exec(commandLine, args, options) {\n return $0e7c6aae7f120a88$var$__awaiter(this, void 0, void 0, function*() {\n const commandArgs = $0e7c6aae7f120a88$var$tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new $0e7c6aae7f120a88$var$tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nmodule.exports.exec = $0e7c6aae7f120a88$var$exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */ function $0e7c6aae7f120a88$var$getExecOutput(commandLine, args, options) {\n var _a, _b;\n return $0e7c6aae7f120a88$var$__awaiter(this, void 0, void 0, function*() {\n let stdout = \"\";\n let stderr = \"\";\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new $d7DIX$string_decoder.StringDecoder(\"utf8\");\n const stderrDecoder = new $d7DIX$string_decoder.StringDecoder(\"utf8\");\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data)=>{\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) originalStdErrListener(data);\n };\n const stdOutListener = (data)=>{\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) originalStdoutListener(data);\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), {\n stdout: stdOutListener,\n stderr: stdErrListener\n });\n const exitCode = yield $0e7c6aae7f120a88$var$exec(commandLine, args, Object.assign(Object.assign({}, options), {\n listeners: listeners\n }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode: exitCode,\n stdout: stdout,\n stderr: stderr\n };\n });\n}\nmodule.exports.getExecOutput = $0e7c6aae7f120a88$var$getExecOutput;\n\n});\nparcelRegister(\"4B2AJ\", function(module, exports) {\n\"use strict\";\nvar $358ca0c13f34538f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function() {\n return m[k];\n }\n });\n} : function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar $358ca0c13f34538f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function(o, v) {\n o[\"default\"] = v;\n});\nvar $358ca0c13f34538f$var$__importStar = module.exports && module.exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for(var k in mod)if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) $358ca0c13f34538f$var$__createBinding(result, mod, k);\n }\n $358ca0c13f34538f$var$__setModuleDefault(result, mod);\n return result;\n};\nvar $358ca0c13f34538f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports.argStringToArray = module.exports.ToolRunner = void 0;\n\nconst $358ca0c13f34538f$var$os = $358ca0c13f34538f$var$__importStar($d7DIX$os);\n\nconst $358ca0c13f34538f$var$events = $358ca0c13f34538f$var$__importStar($d7DIX$events);\n\nconst $358ca0c13f34538f$var$child = $358ca0c13f34538f$var$__importStar($d7DIX$child_process);\n\nconst $358ca0c13f34538f$var$path = $358ca0c13f34538f$var$__importStar($d7DIX$path);\n\nconst $358ca0c13f34538f$var$io = $358ca0c13f34538f$var$__importStar((parcelRequire(\"hZdK0\")));\n\nconst $358ca0c13f34538f$var$ioUtil = $358ca0c13f34538f$var$__importStar((parcelRequire(\"ipB3d\")));\n\n/* eslint-disable @typescript-eslint/unbound-method */ const $358ca0c13f34538f$var$IS_WINDOWS = process.platform === \"win32\";\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */ class $358ca0c13f34538f$var$ToolRunner extends $358ca0c13f34538f$var$events.EventEmitter {\n constructor(toolPath, args, options){\n super();\n if (!toolPath) throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message);\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? \"\" : \"[command]\"; // omit prefix when piped to a second tool\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n } else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args)cmd += ` ${a}`;\n } else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n } else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args)cmd += ` ${a}`;\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf($358ca0c13f34538f$var$os.EOL);\n while(n > -1){\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + $358ca0c13f34538f$var$os.EOL.length);\n n = s.indexOf($358ca0c13f34538f$var$os.EOL);\n }\n return s;\n } catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return \"\";\n }\n }\n _getSpawnFileName() {\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n if (this._isCmdFile()) return process.env[\"COMSPEC\"] || \"cmd.exe\";\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if ($358ca0c13f34538f$var$IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args){\n argline += \" \";\n argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [\n argline\n ];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return this._endsWith(upperToolPath, \".CMD\") || this._endsWith(upperToolPath, \".BAT\");\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg);\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) return '\"\"';\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n \" \",\n \"\t\",\n \"&\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"^\",\n \"=\",\n \";\",\n \"!\",\n \"'\",\n \"+\",\n \",\",\n \"`\",\n \"~\",\n \"|\",\n \"<\",\n \">\",\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) {\n needsQuotes = true;\n break;\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) return arg;\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\"; // double the slash\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) // Need double quotation for empty argument\n return '\"\"';\n if (!arg.includes(\" \") && !arg.includes(\"\t\") && !arg.includes('\"')) // No quotation needed\n return arg;\n if (!arg.includes('\"') && !arg.includes(\"\\\\\")) // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for(let i = arg.length; i > 0; i--){\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === \"\\\\\") reverse += \"\\\\\";\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += \"\\\\\";\n } else quoteHit = false;\n }\n reverse += '\"';\n return reverse.split(\"\").reverse().join(\"\");\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result[\"windowsVerbatimArguments\"] = options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) result.argv0 = `\"${toolPath}\"`;\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */ exec() {\n return $358ca0c13f34538f$var$__awaiter(this, void 0, void 0, function*() {\n // root the tool path if it is unrooted and contains relative pathing\n if (!$358ca0c13f34538f$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes(\"/\") || $358ca0c13f34538f$var$IS_WINDOWS && this.toolPath.includes(\"\\\\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = $358ca0c13f34538f$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield $358ca0c13f34538f$var$io.which(this.toolPath, true);\n return new Promise((resolve, reject)=>$358ca0c13f34538f$var$__awaiter(this, void 0, void 0, function*() {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug(\"arguments:\");\n for (const arg of this.args)this._debug(` ${arg}`);\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $358ca0c13f34538f$var$os.EOL);\n const state = new $358ca0c13f34538f$var$ExecState(optionsNonNull, this.toolPath);\n state.on(\"debug\", (message)=>{\n this._debug(message);\n });\n if (this.options.cwd && !(yield $358ca0c13f34538f$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n const fileName = this._getSpawnFileName();\n const cp = $358ca0c13f34538f$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = \"\";\n if (cp.stdout) cp.stdout.on(\"data\", (data)=>{\n if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data);\n if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data);\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line);\n });\n });\n let errbuffer = \"\";\n if (cp.stderr) cp.stderr.on(\"data\", (data)=>{\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data);\n if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{\n if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line);\n });\n });\n cp.on(\"error\", (err)=>{\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on(\"exit\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on(\"close\", (code)=>{\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on(\"done\", (error, exitCode)=>{\n if (stdbuffer.length > 0) this.emit(\"stdline\", stdbuffer);\n if (errbuffer.length > 0) this.emit(\"errline\", errbuffer);\n cp.removeAllListeners();\n if (error) reject(error);\n else resolve(exitCode);\n });\n if (this.options.input) {\n if (!cp.stdin) throw new Error(\"child process missing stdin\");\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nmodule.exports.ToolRunner = $358ca0c13f34538f$var$ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */ function $358ca0c13f34538f$var$argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = \"\";\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') arg += \"\\\\\";\n arg += c;\n escaped = false;\n }\n for(let i = 0; i < argString.length; i++){\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) inQuotes = !inQuotes;\n else append(c);\n continue;\n }\n if (c === \"\\\\\" && escaped) {\n append(c);\n continue;\n }\n if (c === \"\\\\\" && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === \" \" && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = \"\";\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) args.push(arg.trim());\n return args;\n}\nmodule.exports.argStringToArray = $358ca0c13f34538f$var$argStringToArray;\nclass $358ca0c13f34538f$var$ExecState extends $358ca0c13f34538f$var$events.EventEmitter {\n constructor(options, toolPath){\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = \"\";\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) throw new Error(\"toolPath must not be empty\");\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) this.delay = options.delay;\n }\n CheckComplete() {\n if (this.done) return;\n if (this.processClosed) this._setResult();\n else if (this.processExited) this.timeout = $d7DIX$timers.setTimeout($358ca0c13f34538f$var$ExecState.HandleTimeout, this.delay, this);\n }\n _debug(message) {\n this.emit(\"debug\", message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit(\"done\", error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) return;\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n\n});\n\n\nparcelRegister(\"4JiFg\", function(module, exports) {\nmodule.exports = Promise.resolve(require(\"./actions_python.4fb6b558.js\")).then(()=>parcelRequire(\"4kQHk\"));\n\n});\n\nparcelRegister(\"i9SYz\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $d383b6561dce1487$export$1059c6e7d2ce5669, (v) => $d383b6561dce1487$export$1059c6e7d2ce5669 = v);\nvar $d383b6561dce1487$export$181392475aa39887;\nvar $d383b6561dce1487$export$ba13e0e2f19e61a1;\nvar $d383b6561dce1487$export$1059c6e7d2ce5669;\n\nvar $12jBw = parcelRequire(\"12jBw\");\n\nvar $fSAop = parcelRequire(\"fSAop\");\n\nvar $g5ebD = parcelRequire(\"g5ebD\");\n\nvar $gqQA6 = parcelRequire(\"gqQA6\");\nvar $d383b6561dce1487$var$DOMImplementation = $fSAop.DOMImplementation;\nvar $d383b6561dce1487$var$NAMESPACE = $12jBw.NAMESPACE;\nvar $d383b6561dce1487$var$ParseError = $gqQA6.ParseError;\nvar $d383b6561dce1487$var$XMLReader = $gqQA6.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $d383b6561dce1487$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, \"\\n\").replace(/[\\r\\u0085\\u2028]/g, \"\\n\");\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $d383b6561dce1487$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$d383b6561dce1487$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $d383b6561dce1487$var$XMLReader();\n var domBuilder = options.domBuilder || new $d383b6561dce1487$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $g5ebD.HTML_ENTITIES : $g5ebD.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $d383b6561dce1487$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[\"\"] = $d383b6561dce1487$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $d383b6561dce1487$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $d383b6561dce1487$var$normalizeLineEndings;\n if (source && typeof source === \"string\") sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error(\"invalid doc source\");\n return domBuilder.doc;\n};\nfunction $d383b6561dce1487$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $d383b6561dce1487$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn(\"[xmldom \" + key + \"]\t\" + msg + $d383b6561dce1487$var$_locator(locator));\n } || function() {};\n }\n build(\"warning\");\n build(\"error\");\n build(\"fatalError\");\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $d383b6561dce1487$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $d383b6561dce1487$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $d383b6561dce1487$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $d383b6561dce1487$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $d383b6561dce1487$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $d383b6561dce1487$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $d383b6561dce1487$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $d383b6561dce1487$var$position(this.locator, ins);\n $d383b6561dce1487$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $d383b6561dce1487$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $d383b6561dce1487$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $d383b6561dce1487$var$position(this.locator, comm);\n $d383b6561dce1487$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $d383b6561dce1487$var$position(this.locator, dt);\n $d383b6561dce1487$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn(\"[xmldom warning]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n error: function(error) {\n console.error(\"[xmldom error]\t\" + error, $d383b6561dce1487$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $d383b6561dce1487$var$ParseError(error, this.locator);\n }\n};\nfunction $d383b6561dce1487$var$_locator(l) {\n if (l) return \"\\n@\" + (l.systemId || \"\") + \"#[line:\" + l.lineNumber + \",col:\" + l.columnNumber + \"]\";\n}\nfunction $d383b6561dce1487$var$_toString(chars, start, length) {\n if (typeof chars == \"string\") return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + \"\";\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $d383b6561dce1487$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $d383b6561dce1487$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$d383b6561dce1487$export$181392475aa39887 = $d383b6561dce1487$var$DOMHandler;\n$d383b6561dce1487$export$ba13e0e2f19e61a1 = $d383b6561dce1487$var$normalizeLineEndings;\n$d383b6561dce1487$export$1059c6e7d2ce5669 = $d383b6561dce1487$var$DOMParser;\n\n});\nparcelRegister(\"12jBw\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $0c152f5a1a56ce9f$export$71aa6c912b956294, (v) => $0c152f5a1a56ce9f$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $0c152f5a1a56ce9f$export$792f3d81ea979f55, (v) => $0c152f5a1a56ce9f$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $0c152f5a1a56ce9f$export$6aad947bda0f3f46, (v) => $0c152f5a1a56ce9f$export$6aad947bda0f3f46 = v);\nvar $0c152f5a1a56ce9f$export$e6e34fd1f2686227;\nvar $0c152f5a1a56ce9f$export$71aa6c912b956294;\nvar $0c152f5a1a56ce9f$export$792f3d81ea979f55;\nvar $0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa;\nvar $0c152f5a1a56ce9f$export$6aad947bda0f3f46;\n\"use strict\";\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({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 */ function $0c152f5a1a56ce9f$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === \"function\") return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = 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 */ function $0c152f5a1a56ce9f$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === \"function\" ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $0c152f5a1a56ce9f$var$assign(target, source) {\n if (target === null || typeof target !== \"object\") throw new TypeError(\"target is not an object\");\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $0c152f5a1a56ce9f$var$MIME_TYPE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: \"text/html\",\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $0c152f5a1a56ce9f$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: \"application/xml\",\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: \"text/xml\",\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: \"application/xhtml+xml\",\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: \"image/svg+xml\"\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $0c152f5a1a56ce9f$var$NAMESPACE = $0c152f5a1a56ce9f$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: \"http://www.w3.org/1999/xhtml\",\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $0c152f5a1a56ce9f$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: \"http://www.w3.org/2000/svg\",\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: \"http://www.w3.org/XML/1998/namespace\",\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: \"http://www.w3.org/2000/xmlns/\"\n});\n$0c152f5a1a56ce9f$export$e6e34fd1f2686227 = $0c152f5a1a56ce9f$var$assign;\n$0c152f5a1a56ce9f$export$71aa6c912b956294 = $0c152f5a1a56ce9f$var$find;\n$0c152f5a1a56ce9f$export$792f3d81ea979f55 = $0c152f5a1a56ce9f$var$freeze;\n$0c152f5a1a56ce9f$export$c6cb9dd1e3ada1aa = $0c152f5a1a56ce9f$var$MIME_TYPE;\n$0c152f5a1a56ce9f$export$6aad947bda0f3f46 = $0c152f5a1a56ce9f$var$NAMESPACE;\n\n});\n\nparcelRegister(\"fSAop\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $b8f821026a6eb0fb$export$455426655eab1d48, (v) => $b8f821026a6eb0fb$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24, (v) => $b8f821026a6eb0fb$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $b8f821026a6eb0fb$export$d1d99cf900472499;\nvar $b8f821026a6eb0fb$export$fe58bcf938607f6a;\nvar $b8f821026a6eb0fb$export$455426655eab1d48;\nvar $b8f821026a6eb0fb$export$db77ccec0bb4ccac;\nvar $b8f821026a6eb0fb$export$85c928794f8d04d4;\nvar $b8f821026a6eb0fb$export$79b41aa5d56abdff;\nvar $b8f821026a6eb0fb$export$64f0bed4ae6f0f24;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $b8f821026a6eb0fb$var$find = $12jBw.find;\nvar $b8f821026a6eb0fb$var$NAMESPACE = $12jBw.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$notEmptyString(input) {\n return input !== \"\";\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($b8f821026a6eb0fb$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */ function $b8f821026a6eb0fb$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $b8f821026a6eb0fb$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $b8f821026a6eb0fb$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($b8f821026a6eb0fb$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $b8f821026a6eb0fb$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $b8f821026a6eb0fb$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $b8f821026a6eb0fb$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $b8f821026a6eb0fb$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != \"function\") console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $b8f821026a6eb0fb$var$NodeType = {};\nvar $b8f821026a6eb0fb$var$ELEMENT_NODE = $b8f821026a6eb0fb$var$NodeType.ELEMENT_NODE = 1;\nvar $b8f821026a6eb0fb$var$ATTRIBUTE_NODE = $b8f821026a6eb0fb$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $b8f821026a6eb0fb$var$TEXT_NODE = $b8f821026a6eb0fb$var$NodeType.TEXT_NODE = 3;\nvar $b8f821026a6eb0fb$var$CDATA_SECTION_NODE = $b8f821026a6eb0fb$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $b8f821026a6eb0fb$var$ENTITY_NODE = $b8f821026a6eb0fb$var$NodeType.ENTITY_NODE = 6;\nvar $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE = $b8f821026a6eb0fb$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $b8f821026a6eb0fb$var$COMMENT_NODE = $b8f821026a6eb0fb$var$NodeType.COMMENT_NODE = 8;\nvar $b8f821026a6eb0fb$var$DOCUMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_NODE = 9;\nvar $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE = $b8f821026a6eb0fb$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $b8f821026a6eb0fb$var$NOTATION_NODE = $b8f821026a6eb0fb$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $b8f821026a6eb0fb$var$ExceptionCode = {};\nvar $b8f821026a6eb0fb$var$ExceptionMessage = {};\nvar $b8f821026a6eb0fb$var$INDEX_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INDEX_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $b8f821026a6eb0fb$var$DOMSTRING_SIZE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR = $b8f821026a6eb0fb$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $b8f821026a6eb0fb$var$WRONG_DOCUMENT_ERR = $b8f821026a6eb0fb$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $b8f821026a6eb0fb$var$INVALID_CHARACTER_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_CHARACTER_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $b8f821026a6eb0fb$var$NO_DATA_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $b8f821026a6eb0fb$var$NO_MODIFICATION_ALLOWED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $b8f821026a6eb0fb$var$NOT_FOUND_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_FOUND_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $b8f821026a6eb0fb$var$NOT_SUPPORTED_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NOT_SUPPORTED_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $b8f821026a6eb0fb$var$INVALID_STATE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_STATE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $b8f821026a6eb0fb$var$SYNTAX_ERR = $b8f821026a6eb0fb$var$ExceptionCode.SYNTAX_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $b8f821026a6eb0fb$var$INVALID_MODIFICATION_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $b8f821026a6eb0fb$var$NAMESPACE_ERR = $b8f821026a6eb0fb$var$ExceptionCode.NAMESPACE_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $b8f821026a6eb0fb$var$INVALID_ACCESS_ERR = $b8f821026a6eb0fb$var$ExceptionCode.INVALID_ACCESS_ERR = ($b8f821026a6eb0fb$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $b8f821026a6eb0fb$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $b8f821026a6eb0fb$var$ExceptionMessage[code]);\n this.message = $b8f821026a6eb0fb$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $b8f821026a6eb0fb$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$b8f821026a6eb0fb$var$DOMException.prototype = Error.prototype;\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$ExceptionCode, $b8f821026a6eb0fb$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $b8f821026a6eb0fb$var$NodeList() {}\n$b8f821026a6eb0fb$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$b8f821026a6eb0fb$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join(\"\");\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $b8f821026a6eb0fb$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n}\nfunction $b8f821026a6eb0fb$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $b8f821026a6eb0fb$var$__set__(list, \"length\", ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $b8f821026a6eb0fb$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$b8f821026a6eb0fb$var$LiveNodeList.prototype.item = function(i) {\n $b8f821026a6eb0fb$var$_updateLiveList(this);\n return this[i] || null;\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$LiveNodeList, $b8f821026a6eb0fb$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $b8f821026a6eb0fb$var$NamedNodeMap() {}\nfunction $b8f821026a6eb0fb$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $b8f821026a6eb0fb$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$b8f821026a6eb0fb$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, oldAttr);\n $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $b8f821026a6eb0fb$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $b8f821026a6eb0fb$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, new Error(el.tagName + \"@\" + attr));\n}\n$b8f821026a6eb0fb$var$NamedNodeMap.prototype = {\n length: 0,\n item: $b8f821026a6eb0fb$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $b8f821026a6eb0fb$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $b8f821026a6eb0fb$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $b8f821026a6eb0fb$var$DOMImplementation() {}\n$b8f821026a6eb0fb$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $b8f821026a6eb0fb$var$Document();\n doc.implementation = this;\n doc.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $b8f821026a6eb0fb$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || \"\";\n node.systemId = systemId || \"\";\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $b8f821026a6eb0fb$var$Node() {}\n$b8f821026a6eb0fb$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $b8f821026a6eb0fb$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE && child.nodeType == $b8f821026a6eb0fb$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $b8f821026a6eb0fb$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $b8f821026a6eb0fb$var$_xmlEncoder(c) {\n return c == \"<\" && \"<\" || c == \">\" && \">\" || c == \"&\" && \"&\" || c == '\"' && \""\" || \"&#\" + c.charCodeAt() + \";\";\n}\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node);\n$b8f821026a6eb0fb$var$copy($b8f821026a6eb0fb$var$NodeType, $b8f821026a6eb0fb$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $b8f821026a6eb0fb$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($b8f821026a6eb0fb$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $b8f821026a6eb0fb$var$Document() {\n this.ownerDocument = this;\n}\nfunction $b8f821026a6eb0fb$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : \"\"] = newAttr.value;\n}\nfunction $b8f821026a6eb0fb$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : \"\"];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $b8f821026a6eb0fb$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $b8f821026a6eb0fb$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$hasInsertableNodeType(node) {\n return node && ($b8f821026a6eb0fb$var$isElementNode(node) || $b8f821026a6eb0fb$var$isTextNode(node) || $b8f821026a6eb0fb$var$isDocTypeNode(node) || node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.COMMENT_NODE || node.nodeType === $b8f821026a6eb0fb$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isDocTypeNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isElementNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $b8f821026a6eb0fb$var$isTextNode(node) {\n return node && node.nodeType === $b8f821026a6eb0fb$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode) || $b8f821026a6eb0fb$var$isDocTypeNode(child)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isElementNode(node) && node !== child;\n }\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$b8f821026a6eb0fb$var$hasValidParentNodeType(parent)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected parent node type \" + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$NOT_FOUND_ERR, \"child not in parent\");\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$b8f821026a6eb0fb$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $b8f821026a6eb0fb$var$isDocTypeNode(node) && parent.nodeType !== $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Unexpected node type \" + node.nodeType + \" for parent node type \" + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementInsertionPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isDocTypeNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can not be appended since element is present\");\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($b8f821026a6eb0fb$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $b8f821026a6eb0fb$var$find(nodeChildNodes, $b8f821026a6eb0fb$var$isTextNode)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"More than one element or text in fragment\");\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Element in fragment can not be inserted before doctype\");\n }\n // Element\n if ($b8f821026a6eb0fb$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$b8f821026a6eb0fb$var$isElementReplacementPossible(parent, child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one element can be added and only after doctype\");\n }\n // DocumentType\n if ($b8f821026a6eb0fb$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $b8f821026a6eb0fb$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($b8f821026a6eb0fb$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Only one doctype is allowed\");\n var parentElementChild = $b8f821026a6eb0fb$var$find(parentChildNodes, $b8f821026a6eb0fb$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $b8f821026a6eb0fb$var$DOMException($b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR, \"Doctype can only be inserted before an element\");\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $b8f821026a6eb0fb$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $b8f821026a6eb0fb$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $b8f821026a6eb0fb$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $b8f821026a6eb0fb$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $b8f821026a6eb0fb$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $b8f821026a6eb0fb$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $b8f821026a6eb0fb$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$b8f821026a6eb0fb$var$Document.prototype = {\n //implementation : null,\n nodeName: \"#document\",\n nodeType: $b8f821026a6eb0fb$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $b8f821026a6eb0fb$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $b8f821026a6eb0fb$var$_insertBefore(this, newChild, oldChild, $b8f821026a6eb0fb$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($b8f821026a6eb0fb$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $b8f821026a6eb0fb$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $b8f821026a6eb0fb$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n if (node.getAttribute(\"id\") == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(classNames);\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $b8f821026a6eb0fb$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute(\"class\");\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $b8f821026a6eb0fb$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($b8f821026a6eb0fb$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $b8f821026a6eb0fb$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $b8f821026a6eb0fb$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $b8f821026a6eb0fb$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $b8f821026a6eb0fb$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $b8f821026a6eb0fb$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $b8f821026a6eb0fb$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Element();\n var pl = qualifiedName.split(\":\");\n var attrs = node.attributes = new $b8f821026a6eb0fb$var$NamedNodeMap();\n node.childNodes = new $b8f821026a6eb0fb$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $b8f821026a6eb0fb$var$Attr();\n var pl = qualifiedName.split(\":\");\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Document, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Element() {\n this._nsMap = {};\n}\n$b8f821026a6eb0fb$var$Element.prototype = {\n nodeType: $b8f821026a6eb0fb$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || \"\";\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $b8f821026a6eb0fb$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || \"\";\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $b8f821026a6eb0fb$var$ELEMENT_NODE && (tagName === \"*\" || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $b8f821026a6eb0fb$var$LiveNodeList(this, function(base) {\n var ls = [];\n $b8f821026a6eb0fb$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $b8f821026a6eb0fb$var$ELEMENT_NODE && (namespaceURI === \"*\" || node.namespaceURI === namespaceURI) && (localName === \"*\" || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagName = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagName;\n$b8f821026a6eb0fb$var$Document.prototype.getElementsByTagNameNS = $b8f821026a6eb0fb$var$Element.prototype.getElementsByTagNameNS;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Element, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Attr() {}\n$b8f821026a6eb0fb$var$Attr.prototype.nodeType = $b8f821026a6eb0fb$var$ATTRIBUTE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Attr, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$CharacterData() {}\n$b8f821026a6eb0fb$var$CharacterData.prototype = {\n data: \"\",\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($b8f821026a6eb0fb$var$ExceptionMessage[$b8f821026a6eb0fb$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CharacterData, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Text() {}\n$b8f821026a6eb0fb$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $b8f821026a6eb0fb$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Text, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$Comment() {}\n$b8f821026a6eb0fb$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $b8f821026a6eb0fb$var$COMMENT_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Comment, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$CDATASection() {}\n$b8f821026a6eb0fb$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $b8f821026a6eb0fb$var$CDATA_SECTION_NODE\n};\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$CDATASection, $b8f821026a6eb0fb$var$CharacterData);\nfunction $b8f821026a6eb0fb$var$DocumentType() {}\n$b8f821026a6eb0fb$var$DocumentType.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentType, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Notation() {}\n$b8f821026a6eb0fb$var$Notation.prototype.nodeType = $b8f821026a6eb0fb$var$NOTATION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Notation, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$Entity() {}\n$b8f821026a6eb0fb$var$Entity.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$Entity, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$EntityReference() {}\n$b8f821026a6eb0fb$var$EntityReference.prototype.nodeType = $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$EntityReference, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$DocumentFragment() {}\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$b8f821026a6eb0fb$var$DocumentFragment.prototype.nodeType = $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$DocumentFragment, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$ProcessingInstruction() {}\n$b8f821026a6eb0fb$var$ProcessingInstruction.prototype.nodeType = $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE;\n$b8f821026a6eb0fb$var$_extends($b8f821026a6eb0fb$var$ProcessingInstruction, $b8f821026a6eb0fb$var$Node);\nfunction $b8f821026a6eb0fb$var$XMLSerializer() {}\n$b8f821026a6eb0fb$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $b8f821026a6eb0fb$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$b8f821026a6eb0fb$var$Node.prototype.toString = $b8f821026a6eb0fb$var$nodeSerializeToString;\nfunction $b8f821026a6eb0fb$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $b8f821026a6eb0fb$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join(\"\");\n}\nfunction $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $b8f821026a6eb0fb$var$NAMESPACE.XML || uri === $b8f821026a6eb0fb$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $b8f821026a6eb0fb$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(\" \", qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $b8f821026a6eb0fb$var$_xmlEncoder), '\"');\n}\nfunction $b8f821026a6eb0fb$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == \"string\") {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $b8f821026a6eb0fb$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === \"xmlns\") {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === \"\" && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + \":\" + nodeName;\n break;\n }\n }\n }\n buf.push(\"<\", prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == \"xmlns\") visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == \"xmlns\") visibleNamespaces.push({\n prefix: \"\",\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($b8f821026a6eb0fb$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || \"\";\n var uri = attr.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $b8f821026a6eb0fb$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $b8f821026a6eb0fb$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || \"\";\n var uri = node.namespaceURI;\n $b8f821026a6eb0fb$var$addSerializedAttribute(buf, prefix ? \"xmlns:\" + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push(\">\");\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push(\"\");\n } else buf.push(\"/>\");\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $b8f821026a6eb0fb$var$DOCUMENT_NODE:\n case $b8f821026a6eb0fb$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $b8f821026a6eb0fb$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $b8f821026a6eb0fb$var$ATTRIBUTE_NODE:\n return $b8f821026a6eb0fb$var$addSerializedAttribute(buf, node.name, node.value);\n case $b8f821026a6eb0fb$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $b8f821026a6eb0fb$var$_xmlEncoder));\n case $b8f821026a6eb0fb$var$CDATA_SECTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$COMMENT_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push(\"\");\n } else if (sysid && sysid != \".\") buf.push(\" SYSTEM \", sysid, \">\");\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $b8f821026a6eb0fb$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"\");\n case $b8f821026a6eb0fb$var$ENTITY_REFERENCE_NODE:\n return buf.push(\"&\", node.nodeName, \";\");\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push(\"??\", node.nodeName);\n }\n}\nfunction $b8f821026a6eb0fb$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $b8f821026a6eb0fb$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i $bb581e29d81da91f$export$91f0e5ff03dc84f, (v) => $bb581e29d81da91f$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $bb581e29d81da91f$export$b7e4d4631df36afa, (v) => $bb581e29d81da91f$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $bb581e29d81da91f$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $bb581e29d81da91f$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $bb581e29d81da91f$export$79451380caed3f98;\n\"use strict\";\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bb581e29d81da91f$require$freeze = $12jBw.freeze;\n$bb581e29d81da91f$export$91f0e5ff03dc84f = $bb581e29d81da91f$require$freeze({\n amp: \"&\",\n apos: \"'\",\n gt: \">\",\n lt: \"<\",\n quot: '\"'\n});\n$bb581e29d81da91f$export$b7e4d4631df36afa = $bb581e29d81da91f$require$freeze({\n Aacute: \"\\xc1\",\n aacute: \"\\xe1\",\n Abreve: \"\\u0102\",\n abreve: \"\\u0103\",\n ac: \"\\u223E\",\n acd: \"\\u223F\",\n acE: \"\\u223E\\u0333\",\n Acirc: \"\\xc2\",\n acirc: \"\\xe2\",\n acute: \"\\xb4\",\n Acy: \"\\u0410\",\n acy: \"\\u0430\",\n AElig: \"\\xc6\",\n aelig: \"\\xe6\",\n af: \"\\u2061\",\n Afr: \"\\uD835\\uDD04\",\n afr: \"\\uD835\\uDD1E\",\n Agrave: \"\\xc0\",\n agrave: \"\\xe0\",\n alefsym: \"\\u2135\",\n aleph: \"\\u2135\",\n Alpha: \"\\u0391\",\n alpha: \"\\u03B1\",\n Amacr: \"\\u0100\",\n amacr: \"\\u0101\",\n amalg: \"\\u2A3F\",\n AMP: \"&\",\n amp: \"&\",\n And: \"\\u2A53\",\n and: \"\\u2227\",\n andand: \"\\u2A55\",\n andd: \"\\u2A5C\",\n andslope: \"\\u2A58\",\n andv: \"\\u2A5A\",\n ang: \"\\u2220\",\n ange: \"\\u29A4\",\n angle: \"\\u2220\",\n angmsd: \"\\u2221\",\n angmsdaa: \"\\u29A8\",\n angmsdab: \"\\u29A9\",\n angmsdac: \"\\u29AA\",\n angmsdad: \"\\u29AB\",\n angmsdae: \"\\u29AC\",\n angmsdaf: \"\\u29AD\",\n angmsdag: \"\\u29AE\",\n angmsdah: \"\\u29AF\",\n angrt: \"\\u221F\",\n angrtvb: \"\\u22BE\",\n angrtvbd: \"\\u299D\",\n angsph: \"\\u2222\",\n angst: \"\\xc5\",\n angzarr: \"\\u237C\",\n Aogon: \"\\u0104\",\n aogon: \"\\u0105\",\n Aopf: \"\\uD835\\uDD38\",\n aopf: \"\\uD835\\uDD52\",\n ap: \"\\u2248\",\n apacir: \"\\u2A6F\",\n apE: \"\\u2A70\",\n ape: \"\\u224A\",\n apid: \"\\u224B\",\n apos: \"'\",\n ApplyFunction: \"\\u2061\",\n approx: \"\\u2248\",\n approxeq: \"\\u224A\",\n Aring: \"\\xc5\",\n aring: \"\\xe5\",\n Ascr: \"\\uD835\\uDC9C\",\n ascr: \"\\uD835\\uDCB6\",\n Assign: \"\\u2254\",\n ast: \"*\",\n asymp: \"\\u2248\",\n asympeq: \"\\u224D\",\n Atilde: \"\\xc3\",\n atilde: \"\\xe3\",\n Auml: \"\\xc4\",\n auml: \"\\xe4\",\n awconint: \"\\u2233\",\n awint: \"\\u2A11\",\n backcong: \"\\u224C\",\n backepsilon: \"\\u03F6\",\n backprime: \"\\u2035\",\n backsim: \"\\u223D\",\n backsimeq: \"\\u22CD\",\n Backslash: \"\\u2216\",\n Barv: \"\\u2AE7\",\n barvee: \"\\u22BD\",\n Barwed: \"\\u2306\",\n barwed: \"\\u2305\",\n barwedge: \"\\u2305\",\n bbrk: \"\\u23B5\",\n bbrktbrk: \"\\u23B6\",\n bcong: \"\\u224C\",\n Bcy: \"\\u0411\",\n bcy: \"\\u0431\",\n bdquo: \"\\u201E\",\n becaus: \"\\u2235\",\n Because: \"\\u2235\",\n because: \"\\u2235\",\n bemptyv: \"\\u29B0\",\n bepsi: \"\\u03F6\",\n bernou: \"\\u212C\",\n Bernoullis: \"\\u212C\",\n Beta: \"\\u0392\",\n beta: \"\\u03B2\",\n beth: \"\\u2136\",\n between: \"\\u226C\",\n Bfr: \"\\uD835\\uDD05\",\n bfr: \"\\uD835\\uDD1F\",\n bigcap: \"\\u22C2\",\n bigcirc: \"\\u25EF\",\n bigcup: \"\\u22C3\",\n bigodot: \"\\u2A00\",\n bigoplus: \"\\u2A01\",\n bigotimes: \"\\u2A02\",\n bigsqcup: \"\\u2A06\",\n bigstar: \"\\u2605\",\n bigtriangledown: \"\\u25BD\",\n bigtriangleup: \"\\u25B3\",\n biguplus: \"\\u2A04\",\n bigvee: \"\\u22C1\",\n bigwedge: \"\\u22C0\",\n bkarow: \"\\u290D\",\n blacklozenge: \"\\u29EB\",\n blacksquare: \"\\u25AA\",\n blacktriangle: \"\\u25B4\",\n blacktriangledown: \"\\u25BE\",\n blacktriangleleft: \"\\u25C2\",\n blacktriangleright: \"\\u25B8\",\n blank: \"\\u2423\",\n blk12: \"\\u2592\",\n blk14: \"\\u2591\",\n blk34: \"\\u2593\",\n block: \"\\u2588\",\n bne: \"=\\u20E5\",\n bnequiv: \"\\u2261\\u20E5\",\n bNot: \"\\u2AED\",\n bnot: \"\\u2310\",\n Bopf: \"\\uD835\\uDD39\",\n bopf: \"\\uD835\\uDD53\",\n bot: \"\\u22A5\",\n bottom: \"\\u22A5\",\n bowtie: \"\\u22C8\",\n boxbox: \"\\u29C9\",\n boxDL: \"\\u2557\",\n boxDl: \"\\u2556\",\n boxdL: \"\\u2555\",\n boxdl: \"\\u2510\",\n boxDR: \"\\u2554\",\n boxDr: \"\\u2553\",\n boxdR: \"\\u2552\",\n boxdr: \"\\u250C\",\n boxH: \"\\u2550\",\n boxh: \"\\u2500\",\n boxHD: \"\\u2566\",\n boxHd: \"\\u2564\",\n boxhD: \"\\u2565\",\n boxhd: \"\\u252C\",\n boxHU: \"\\u2569\",\n boxHu: \"\\u2567\",\n boxhU: \"\\u2568\",\n boxhu: \"\\u2534\",\n boxminus: \"\\u229F\",\n boxplus: \"\\u229E\",\n boxtimes: \"\\u22A0\",\n boxUL: \"\\u255D\",\n boxUl: \"\\u255C\",\n boxuL: \"\\u255B\",\n boxul: \"\\u2518\",\n boxUR: \"\\u255A\",\n boxUr: \"\\u2559\",\n boxuR: \"\\u2558\",\n boxur: \"\\u2514\",\n boxV: \"\\u2551\",\n boxv: \"\\u2502\",\n boxVH: \"\\u256C\",\n boxVh: \"\\u256B\",\n boxvH: \"\\u256A\",\n boxvh: \"\\u253C\",\n boxVL: \"\\u2563\",\n boxVl: \"\\u2562\",\n boxvL: \"\\u2561\",\n boxvl: \"\\u2524\",\n boxVR: \"\\u2560\",\n boxVr: \"\\u255F\",\n boxvR: \"\\u255E\",\n boxvr: \"\\u251C\",\n bprime: \"\\u2035\",\n Breve: \"\\u02D8\",\n breve: \"\\u02D8\",\n brvbar: \"\\xa6\",\n Bscr: \"\\u212C\",\n bscr: \"\\uD835\\uDCB7\",\n bsemi: \"\\u204F\",\n bsim: \"\\u223D\",\n bsime: \"\\u22CD\",\n bsol: \"\\\\\",\n bsolb: \"\\u29C5\",\n bsolhsub: \"\\u27C8\",\n bull: \"\\u2022\",\n bullet: \"\\u2022\",\n bump: \"\\u224E\",\n bumpE: \"\\u2AAE\",\n bumpe: \"\\u224F\",\n Bumpeq: \"\\u224E\",\n bumpeq: \"\\u224F\",\n Cacute: \"\\u0106\",\n cacute: \"\\u0107\",\n Cap: \"\\u22D2\",\n cap: \"\\u2229\",\n capand: \"\\u2A44\",\n capbrcup: \"\\u2A49\",\n capcap: \"\\u2A4B\",\n capcup: \"\\u2A47\",\n capdot: \"\\u2A40\",\n CapitalDifferentialD: \"\\u2145\",\n caps: \"\\u2229\\uFE00\",\n caret: \"\\u2041\",\n caron: \"\\u02C7\",\n Cayleys: \"\\u212D\",\n ccaps: \"\\u2A4D\",\n Ccaron: \"\\u010C\",\n ccaron: \"\\u010D\",\n Ccedil: \"\\xc7\",\n ccedil: \"\\xe7\",\n Ccirc: \"\\u0108\",\n ccirc: \"\\u0109\",\n Cconint: \"\\u2230\",\n ccups: \"\\u2A4C\",\n ccupssm: \"\\u2A50\",\n Cdot: \"\\u010A\",\n cdot: \"\\u010B\",\n cedil: \"\\xb8\",\n Cedilla: \"\\xb8\",\n cemptyv: \"\\u29B2\",\n cent: \"\\xa2\",\n CenterDot: \"\\xb7\",\n centerdot: \"\\xb7\",\n Cfr: \"\\u212D\",\n cfr: \"\\uD835\\uDD20\",\n CHcy: \"\\u0427\",\n chcy: \"\\u0447\",\n check: \"\\u2713\",\n checkmark: \"\\u2713\",\n Chi: \"\\u03A7\",\n chi: \"\\u03C7\",\n cir: \"\\u25CB\",\n circ: \"\\u02C6\",\n circeq: \"\\u2257\",\n circlearrowleft: \"\\u21BA\",\n circlearrowright: \"\\u21BB\",\n circledast: \"\\u229B\",\n circledcirc: \"\\u229A\",\n circleddash: \"\\u229D\",\n CircleDot: \"\\u2299\",\n circledR: \"\\xae\",\n circledS: \"\\u24C8\",\n CircleMinus: \"\\u2296\",\n CirclePlus: \"\\u2295\",\n CircleTimes: \"\\u2297\",\n cirE: \"\\u29C3\",\n cire: \"\\u2257\",\n cirfnint: \"\\u2A10\",\n cirmid: \"\\u2AEF\",\n cirscir: \"\\u29C2\",\n ClockwiseContourIntegral: \"\\u2232\",\n CloseCurlyDoubleQuote: \"\\u201D\",\n CloseCurlyQuote: \"\\u2019\",\n clubs: \"\\u2663\",\n clubsuit: \"\\u2663\",\n Colon: \"\\u2237\",\n colon: \":\",\n Colone: \"\\u2A74\",\n colone: \"\\u2254\",\n coloneq: \"\\u2254\",\n comma: \",\",\n commat: \"@\",\n comp: \"\\u2201\",\n compfn: \"\\u2218\",\n complement: \"\\u2201\",\n complexes: \"\\u2102\",\n cong: \"\\u2245\",\n congdot: \"\\u2A6D\",\n Congruent: \"\\u2261\",\n Conint: \"\\u222F\",\n conint: \"\\u222E\",\n ContourIntegral: \"\\u222E\",\n Copf: \"\\u2102\",\n copf: \"\\uD835\\uDD54\",\n coprod: \"\\u2210\",\n Coproduct: \"\\u2210\",\n COPY: \"\\xa9\",\n copy: \"\\xa9\",\n copysr: \"\\u2117\",\n CounterClockwiseContourIntegral: \"\\u2233\",\n crarr: \"\\u21B5\",\n Cross: \"\\u2A2F\",\n cross: \"\\u2717\",\n Cscr: \"\\uD835\\uDC9E\",\n cscr: \"\\uD835\\uDCB8\",\n csub: \"\\u2ACF\",\n csube: \"\\u2AD1\",\n csup: \"\\u2AD0\",\n csupe: \"\\u2AD2\",\n ctdot: \"\\u22EF\",\n cudarrl: \"\\u2938\",\n cudarrr: \"\\u2935\",\n cuepr: \"\\u22DE\",\n cuesc: \"\\u22DF\",\n cularr: \"\\u21B6\",\n cularrp: \"\\u293D\",\n Cup: \"\\u22D3\",\n cup: \"\\u222A\",\n cupbrcap: \"\\u2A48\",\n CupCap: \"\\u224D\",\n cupcap: \"\\u2A46\",\n cupcup: \"\\u2A4A\",\n cupdot: \"\\u228D\",\n cupor: \"\\u2A45\",\n cups: \"\\u222A\\uFE00\",\n curarr: \"\\u21B7\",\n curarrm: \"\\u293C\",\n curlyeqprec: \"\\u22DE\",\n curlyeqsucc: \"\\u22DF\",\n curlyvee: \"\\u22CE\",\n curlywedge: \"\\u22CF\",\n curren: \"\\xa4\",\n curvearrowleft: \"\\u21B6\",\n curvearrowright: \"\\u21B7\",\n cuvee: \"\\u22CE\",\n cuwed: \"\\u22CF\",\n cwconint: \"\\u2232\",\n cwint: \"\\u2231\",\n cylcty: \"\\u232D\",\n Dagger: \"\\u2021\",\n dagger: \"\\u2020\",\n daleth: \"\\u2138\",\n Darr: \"\\u21A1\",\n dArr: \"\\u21D3\",\n darr: \"\\u2193\",\n dash: \"\\u2010\",\n Dashv: \"\\u2AE4\",\n dashv: \"\\u22A3\",\n dbkarow: \"\\u290F\",\n dblac: \"\\u02DD\",\n Dcaron: \"\\u010E\",\n dcaron: \"\\u010F\",\n Dcy: \"\\u0414\",\n dcy: \"\\u0434\",\n DD: \"\\u2145\",\n dd: \"\\u2146\",\n ddagger: \"\\u2021\",\n ddarr: \"\\u21CA\",\n DDotrahd: \"\\u2911\",\n ddotseq: \"\\u2A77\",\n deg: \"\\xb0\",\n Del: \"\\u2207\",\n Delta: \"\\u0394\",\n delta: \"\\u03B4\",\n demptyv: \"\\u29B1\",\n dfisht: \"\\u297F\",\n Dfr: \"\\uD835\\uDD07\",\n dfr: \"\\uD835\\uDD21\",\n dHar: \"\\u2965\",\n dharl: \"\\u21C3\",\n dharr: \"\\u21C2\",\n DiacriticalAcute: \"\\xb4\",\n DiacriticalDot: \"\\u02D9\",\n DiacriticalDoubleAcute: \"\\u02DD\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"\\u02DC\",\n diam: \"\\u22C4\",\n Diamond: \"\\u22C4\",\n diamond: \"\\u22C4\",\n diamondsuit: \"\\u2666\",\n diams: \"\\u2666\",\n die: \"\\xa8\",\n DifferentialD: \"\\u2146\",\n digamma: \"\\u03DD\",\n disin: \"\\u22F2\",\n div: \"\\xf7\",\n divide: \"\\xf7\",\n divideontimes: \"\\u22C7\",\n divonx: \"\\u22C7\",\n DJcy: \"\\u0402\",\n djcy: \"\\u0452\",\n dlcorn: \"\\u231E\",\n dlcrop: \"\\u230D\",\n dollar: \"$\",\n Dopf: \"\\uD835\\uDD3B\",\n dopf: \"\\uD835\\uDD55\",\n Dot: \"\\xa8\",\n dot: \"\\u02D9\",\n DotDot: \"\\u20DC\",\n doteq: \"\\u2250\",\n doteqdot: \"\\u2251\",\n DotEqual: \"\\u2250\",\n dotminus: \"\\u2238\",\n dotplus: \"\\u2214\",\n dotsquare: \"\\u22A1\",\n doublebarwedge: \"\\u2306\",\n DoubleContourIntegral: \"\\u222F\",\n DoubleDot: \"\\xa8\",\n DoubleDownArrow: \"\\u21D3\",\n DoubleLeftArrow: \"\\u21D0\",\n DoubleLeftRightArrow: \"\\u21D4\",\n DoubleLeftTee: \"\\u2AE4\",\n DoubleLongLeftArrow: \"\\u27F8\",\n DoubleLongLeftRightArrow: \"\\u27FA\",\n DoubleLongRightArrow: \"\\u27F9\",\n DoubleRightArrow: \"\\u21D2\",\n DoubleRightTee: \"\\u22A8\",\n DoubleUpArrow: \"\\u21D1\",\n DoubleUpDownArrow: \"\\u21D5\",\n DoubleVerticalBar: \"\\u2225\",\n DownArrow: \"\\u2193\",\n Downarrow: \"\\u21D3\",\n downarrow: \"\\u2193\",\n DownArrowBar: \"\\u2913\",\n DownArrowUpArrow: \"\\u21F5\",\n DownBreve: \"\\u0311\",\n downdownarrows: \"\\u21CA\",\n downharpoonleft: \"\\u21C3\",\n downharpoonright: \"\\u21C2\",\n DownLeftRightVector: \"\\u2950\",\n DownLeftTeeVector: \"\\u295E\",\n DownLeftVector: \"\\u21BD\",\n DownLeftVectorBar: \"\\u2956\",\n DownRightTeeVector: \"\\u295F\",\n DownRightVector: \"\\u21C1\",\n DownRightVectorBar: \"\\u2957\",\n DownTee: \"\\u22A4\",\n DownTeeArrow: \"\\u21A7\",\n drbkarow: \"\\u2910\",\n drcorn: \"\\u231F\",\n drcrop: \"\\u230C\",\n Dscr: \"\\uD835\\uDC9F\",\n dscr: \"\\uD835\\uDCB9\",\n DScy: \"\\u0405\",\n dscy: \"\\u0455\",\n dsol: \"\\u29F6\",\n Dstrok: \"\\u0110\",\n dstrok: \"\\u0111\",\n dtdot: \"\\u22F1\",\n dtri: \"\\u25BF\",\n dtrif: \"\\u25BE\",\n duarr: \"\\u21F5\",\n duhar: \"\\u296F\",\n dwangle: \"\\u29A6\",\n DZcy: \"\\u040F\",\n dzcy: \"\\u045F\",\n dzigrarr: \"\\u27FF\",\n Eacute: \"\\xc9\",\n eacute: \"\\xe9\",\n easter: \"\\u2A6E\",\n Ecaron: \"\\u011A\",\n ecaron: \"\\u011B\",\n ecir: \"\\u2256\",\n Ecirc: \"\\xca\",\n ecirc: \"\\xea\",\n ecolon: \"\\u2255\",\n Ecy: \"\\u042D\",\n ecy: \"\\u044D\",\n eDDot: \"\\u2A77\",\n Edot: \"\\u0116\",\n eDot: \"\\u2251\",\n edot: \"\\u0117\",\n ee: \"\\u2147\",\n efDot: \"\\u2252\",\n Efr: \"\\uD835\\uDD08\",\n efr: \"\\uD835\\uDD22\",\n eg: \"\\u2A9A\",\n Egrave: \"\\xc8\",\n egrave: \"\\xe8\",\n egs: \"\\u2A96\",\n egsdot: \"\\u2A98\",\n el: \"\\u2A99\",\n Element: \"\\u2208\",\n elinters: \"\\u23E7\",\n ell: \"\\u2113\",\n els: \"\\u2A95\",\n elsdot: \"\\u2A97\",\n Emacr: \"\\u0112\",\n emacr: \"\\u0113\",\n empty: \"\\u2205\",\n emptyset: \"\\u2205\",\n EmptySmallSquare: \"\\u25FB\",\n emptyv: \"\\u2205\",\n EmptyVerySmallSquare: \"\\u25AB\",\n emsp: \"\\u2003\",\n emsp13: \"\\u2004\",\n emsp14: \"\\u2005\",\n ENG: \"\\u014A\",\n eng: \"\\u014B\",\n ensp: \"\\u2002\",\n Eogon: \"\\u0118\",\n eogon: \"\\u0119\",\n Eopf: \"\\uD835\\uDD3C\",\n eopf: \"\\uD835\\uDD56\",\n epar: \"\\u22D5\",\n eparsl: \"\\u29E3\",\n eplus: \"\\u2A71\",\n epsi: \"\\u03B5\",\n Epsilon: \"\\u0395\",\n epsilon: \"\\u03B5\",\n epsiv: \"\\u03F5\",\n eqcirc: \"\\u2256\",\n eqcolon: \"\\u2255\",\n eqsim: \"\\u2242\",\n eqslantgtr: \"\\u2A96\",\n eqslantless: \"\\u2A95\",\n Equal: \"\\u2A75\",\n equals: \"=\",\n EqualTilde: \"\\u2242\",\n equest: \"\\u225F\",\n Equilibrium: \"\\u21CC\",\n equiv: \"\\u2261\",\n equivDD: \"\\u2A78\",\n eqvparsl: \"\\u29E5\",\n erarr: \"\\u2971\",\n erDot: \"\\u2253\",\n Escr: \"\\u2130\",\n escr: \"\\u212F\",\n esdot: \"\\u2250\",\n Esim: \"\\u2A73\",\n esim: \"\\u2242\",\n Eta: \"\\u0397\",\n eta: \"\\u03B7\",\n ETH: \"\\xd0\",\n eth: \"\\xf0\",\n Euml: \"\\xcb\",\n euml: \"\\xeb\",\n euro: \"\\u20AC\",\n excl: \"!\",\n exist: \"\\u2203\",\n Exists: \"\\u2203\",\n expectation: \"\\u2130\",\n ExponentialE: \"\\u2147\",\n exponentiale: \"\\u2147\",\n fallingdotseq: \"\\u2252\",\n Fcy: \"\\u0424\",\n fcy: \"\\u0444\",\n female: \"\\u2640\",\n ffilig: \"\\uFB03\",\n fflig: \"\\uFB00\",\n ffllig: \"\\uFB04\",\n Ffr: \"\\uD835\\uDD09\",\n ffr: \"\\uD835\\uDD23\",\n filig: \"\\uFB01\",\n FilledSmallSquare: \"\\u25FC\",\n FilledVerySmallSquare: \"\\u25AA\",\n fjlig: \"fj\",\n flat: \"\\u266D\",\n fllig: \"\\uFB02\",\n fltns: \"\\u25B1\",\n fnof: \"\\u0192\",\n Fopf: \"\\uD835\\uDD3D\",\n fopf: \"\\uD835\\uDD57\",\n ForAll: \"\\u2200\",\n forall: \"\\u2200\",\n fork: \"\\u22D4\",\n forkv: \"\\u2AD9\",\n Fouriertrf: \"\\u2131\",\n fpartint: \"\\u2A0D\",\n frac12: \"\\xbd\",\n frac13: \"\\u2153\",\n frac14: \"\\xbc\",\n frac15: \"\\u2155\",\n frac16: \"\\u2159\",\n frac18: \"\\u215B\",\n frac23: \"\\u2154\",\n frac25: \"\\u2156\",\n frac34: \"\\xbe\",\n frac35: \"\\u2157\",\n frac38: \"\\u215C\",\n frac45: \"\\u2158\",\n frac56: \"\\u215A\",\n frac58: \"\\u215D\",\n frac78: \"\\u215E\",\n frasl: \"\\u2044\",\n frown: \"\\u2322\",\n Fscr: \"\\u2131\",\n fscr: \"\\uD835\\uDCBB\",\n gacute: \"\\u01F5\",\n Gamma: \"\\u0393\",\n gamma: \"\\u03B3\",\n Gammad: \"\\u03DC\",\n gammad: \"\\u03DD\",\n gap: \"\\u2A86\",\n Gbreve: \"\\u011E\",\n gbreve: \"\\u011F\",\n Gcedil: \"\\u0122\",\n Gcirc: \"\\u011C\",\n gcirc: \"\\u011D\",\n Gcy: \"\\u0413\",\n gcy: \"\\u0433\",\n Gdot: \"\\u0120\",\n gdot: \"\\u0121\",\n gE: \"\\u2267\",\n ge: \"\\u2265\",\n gEl: \"\\u2A8C\",\n gel: \"\\u22DB\",\n geq: \"\\u2265\",\n geqq: \"\\u2267\",\n geqslant: \"\\u2A7E\",\n ges: \"\\u2A7E\",\n gescc: \"\\u2AA9\",\n gesdot: \"\\u2A80\",\n gesdoto: \"\\u2A82\",\n gesdotol: \"\\u2A84\",\n gesl: \"\\u22DB\\uFE00\",\n gesles: \"\\u2A94\",\n Gfr: \"\\uD835\\uDD0A\",\n gfr: \"\\uD835\\uDD24\",\n Gg: \"\\u22D9\",\n gg: \"\\u226B\",\n ggg: \"\\u22D9\",\n gimel: \"\\u2137\",\n GJcy: \"\\u0403\",\n gjcy: \"\\u0453\",\n gl: \"\\u2277\",\n gla: \"\\u2AA5\",\n glE: \"\\u2A92\",\n glj: \"\\u2AA4\",\n gnap: \"\\u2A8A\",\n gnapprox: \"\\u2A8A\",\n gnE: \"\\u2269\",\n gne: \"\\u2A88\",\n gneq: \"\\u2A88\",\n gneqq: \"\\u2269\",\n gnsim: \"\\u22E7\",\n Gopf: \"\\uD835\\uDD3E\",\n gopf: \"\\uD835\\uDD58\",\n grave: \"`\",\n GreaterEqual: \"\\u2265\",\n GreaterEqualLess: \"\\u22DB\",\n GreaterFullEqual: \"\\u2267\",\n GreaterGreater: \"\\u2AA2\",\n GreaterLess: \"\\u2277\",\n GreaterSlantEqual: \"\\u2A7E\",\n GreaterTilde: \"\\u2273\",\n Gscr: \"\\uD835\\uDCA2\",\n gscr: \"\\u210A\",\n gsim: \"\\u2273\",\n gsime: \"\\u2A8E\",\n gsiml: \"\\u2A90\",\n Gt: \"\\u226B\",\n GT: \">\",\n gt: \">\",\n gtcc: \"\\u2AA7\",\n gtcir: \"\\u2A7A\",\n gtdot: \"\\u22D7\",\n gtlPar: \"\\u2995\",\n gtquest: \"\\u2A7C\",\n gtrapprox: \"\\u2A86\",\n gtrarr: \"\\u2978\",\n gtrdot: \"\\u22D7\",\n gtreqless: \"\\u22DB\",\n gtreqqless: \"\\u2A8C\",\n gtrless: \"\\u2277\",\n gtrsim: \"\\u2273\",\n gvertneqq: \"\\u2269\\uFE00\",\n gvnE: \"\\u2269\\uFE00\",\n Hacek: \"\\u02C7\",\n hairsp: \"\\u200A\",\n half: \"\\xbd\",\n hamilt: \"\\u210B\",\n HARDcy: \"\\u042A\",\n hardcy: \"\\u044A\",\n hArr: \"\\u21D4\",\n harr: \"\\u2194\",\n harrcir: \"\\u2948\",\n harrw: \"\\u21AD\",\n Hat: \"^\",\n hbar: \"\\u210F\",\n Hcirc: \"\\u0124\",\n hcirc: \"\\u0125\",\n hearts: \"\\u2665\",\n heartsuit: \"\\u2665\",\n hellip: \"\\u2026\",\n hercon: \"\\u22B9\",\n Hfr: \"\\u210C\",\n hfr: \"\\uD835\\uDD25\",\n HilbertSpace: \"\\u210B\",\n hksearow: \"\\u2925\",\n hkswarow: \"\\u2926\",\n hoarr: \"\\u21FF\",\n homtht: \"\\u223B\",\n hookleftarrow: \"\\u21A9\",\n hookrightarrow: \"\\u21AA\",\n Hopf: \"\\u210D\",\n hopf: \"\\uD835\\uDD59\",\n horbar: \"\\u2015\",\n HorizontalLine: \"\\u2500\",\n Hscr: \"\\u210B\",\n hscr: \"\\uD835\\uDCBD\",\n hslash: \"\\u210F\",\n Hstrok: \"\\u0126\",\n hstrok: \"\\u0127\",\n HumpDownHump: \"\\u224E\",\n HumpEqual: \"\\u224F\",\n hybull: \"\\u2043\",\n hyphen: \"\\u2010\",\n Iacute: \"\\xcd\",\n iacute: \"\\xed\",\n ic: \"\\u2063\",\n Icirc: \"\\xce\",\n icirc: \"\\xee\",\n Icy: \"\\u0418\",\n icy: \"\\u0438\",\n Idot: \"\\u0130\",\n IEcy: \"\\u0415\",\n iecy: \"\\u0435\",\n iexcl: \"\\xa1\",\n iff: \"\\u21D4\",\n Ifr: \"\\u2111\",\n ifr: \"\\uD835\\uDD26\",\n Igrave: \"\\xcc\",\n igrave: \"\\xec\",\n ii: \"\\u2148\",\n iiiint: \"\\u2A0C\",\n iiint: \"\\u222D\",\n iinfin: \"\\u29DC\",\n iiota: \"\\u2129\",\n IJlig: \"\\u0132\",\n ijlig: \"\\u0133\",\n Im: \"\\u2111\",\n Imacr: \"\\u012A\",\n imacr: \"\\u012B\",\n image: \"\\u2111\",\n ImaginaryI: \"\\u2148\",\n imagline: \"\\u2110\",\n imagpart: \"\\u2111\",\n imath: \"\\u0131\",\n imof: \"\\u22B7\",\n imped: \"\\u01B5\",\n Implies: \"\\u21D2\",\n in: \"\\u2208\",\n incare: \"\\u2105\",\n infin: \"\\u221E\",\n infintie: \"\\u29DD\",\n inodot: \"\\u0131\",\n Int: \"\\u222C\",\n int: \"\\u222B\",\n intcal: \"\\u22BA\",\n integers: \"\\u2124\",\n Integral: \"\\u222B\",\n intercal: \"\\u22BA\",\n Intersection: \"\\u22C2\",\n intlarhk: \"\\u2A17\",\n intprod: \"\\u2A3C\",\n InvisibleComma: \"\\u2063\",\n InvisibleTimes: \"\\u2062\",\n IOcy: \"\\u0401\",\n iocy: \"\\u0451\",\n Iogon: \"\\u012E\",\n iogon: \"\\u012F\",\n Iopf: \"\\uD835\\uDD40\",\n iopf: \"\\uD835\\uDD5A\",\n Iota: \"\\u0399\",\n iota: \"\\u03B9\",\n iprod: \"\\u2A3C\",\n iquest: \"\\xbf\",\n Iscr: \"\\u2110\",\n iscr: \"\\uD835\\uDCBE\",\n isin: \"\\u2208\",\n isindot: \"\\u22F5\",\n isinE: \"\\u22F9\",\n isins: \"\\u22F4\",\n isinsv: \"\\u22F3\",\n isinv: \"\\u2208\",\n it: \"\\u2062\",\n Itilde: \"\\u0128\",\n itilde: \"\\u0129\",\n Iukcy: \"\\u0406\",\n iukcy: \"\\u0456\",\n Iuml: \"\\xcf\",\n iuml: \"\\xef\",\n Jcirc: \"\\u0134\",\n jcirc: \"\\u0135\",\n Jcy: \"\\u0419\",\n jcy: \"\\u0439\",\n Jfr: \"\\uD835\\uDD0D\",\n jfr: \"\\uD835\\uDD27\",\n jmath: \"\\u0237\",\n Jopf: \"\\uD835\\uDD41\",\n jopf: \"\\uD835\\uDD5B\",\n Jscr: \"\\uD835\\uDCA5\",\n jscr: \"\\uD835\\uDCBF\",\n Jsercy: \"\\u0408\",\n jsercy: \"\\u0458\",\n Jukcy: \"\\u0404\",\n jukcy: \"\\u0454\",\n Kappa: \"\\u039A\",\n kappa: \"\\u03BA\",\n kappav: \"\\u03F0\",\n Kcedil: \"\\u0136\",\n kcedil: \"\\u0137\",\n Kcy: \"\\u041A\",\n kcy: \"\\u043A\",\n Kfr: \"\\uD835\\uDD0E\",\n kfr: \"\\uD835\\uDD28\",\n kgreen: \"\\u0138\",\n KHcy: \"\\u0425\",\n khcy: \"\\u0445\",\n KJcy: \"\\u040C\",\n kjcy: \"\\u045C\",\n Kopf: \"\\uD835\\uDD42\",\n kopf: \"\\uD835\\uDD5C\",\n Kscr: \"\\uD835\\uDCA6\",\n kscr: \"\\uD835\\uDCC0\",\n lAarr: \"\\u21DA\",\n Lacute: \"\\u0139\",\n lacute: \"\\u013A\",\n laemptyv: \"\\u29B4\",\n lagran: \"\\u2112\",\n Lambda: \"\\u039B\",\n lambda: \"\\u03BB\",\n Lang: \"\\u27EA\",\n lang: \"\\u27E8\",\n langd: \"\\u2991\",\n langle: \"\\u27E8\",\n lap: \"\\u2A85\",\n Laplacetrf: \"\\u2112\",\n laquo: \"\\xab\",\n Larr: \"\\u219E\",\n lArr: \"\\u21D0\",\n larr: \"\\u2190\",\n larrb: \"\\u21E4\",\n larrbfs: \"\\u291F\",\n larrfs: \"\\u291D\",\n larrhk: \"\\u21A9\",\n larrlp: \"\\u21AB\",\n larrpl: \"\\u2939\",\n larrsim: \"\\u2973\",\n larrtl: \"\\u21A2\",\n lat: \"\\u2AAB\",\n lAtail: \"\\u291B\",\n latail: \"\\u2919\",\n late: \"\\u2AAD\",\n lates: \"\\u2AAD\\uFE00\",\n lBarr: \"\\u290E\",\n lbarr: \"\\u290C\",\n lbbrk: \"\\u2772\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"\\u298B\",\n lbrksld: \"\\u298F\",\n lbrkslu: \"\\u298D\",\n Lcaron: \"\\u013D\",\n lcaron: \"\\u013E\",\n Lcedil: \"\\u013B\",\n lcedil: \"\\u013C\",\n lceil: \"\\u2308\",\n lcub: \"{\",\n Lcy: \"\\u041B\",\n lcy: \"\\u043B\",\n ldca: \"\\u2936\",\n ldquo: \"\\u201C\",\n ldquor: \"\\u201E\",\n ldrdhar: \"\\u2967\",\n ldrushar: \"\\u294B\",\n ldsh: \"\\u21B2\",\n lE: \"\\u2266\",\n le: \"\\u2264\",\n LeftAngleBracket: \"\\u27E8\",\n LeftArrow: \"\\u2190\",\n Leftarrow: \"\\u21D0\",\n leftarrow: \"\\u2190\",\n LeftArrowBar: \"\\u21E4\",\n LeftArrowRightArrow: \"\\u21C6\",\n leftarrowtail: \"\\u21A2\",\n LeftCeiling: \"\\u2308\",\n LeftDoubleBracket: \"\\u27E6\",\n LeftDownTeeVector: \"\\u2961\",\n LeftDownVector: \"\\u21C3\",\n LeftDownVectorBar: \"\\u2959\",\n LeftFloor: \"\\u230A\",\n leftharpoondown: \"\\u21BD\",\n leftharpoonup: \"\\u21BC\",\n leftleftarrows: \"\\u21C7\",\n LeftRightArrow: \"\\u2194\",\n Leftrightarrow: \"\\u21D4\",\n leftrightarrow: \"\\u2194\",\n leftrightarrows: \"\\u21C6\",\n leftrightharpoons: \"\\u21CB\",\n leftrightsquigarrow: \"\\u21AD\",\n LeftRightVector: \"\\u294E\",\n LeftTee: \"\\u22A3\",\n LeftTeeArrow: \"\\u21A4\",\n LeftTeeVector: \"\\u295A\",\n leftthreetimes: \"\\u22CB\",\n LeftTriangle: \"\\u22B2\",\n LeftTriangleBar: \"\\u29CF\",\n LeftTriangleEqual: \"\\u22B4\",\n LeftUpDownVector: \"\\u2951\",\n LeftUpTeeVector: \"\\u2960\",\n LeftUpVector: \"\\u21BF\",\n LeftUpVectorBar: \"\\u2958\",\n LeftVector: \"\\u21BC\",\n LeftVectorBar: \"\\u2952\",\n lEg: \"\\u2A8B\",\n leg: \"\\u22DA\",\n leq: \"\\u2264\",\n leqq: \"\\u2266\",\n leqslant: \"\\u2A7D\",\n les: \"\\u2A7D\",\n lescc: \"\\u2AA8\",\n lesdot: \"\\u2A7F\",\n lesdoto: \"\\u2A81\",\n lesdotor: \"\\u2A83\",\n lesg: \"\\u22DA\\uFE00\",\n lesges: \"\\u2A93\",\n lessapprox: \"\\u2A85\",\n lessdot: \"\\u22D6\",\n lesseqgtr: \"\\u22DA\",\n lesseqqgtr: \"\\u2A8B\",\n LessEqualGreater: \"\\u22DA\",\n LessFullEqual: \"\\u2266\",\n LessGreater: \"\\u2276\",\n lessgtr: \"\\u2276\",\n LessLess: \"\\u2AA1\",\n lesssim: \"\\u2272\",\n LessSlantEqual: \"\\u2A7D\",\n LessTilde: \"\\u2272\",\n lfisht: \"\\u297C\",\n lfloor: \"\\u230A\",\n Lfr: \"\\uD835\\uDD0F\",\n lfr: \"\\uD835\\uDD29\",\n lg: \"\\u2276\",\n lgE: \"\\u2A91\",\n lHar: \"\\u2962\",\n lhard: \"\\u21BD\",\n lharu: \"\\u21BC\",\n lharul: \"\\u296A\",\n lhblk: \"\\u2584\",\n LJcy: \"\\u0409\",\n ljcy: \"\\u0459\",\n Ll: \"\\u22D8\",\n ll: \"\\u226A\",\n llarr: \"\\u21C7\",\n llcorner: \"\\u231E\",\n Lleftarrow: \"\\u21DA\",\n llhard: \"\\u296B\",\n lltri: \"\\u25FA\",\n Lmidot: \"\\u013F\",\n lmidot: \"\\u0140\",\n lmoust: \"\\u23B0\",\n lmoustache: \"\\u23B0\",\n lnap: \"\\u2A89\",\n lnapprox: \"\\u2A89\",\n lnE: \"\\u2268\",\n lne: \"\\u2A87\",\n lneq: \"\\u2A87\",\n lneqq: \"\\u2268\",\n lnsim: \"\\u22E6\",\n loang: \"\\u27EC\",\n loarr: \"\\u21FD\",\n lobrk: \"\\u27E6\",\n LongLeftArrow: \"\\u27F5\",\n Longleftarrow: \"\\u27F8\",\n longleftarrow: \"\\u27F5\",\n LongLeftRightArrow: \"\\u27F7\",\n Longleftrightarrow: \"\\u27FA\",\n longleftrightarrow: \"\\u27F7\",\n longmapsto: \"\\u27FC\",\n LongRightArrow: \"\\u27F6\",\n Longrightarrow: \"\\u27F9\",\n longrightarrow: \"\\u27F6\",\n looparrowleft: \"\\u21AB\",\n looparrowright: \"\\u21AC\",\n lopar: \"\\u2985\",\n Lopf: \"\\uD835\\uDD43\",\n lopf: \"\\uD835\\uDD5D\",\n loplus: \"\\u2A2D\",\n lotimes: \"\\u2A34\",\n lowast: \"\\u2217\",\n lowbar: \"_\",\n LowerLeftArrow: \"\\u2199\",\n LowerRightArrow: \"\\u2198\",\n loz: \"\\u25CA\",\n lozenge: \"\\u25CA\",\n lozf: \"\\u29EB\",\n lpar: \"(\",\n lparlt: \"\\u2993\",\n lrarr: \"\\u21C6\",\n lrcorner: \"\\u231F\",\n lrhar: \"\\u21CB\",\n lrhard: \"\\u296D\",\n lrm: \"\\u200E\",\n lrtri: \"\\u22BF\",\n lsaquo: \"\\u2039\",\n Lscr: \"\\u2112\",\n lscr: \"\\uD835\\uDCC1\",\n Lsh: \"\\u21B0\",\n lsh: \"\\u21B0\",\n lsim: \"\\u2272\",\n lsime: \"\\u2A8D\",\n lsimg: \"\\u2A8F\",\n lsqb: \"[\",\n lsquo: \"\\u2018\",\n lsquor: \"\\u201A\",\n Lstrok: \"\\u0141\",\n lstrok: \"\\u0142\",\n Lt: \"\\u226A\",\n LT: \"<\",\n lt: \"<\",\n ltcc: \"\\u2AA6\",\n ltcir: \"\\u2A79\",\n ltdot: \"\\u22D6\",\n lthree: \"\\u22CB\",\n ltimes: \"\\u22C9\",\n ltlarr: \"\\u2976\",\n ltquest: \"\\u2A7B\",\n ltri: \"\\u25C3\",\n ltrie: \"\\u22B4\",\n ltrif: \"\\u25C2\",\n ltrPar: \"\\u2996\",\n lurdshar: \"\\u294A\",\n luruhar: \"\\u2966\",\n lvertneqq: \"\\u2268\\uFE00\",\n lvnE: \"\\u2268\\uFE00\",\n macr: \"\\xaf\",\n male: \"\\u2642\",\n malt: \"\\u2720\",\n maltese: \"\\u2720\",\n Map: \"\\u2905\",\n map: \"\\u21A6\",\n mapsto: \"\\u21A6\",\n mapstodown: \"\\u21A7\",\n mapstoleft: \"\\u21A4\",\n mapstoup: \"\\u21A5\",\n marker: \"\\u25AE\",\n mcomma: \"\\u2A29\",\n Mcy: \"\\u041C\",\n mcy: \"\\u043C\",\n mdash: \"\\u2014\",\n mDDot: \"\\u223A\",\n measuredangle: \"\\u2221\",\n MediumSpace: \"\\u205F\",\n Mellintrf: \"\\u2133\",\n Mfr: \"\\uD835\\uDD10\",\n mfr: \"\\uD835\\uDD2A\",\n mho: \"\\u2127\",\n micro: \"\\xb5\",\n mid: \"\\u2223\",\n midast: \"*\",\n midcir: \"\\u2AF0\",\n middot: \"\\xb7\",\n minus: \"\\u2212\",\n minusb: \"\\u229F\",\n minusd: \"\\u2238\",\n minusdu: \"\\u2A2A\",\n MinusPlus: \"\\u2213\",\n mlcp: \"\\u2ADB\",\n mldr: \"\\u2026\",\n mnplus: \"\\u2213\",\n models: \"\\u22A7\",\n Mopf: \"\\uD835\\uDD44\",\n mopf: \"\\uD835\\uDD5E\",\n mp: \"\\u2213\",\n Mscr: \"\\u2133\",\n mscr: \"\\uD835\\uDCC2\",\n mstpos: \"\\u223E\",\n Mu: \"\\u039C\",\n mu: \"\\u03BC\",\n multimap: \"\\u22B8\",\n mumap: \"\\u22B8\",\n nabla: \"\\u2207\",\n Nacute: \"\\u0143\",\n nacute: \"\\u0144\",\n nang: \"\\u2220\\u20D2\",\n nap: \"\\u2249\",\n napE: \"\\u2A70\\u0338\",\n napid: \"\\u224B\\u0338\",\n napos: \"\\u0149\",\n napprox: \"\\u2249\",\n natur: \"\\u266E\",\n natural: \"\\u266E\",\n naturals: \"\\u2115\",\n nbsp: \"\\xa0\",\n nbump: \"\\u224E\\u0338\",\n nbumpe: \"\\u224F\\u0338\",\n ncap: \"\\u2A43\",\n Ncaron: \"\\u0147\",\n ncaron: \"\\u0148\",\n Ncedil: \"\\u0145\",\n ncedil: \"\\u0146\",\n ncong: \"\\u2247\",\n ncongdot: \"\\u2A6D\\u0338\",\n ncup: \"\\u2A42\",\n Ncy: \"\\u041D\",\n ncy: \"\\u043D\",\n ndash: \"\\u2013\",\n ne: \"\\u2260\",\n nearhk: \"\\u2924\",\n neArr: \"\\u21D7\",\n nearr: \"\\u2197\",\n nearrow: \"\\u2197\",\n nedot: \"\\u2250\\u0338\",\n NegativeMediumSpace: \"\\u200B\",\n NegativeThickSpace: \"\\u200B\",\n NegativeThinSpace: \"\\u200B\",\n NegativeVeryThinSpace: \"\\u200B\",\n nequiv: \"\\u2262\",\n nesear: \"\\u2928\",\n nesim: \"\\u2242\\u0338\",\n NestedGreaterGreater: \"\\u226B\",\n NestedLessLess: \"\\u226A\",\n NewLine: \"\\n\",\n nexist: \"\\u2204\",\n nexists: \"\\u2204\",\n Nfr: \"\\uD835\\uDD11\",\n nfr: \"\\uD835\\uDD2B\",\n ngE: \"\\u2267\\u0338\",\n nge: \"\\u2271\",\n ngeq: \"\\u2271\",\n ngeqq: \"\\u2267\\u0338\",\n ngeqslant: \"\\u2A7E\\u0338\",\n nges: \"\\u2A7E\\u0338\",\n nGg: \"\\u22D9\\u0338\",\n ngsim: \"\\u2275\",\n nGt: \"\\u226B\\u20D2\",\n ngt: \"\\u226F\",\n ngtr: \"\\u226F\",\n nGtv: \"\\u226B\\u0338\",\n nhArr: \"\\u21CE\",\n nharr: \"\\u21AE\",\n nhpar: \"\\u2AF2\",\n ni: \"\\u220B\",\n nis: \"\\u22FC\",\n nisd: \"\\u22FA\",\n niv: \"\\u220B\",\n NJcy: \"\\u040A\",\n njcy: \"\\u045A\",\n nlArr: \"\\u21CD\",\n nlarr: \"\\u219A\",\n nldr: \"\\u2025\",\n nlE: \"\\u2266\\u0338\",\n nle: \"\\u2270\",\n nLeftarrow: \"\\u21CD\",\n nleftarrow: \"\\u219A\",\n nLeftrightarrow: \"\\u21CE\",\n nleftrightarrow: \"\\u21AE\",\n nleq: \"\\u2270\",\n nleqq: \"\\u2266\\u0338\",\n nleqslant: \"\\u2A7D\\u0338\",\n nles: \"\\u2A7D\\u0338\",\n nless: \"\\u226E\",\n nLl: \"\\u22D8\\u0338\",\n nlsim: \"\\u2274\",\n nLt: \"\\u226A\\u20D2\",\n nlt: \"\\u226E\",\n nltri: \"\\u22EA\",\n nltrie: \"\\u22EC\",\n nLtv: \"\\u226A\\u0338\",\n nmid: \"\\u2224\",\n NoBreak: \"\\u2060\",\n NonBreakingSpace: \"\\xa0\",\n Nopf: \"\\u2115\",\n nopf: \"\\uD835\\uDD5F\",\n Not: \"\\u2AEC\",\n not: \"\\xac\",\n NotCongruent: \"\\u2262\",\n NotCupCap: \"\\u226D\",\n NotDoubleVerticalBar: \"\\u2226\",\n NotElement: \"\\u2209\",\n NotEqual: \"\\u2260\",\n NotEqualTilde: \"\\u2242\\u0338\",\n NotExists: \"\\u2204\",\n NotGreater: \"\\u226F\",\n NotGreaterEqual: \"\\u2271\",\n NotGreaterFullEqual: \"\\u2267\\u0338\",\n NotGreaterGreater: \"\\u226B\\u0338\",\n NotGreaterLess: \"\\u2279\",\n NotGreaterSlantEqual: \"\\u2A7E\\u0338\",\n NotGreaterTilde: \"\\u2275\",\n NotHumpDownHump: \"\\u224E\\u0338\",\n NotHumpEqual: \"\\u224F\\u0338\",\n notin: \"\\u2209\",\n notindot: \"\\u22F5\\u0338\",\n notinE: \"\\u22F9\\u0338\",\n notinva: \"\\u2209\",\n notinvb: \"\\u22F7\",\n notinvc: \"\\u22F6\",\n NotLeftTriangle: \"\\u22EA\",\n NotLeftTriangleBar: \"\\u29CF\\u0338\",\n NotLeftTriangleEqual: \"\\u22EC\",\n NotLess: \"\\u226E\",\n NotLessEqual: \"\\u2270\",\n NotLessGreater: \"\\u2278\",\n NotLessLess: \"\\u226A\\u0338\",\n NotLessSlantEqual: \"\\u2A7D\\u0338\",\n NotLessTilde: \"\\u2274\",\n NotNestedGreaterGreater: \"\\u2AA2\\u0338\",\n NotNestedLessLess: \"\\u2AA1\\u0338\",\n notni: \"\\u220C\",\n notniva: \"\\u220C\",\n notnivb: \"\\u22FE\",\n notnivc: \"\\u22FD\",\n NotPrecedes: \"\\u2280\",\n NotPrecedesEqual: \"\\u2AAF\\u0338\",\n NotPrecedesSlantEqual: \"\\u22E0\",\n NotReverseElement: \"\\u220C\",\n NotRightTriangle: \"\\u22EB\",\n NotRightTriangleBar: \"\\u29D0\\u0338\",\n NotRightTriangleEqual: \"\\u22ED\",\n NotSquareSubset: \"\\u228F\\u0338\",\n NotSquareSubsetEqual: \"\\u22E2\",\n NotSquareSuperset: \"\\u2290\\u0338\",\n NotSquareSupersetEqual: \"\\u22E3\",\n NotSubset: \"\\u2282\\u20D2\",\n NotSubsetEqual: \"\\u2288\",\n NotSucceeds: \"\\u2281\",\n NotSucceedsEqual: \"\\u2AB0\\u0338\",\n NotSucceedsSlantEqual: \"\\u22E1\",\n NotSucceedsTilde: \"\\u227F\\u0338\",\n NotSuperset: \"\\u2283\\u20D2\",\n NotSupersetEqual: \"\\u2289\",\n NotTilde: \"\\u2241\",\n NotTildeEqual: \"\\u2244\",\n NotTildeFullEqual: \"\\u2247\",\n NotTildeTilde: \"\\u2249\",\n NotVerticalBar: \"\\u2224\",\n npar: \"\\u2226\",\n nparallel: \"\\u2226\",\n nparsl: \"\\u2AFD\\u20E5\",\n npart: \"\\u2202\\u0338\",\n npolint: \"\\u2A14\",\n npr: \"\\u2280\",\n nprcue: \"\\u22E0\",\n npre: \"\\u2AAF\\u0338\",\n nprec: \"\\u2280\",\n npreceq: \"\\u2AAF\\u0338\",\n nrArr: \"\\u21CF\",\n nrarr: \"\\u219B\",\n nrarrc: \"\\u2933\\u0338\",\n nrarrw: \"\\u219D\\u0338\",\n nRightarrow: \"\\u21CF\",\n nrightarrow: \"\\u219B\",\n nrtri: \"\\u22EB\",\n nrtrie: \"\\u22ED\",\n nsc: \"\\u2281\",\n nsccue: \"\\u22E1\",\n nsce: \"\\u2AB0\\u0338\",\n Nscr: \"\\uD835\\uDCA9\",\n nscr: \"\\uD835\\uDCC3\",\n nshortmid: \"\\u2224\",\n nshortparallel: \"\\u2226\",\n nsim: \"\\u2241\",\n nsime: \"\\u2244\",\n nsimeq: \"\\u2244\",\n nsmid: \"\\u2224\",\n nspar: \"\\u2226\",\n nsqsube: \"\\u22E2\",\n nsqsupe: \"\\u22E3\",\n nsub: \"\\u2284\",\n nsubE: \"\\u2AC5\\u0338\",\n nsube: \"\\u2288\",\n nsubset: \"\\u2282\\u20D2\",\n nsubseteq: \"\\u2288\",\n nsubseteqq: \"\\u2AC5\\u0338\",\n nsucc: \"\\u2281\",\n nsucceq: \"\\u2AB0\\u0338\",\n nsup: \"\\u2285\",\n nsupE: \"\\u2AC6\\u0338\",\n nsupe: \"\\u2289\",\n nsupset: \"\\u2283\\u20D2\",\n nsupseteq: \"\\u2289\",\n nsupseteqq: \"\\u2AC6\\u0338\",\n ntgl: \"\\u2279\",\n Ntilde: \"\\xd1\",\n ntilde: \"\\xf1\",\n ntlg: \"\\u2278\",\n ntriangleleft: \"\\u22EA\",\n ntrianglelefteq: \"\\u22EC\",\n ntriangleright: \"\\u22EB\",\n ntrianglerighteq: \"\\u22ED\",\n Nu: \"\\u039D\",\n nu: \"\\u03BD\",\n num: \"#\",\n numero: \"\\u2116\",\n numsp: \"\\u2007\",\n nvap: \"\\u224D\\u20D2\",\n nVDash: \"\\u22AF\",\n nVdash: \"\\u22AE\",\n nvDash: \"\\u22AD\",\n nvdash: \"\\u22AC\",\n nvge: \"\\u2265\\u20D2\",\n nvgt: \">\\u20D2\",\n nvHarr: \"\\u2904\",\n nvinfin: \"\\u29DE\",\n nvlArr: \"\\u2902\",\n nvle: \"\\u2264\\u20D2\",\n nvlt: \"<\\u20D2\",\n nvltrie: \"\\u22B4\\u20D2\",\n nvrArr: \"\\u2903\",\n nvrtrie: \"\\u22B5\\u20D2\",\n nvsim: \"\\u223C\\u20D2\",\n nwarhk: \"\\u2923\",\n nwArr: \"\\u21D6\",\n nwarr: \"\\u2196\",\n nwarrow: \"\\u2196\",\n nwnear: \"\\u2927\",\n Oacute: \"\\xd3\",\n oacute: \"\\xf3\",\n oast: \"\\u229B\",\n ocir: \"\\u229A\",\n Ocirc: \"\\xd4\",\n ocirc: \"\\xf4\",\n Ocy: \"\\u041E\",\n ocy: \"\\u043E\",\n odash: \"\\u229D\",\n Odblac: \"\\u0150\",\n odblac: \"\\u0151\",\n odiv: \"\\u2A38\",\n odot: \"\\u2299\",\n odsold: \"\\u29BC\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n ofcir: \"\\u29BF\",\n Ofr: \"\\uD835\\uDD12\",\n ofr: \"\\uD835\\uDD2C\",\n ogon: \"\\u02DB\",\n Ograve: \"\\xd2\",\n ograve: \"\\xf2\",\n ogt: \"\\u29C1\",\n ohbar: \"\\u29B5\",\n ohm: \"\\u03A9\",\n oint: \"\\u222E\",\n olarr: \"\\u21BA\",\n olcir: \"\\u29BE\",\n olcross: \"\\u29BB\",\n oline: \"\\u203E\",\n olt: \"\\u29C0\",\n Omacr: \"\\u014C\",\n omacr: \"\\u014D\",\n Omega: \"\\u03A9\",\n omega: \"\\u03C9\",\n Omicron: \"\\u039F\",\n omicron: \"\\u03BF\",\n omid: \"\\u29B6\",\n ominus: \"\\u2296\",\n Oopf: \"\\uD835\\uDD46\",\n oopf: \"\\uD835\\uDD60\",\n opar: \"\\u29B7\",\n OpenCurlyDoubleQuote: \"\\u201C\",\n OpenCurlyQuote: \"\\u2018\",\n operp: \"\\u29B9\",\n oplus: \"\\u2295\",\n Or: \"\\u2A54\",\n or: \"\\u2228\",\n orarr: \"\\u21BB\",\n ord: \"\\u2A5D\",\n order: \"\\u2134\",\n orderof: \"\\u2134\",\n ordf: \"\\xaa\",\n ordm: \"\\xba\",\n origof: \"\\u22B6\",\n oror: \"\\u2A56\",\n orslope: \"\\u2A57\",\n orv: \"\\u2A5B\",\n oS: \"\\u24C8\",\n Oscr: \"\\uD835\\uDCAA\",\n oscr: \"\\u2134\",\n Oslash: \"\\xd8\",\n oslash: \"\\xf8\",\n osol: \"\\u2298\",\n Otilde: \"\\xd5\",\n otilde: \"\\xf5\",\n Otimes: \"\\u2A37\",\n otimes: \"\\u2297\",\n otimesas: \"\\u2A36\",\n Ouml: \"\\xd6\",\n ouml: \"\\xf6\",\n ovbar: \"\\u233D\",\n OverBar: \"\\u203E\",\n OverBrace: \"\\u23DE\",\n OverBracket: \"\\u23B4\",\n OverParenthesis: \"\\u23DC\",\n par: \"\\u2225\",\n para: \"\\xb6\",\n parallel: \"\\u2225\",\n parsim: \"\\u2AF3\",\n parsl: \"\\u2AFD\",\n part: \"\\u2202\",\n PartialD: \"\\u2202\",\n Pcy: \"\\u041F\",\n pcy: \"\\u043F\",\n percnt: \"%\",\n period: \".\",\n permil: \"\\u2030\",\n perp: \"\\u22A5\",\n pertenk: \"\\u2031\",\n Pfr: \"\\uD835\\uDD13\",\n pfr: \"\\uD835\\uDD2D\",\n Phi: \"\\u03A6\",\n phi: \"\\u03C6\",\n phiv: \"\\u03D5\",\n phmmat: \"\\u2133\",\n phone: \"\\u260E\",\n Pi: \"\\u03A0\",\n pi: \"\\u03C0\",\n pitchfork: \"\\u22D4\",\n piv: \"\\u03D6\",\n planck: \"\\u210F\",\n planckh: \"\\u210E\",\n plankv: \"\\u210F\",\n plus: \"+\",\n plusacir: \"\\u2A23\",\n plusb: \"\\u229E\",\n pluscir: \"\\u2A22\",\n plusdo: \"\\u2214\",\n plusdu: \"\\u2A25\",\n pluse: \"\\u2A72\",\n PlusMinus: \"\\xb1\",\n plusmn: \"\\xb1\",\n plussim: \"\\u2A26\",\n plustwo: \"\\u2A27\",\n pm: \"\\xb1\",\n Poincareplane: \"\\u210C\",\n pointint: \"\\u2A15\",\n Popf: \"\\u2119\",\n popf: \"\\uD835\\uDD61\",\n pound: \"\\xa3\",\n Pr: \"\\u2ABB\",\n pr: \"\\u227A\",\n prap: \"\\u2AB7\",\n prcue: \"\\u227C\",\n prE: \"\\u2AB3\",\n pre: \"\\u2AAF\",\n prec: \"\\u227A\",\n precapprox: \"\\u2AB7\",\n preccurlyeq: \"\\u227C\",\n Precedes: \"\\u227A\",\n PrecedesEqual: \"\\u2AAF\",\n PrecedesSlantEqual: \"\\u227C\",\n PrecedesTilde: \"\\u227E\",\n preceq: \"\\u2AAF\",\n precnapprox: \"\\u2AB9\",\n precneqq: \"\\u2AB5\",\n precnsim: \"\\u22E8\",\n precsim: \"\\u227E\",\n Prime: \"\\u2033\",\n prime: \"\\u2032\",\n primes: \"\\u2119\",\n prnap: \"\\u2AB9\",\n prnE: \"\\u2AB5\",\n prnsim: \"\\u22E8\",\n prod: \"\\u220F\",\n Product: \"\\u220F\",\n profalar: \"\\u232E\",\n profline: \"\\u2312\",\n profsurf: \"\\u2313\",\n prop: \"\\u221D\",\n Proportion: \"\\u2237\",\n Proportional: \"\\u221D\",\n propto: \"\\u221D\",\n prsim: \"\\u227E\",\n prurel: \"\\u22B0\",\n Pscr: \"\\uD835\\uDCAB\",\n pscr: \"\\uD835\\uDCC5\",\n Psi: \"\\u03A8\",\n psi: \"\\u03C8\",\n puncsp: \"\\u2008\",\n Qfr: \"\\uD835\\uDD14\",\n qfr: \"\\uD835\\uDD2E\",\n qint: \"\\u2A0C\",\n Qopf: \"\\u211A\",\n qopf: \"\\uD835\\uDD62\",\n qprime: \"\\u2057\",\n Qscr: \"\\uD835\\uDCAC\",\n qscr: \"\\uD835\\uDCC6\",\n quaternions: \"\\u210D\",\n quatint: \"\\u2A16\",\n quest: \"?\",\n questeq: \"\\u225F\",\n QUOT: '\"',\n quot: '\"',\n rAarr: \"\\u21DB\",\n race: \"\\u223D\\u0331\",\n Racute: \"\\u0154\",\n racute: \"\\u0155\",\n radic: \"\\u221A\",\n raemptyv: \"\\u29B3\",\n Rang: \"\\u27EB\",\n rang: \"\\u27E9\",\n rangd: \"\\u2992\",\n range: \"\\u29A5\",\n rangle: \"\\u27E9\",\n raquo: \"\\xbb\",\n Rarr: \"\\u21A0\",\n rArr: \"\\u21D2\",\n rarr: \"\\u2192\",\n rarrap: \"\\u2975\",\n rarrb: \"\\u21E5\",\n rarrbfs: \"\\u2920\",\n rarrc: \"\\u2933\",\n rarrfs: \"\\u291E\",\n rarrhk: \"\\u21AA\",\n rarrlp: \"\\u21AC\",\n rarrpl: \"\\u2945\",\n rarrsim: \"\\u2974\",\n Rarrtl: \"\\u2916\",\n rarrtl: \"\\u21A3\",\n rarrw: \"\\u219D\",\n rAtail: \"\\u291C\",\n ratail: \"\\u291A\",\n ratio: \"\\u2236\",\n rationals: \"\\u211A\",\n RBarr: \"\\u2910\",\n rBarr: \"\\u290F\",\n rbarr: \"\\u290D\",\n rbbrk: \"\\u2773\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"\\u298C\",\n rbrksld: \"\\u298E\",\n rbrkslu: \"\\u2990\",\n Rcaron: \"\\u0158\",\n rcaron: \"\\u0159\",\n Rcedil: \"\\u0156\",\n rcedil: \"\\u0157\",\n rceil: \"\\u2309\",\n rcub: \"}\",\n Rcy: \"\\u0420\",\n rcy: \"\\u0440\",\n rdca: \"\\u2937\",\n rdldhar: \"\\u2969\",\n rdquo: \"\\u201D\",\n rdquor: \"\\u201D\",\n rdsh: \"\\u21B3\",\n Re: \"\\u211C\",\n real: \"\\u211C\",\n realine: \"\\u211B\",\n realpart: \"\\u211C\",\n reals: \"\\u211D\",\n rect: \"\\u25AD\",\n REG: \"\\xae\",\n reg: \"\\xae\",\n ReverseElement: \"\\u220B\",\n ReverseEquilibrium: \"\\u21CB\",\n ReverseUpEquilibrium: \"\\u296F\",\n rfisht: \"\\u297D\",\n rfloor: \"\\u230B\",\n Rfr: \"\\u211C\",\n rfr: \"\\uD835\\uDD2F\",\n rHar: \"\\u2964\",\n rhard: \"\\u21C1\",\n rharu: \"\\u21C0\",\n rharul: \"\\u296C\",\n Rho: \"\\u03A1\",\n rho: \"\\u03C1\",\n rhov: \"\\u03F1\",\n RightAngleBracket: \"\\u27E9\",\n RightArrow: \"\\u2192\",\n Rightarrow: \"\\u21D2\",\n rightarrow: \"\\u2192\",\n RightArrowBar: \"\\u21E5\",\n RightArrowLeftArrow: \"\\u21C4\",\n rightarrowtail: \"\\u21A3\",\n RightCeiling: \"\\u2309\",\n RightDoubleBracket: \"\\u27E7\",\n RightDownTeeVector: \"\\u295D\",\n RightDownVector: \"\\u21C2\",\n RightDownVectorBar: \"\\u2955\",\n RightFloor: \"\\u230B\",\n rightharpoondown: \"\\u21C1\",\n rightharpoonup: \"\\u21C0\",\n rightleftarrows: \"\\u21C4\",\n rightleftharpoons: \"\\u21CC\",\n rightrightarrows: \"\\u21C9\",\n rightsquigarrow: \"\\u219D\",\n RightTee: \"\\u22A2\",\n RightTeeArrow: \"\\u21A6\",\n RightTeeVector: \"\\u295B\",\n rightthreetimes: \"\\u22CC\",\n RightTriangle: \"\\u22B3\",\n RightTriangleBar: \"\\u29D0\",\n RightTriangleEqual: \"\\u22B5\",\n RightUpDownVector: \"\\u294F\",\n RightUpTeeVector: \"\\u295C\",\n RightUpVector: \"\\u21BE\",\n RightUpVectorBar: \"\\u2954\",\n RightVector: \"\\u21C0\",\n RightVectorBar: \"\\u2953\",\n ring: \"\\u02DA\",\n risingdotseq: \"\\u2253\",\n rlarr: \"\\u21C4\",\n rlhar: \"\\u21CC\",\n rlm: \"\\u200F\",\n rmoust: \"\\u23B1\",\n rmoustache: \"\\u23B1\",\n rnmid: \"\\u2AEE\",\n roang: \"\\u27ED\",\n roarr: \"\\u21FE\",\n robrk: \"\\u27E7\",\n ropar: \"\\u2986\",\n Ropf: \"\\u211D\",\n ropf: \"\\uD835\\uDD63\",\n roplus: \"\\u2A2E\",\n rotimes: \"\\u2A35\",\n RoundImplies: \"\\u2970\",\n rpar: \")\",\n rpargt: \"\\u2994\",\n rppolint: \"\\u2A12\",\n rrarr: \"\\u21C9\",\n Rrightarrow: \"\\u21DB\",\n rsaquo: \"\\u203A\",\n Rscr: \"\\u211B\",\n rscr: \"\\uD835\\uDCC7\",\n Rsh: \"\\u21B1\",\n rsh: \"\\u21B1\",\n rsqb: \"]\",\n rsquo: \"\\u2019\",\n rsquor: \"\\u2019\",\n rthree: \"\\u22CC\",\n rtimes: \"\\u22CA\",\n rtri: \"\\u25B9\",\n rtrie: \"\\u22B5\",\n rtrif: \"\\u25B8\",\n rtriltri: \"\\u29CE\",\n RuleDelayed: \"\\u29F4\",\n ruluhar: \"\\u2968\",\n rx: \"\\u211E\",\n Sacute: \"\\u015A\",\n sacute: \"\\u015B\",\n sbquo: \"\\u201A\",\n Sc: \"\\u2ABC\",\n sc: \"\\u227B\",\n scap: \"\\u2AB8\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n sccue: \"\\u227D\",\n scE: \"\\u2AB4\",\n sce: \"\\u2AB0\",\n Scedil: \"\\u015E\",\n scedil: \"\\u015F\",\n Scirc: \"\\u015C\",\n scirc: \"\\u015D\",\n scnap: \"\\u2ABA\",\n scnE: \"\\u2AB6\",\n scnsim: \"\\u22E9\",\n scpolint: \"\\u2A13\",\n scsim: \"\\u227F\",\n Scy: \"\\u0421\",\n scy: \"\\u0441\",\n sdot: \"\\u22C5\",\n sdotb: \"\\u22A1\",\n sdote: \"\\u2A66\",\n searhk: \"\\u2925\",\n seArr: \"\\u21D8\",\n searr: \"\\u2198\",\n searrow: \"\\u2198\",\n sect: \"\\xa7\",\n semi: \";\",\n seswar: \"\\u2929\",\n setminus: \"\\u2216\",\n setmn: \"\\u2216\",\n sext: \"\\u2736\",\n Sfr: \"\\uD835\\uDD16\",\n sfr: \"\\uD835\\uDD30\",\n sfrown: \"\\u2322\",\n sharp: \"\\u266F\",\n SHCHcy: \"\\u0429\",\n shchcy: \"\\u0449\",\n SHcy: \"\\u0428\",\n shcy: \"\\u0448\",\n ShortDownArrow: \"\\u2193\",\n ShortLeftArrow: \"\\u2190\",\n shortmid: \"\\u2223\",\n shortparallel: \"\\u2225\",\n ShortRightArrow: \"\\u2192\",\n ShortUpArrow: \"\\u2191\",\n shy: \"\\xad\",\n Sigma: \"\\u03A3\",\n sigma: \"\\u03C3\",\n sigmaf: \"\\u03C2\",\n sigmav: \"\\u03C2\",\n sim: \"\\u223C\",\n simdot: \"\\u2A6A\",\n sime: \"\\u2243\",\n simeq: \"\\u2243\",\n simg: \"\\u2A9E\",\n simgE: \"\\u2AA0\",\n siml: \"\\u2A9D\",\n simlE: \"\\u2A9F\",\n simne: \"\\u2246\",\n simplus: \"\\u2A24\",\n simrarr: \"\\u2972\",\n slarr: \"\\u2190\",\n SmallCircle: \"\\u2218\",\n smallsetminus: \"\\u2216\",\n smashp: \"\\u2A33\",\n smeparsl: \"\\u29E4\",\n smid: \"\\u2223\",\n smile: \"\\u2323\",\n smt: \"\\u2AAA\",\n smte: \"\\u2AAC\",\n smtes: \"\\u2AAC\\uFE00\",\n SOFTcy: \"\\u042C\",\n softcy: \"\\u044C\",\n sol: \"/\",\n solb: \"\\u29C4\",\n solbar: \"\\u233F\",\n Sopf: \"\\uD835\\uDD4A\",\n sopf: \"\\uD835\\uDD64\",\n spades: \"\\u2660\",\n spadesuit: \"\\u2660\",\n spar: \"\\u2225\",\n sqcap: \"\\u2293\",\n sqcaps: \"\\u2293\\uFE00\",\n sqcup: \"\\u2294\",\n sqcups: \"\\u2294\\uFE00\",\n Sqrt: \"\\u221A\",\n sqsub: \"\\u228F\",\n sqsube: \"\\u2291\",\n sqsubset: \"\\u228F\",\n sqsubseteq: \"\\u2291\",\n sqsup: \"\\u2290\",\n sqsupe: \"\\u2292\",\n sqsupset: \"\\u2290\",\n sqsupseteq: \"\\u2292\",\n squ: \"\\u25A1\",\n Square: \"\\u25A1\",\n square: \"\\u25A1\",\n SquareIntersection: \"\\u2293\",\n SquareSubset: \"\\u228F\",\n SquareSubsetEqual: \"\\u2291\",\n SquareSuperset: \"\\u2290\",\n SquareSupersetEqual: \"\\u2292\",\n SquareUnion: \"\\u2294\",\n squarf: \"\\u25AA\",\n squf: \"\\u25AA\",\n srarr: \"\\u2192\",\n Sscr: \"\\uD835\\uDCAE\",\n sscr: \"\\uD835\\uDCC8\",\n ssetmn: \"\\u2216\",\n ssmile: \"\\u2323\",\n sstarf: \"\\u22C6\",\n Star: \"\\u22C6\",\n star: \"\\u2606\",\n starf: \"\\u2605\",\n straightepsilon: \"\\u03F5\",\n straightphi: \"\\u03D5\",\n strns: \"\\xaf\",\n Sub: \"\\u22D0\",\n sub: \"\\u2282\",\n subdot: \"\\u2ABD\",\n subE: \"\\u2AC5\",\n sube: \"\\u2286\",\n subedot: \"\\u2AC3\",\n submult: \"\\u2AC1\",\n subnE: \"\\u2ACB\",\n subne: \"\\u228A\",\n subplus: \"\\u2ABF\",\n subrarr: \"\\u2979\",\n Subset: \"\\u22D0\",\n subset: \"\\u2282\",\n subseteq: \"\\u2286\",\n subseteqq: \"\\u2AC5\",\n SubsetEqual: \"\\u2286\",\n subsetneq: \"\\u228A\",\n subsetneqq: \"\\u2ACB\",\n subsim: \"\\u2AC7\",\n subsub: \"\\u2AD5\",\n subsup: \"\\u2AD3\",\n succ: \"\\u227B\",\n succapprox: \"\\u2AB8\",\n succcurlyeq: \"\\u227D\",\n Succeeds: \"\\u227B\",\n SucceedsEqual: \"\\u2AB0\",\n SucceedsSlantEqual: \"\\u227D\",\n SucceedsTilde: \"\\u227F\",\n succeq: \"\\u2AB0\",\n succnapprox: \"\\u2ABA\",\n succneqq: \"\\u2AB6\",\n succnsim: \"\\u22E9\",\n succsim: \"\\u227F\",\n SuchThat: \"\\u220B\",\n Sum: \"\\u2211\",\n sum: \"\\u2211\",\n sung: \"\\u266A\",\n Sup: \"\\u22D1\",\n sup: \"\\u2283\",\n sup1: \"\\xb9\",\n sup2: \"\\xb2\",\n sup3: \"\\xb3\",\n supdot: \"\\u2ABE\",\n supdsub: \"\\u2AD8\",\n supE: \"\\u2AC6\",\n supe: \"\\u2287\",\n supedot: \"\\u2AC4\",\n Superset: \"\\u2283\",\n SupersetEqual: \"\\u2287\",\n suphsol: \"\\u27C9\",\n suphsub: \"\\u2AD7\",\n suplarr: \"\\u297B\",\n supmult: \"\\u2AC2\",\n supnE: \"\\u2ACC\",\n supne: \"\\u228B\",\n supplus: \"\\u2AC0\",\n Supset: \"\\u22D1\",\n supset: \"\\u2283\",\n supseteq: \"\\u2287\",\n supseteqq: \"\\u2AC6\",\n supsetneq: \"\\u228B\",\n supsetneqq: \"\\u2ACC\",\n supsim: \"\\u2AC8\",\n supsub: \"\\u2AD4\",\n supsup: \"\\u2AD6\",\n swarhk: \"\\u2926\",\n swArr: \"\\u21D9\",\n swarr: \"\\u2199\",\n swarrow: \"\\u2199\",\n swnwar: \"\\u292A\",\n szlig: \"\\xdf\",\n Tab: \"\t\",\n target: \"\\u2316\",\n Tau: \"\\u03A4\",\n tau: \"\\u03C4\",\n tbrk: \"\\u23B4\",\n Tcaron: \"\\u0164\",\n tcaron: \"\\u0165\",\n Tcedil: \"\\u0162\",\n tcedil: \"\\u0163\",\n Tcy: \"\\u0422\",\n tcy: \"\\u0442\",\n tdot: \"\\u20DB\",\n telrec: \"\\u2315\",\n Tfr: \"\\uD835\\uDD17\",\n tfr: \"\\uD835\\uDD31\",\n there4: \"\\u2234\",\n Therefore: \"\\u2234\",\n therefore: \"\\u2234\",\n Theta: \"\\u0398\",\n theta: \"\\u03B8\",\n thetasym: \"\\u03D1\",\n thetav: \"\\u03D1\",\n thickapprox: \"\\u2248\",\n thicksim: \"\\u223C\",\n ThickSpace: \"\\u205F\\u200A\",\n thinsp: \"\\u2009\",\n ThinSpace: \"\\u2009\",\n thkap: \"\\u2248\",\n thksim: \"\\u223C\",\n THORN: \"\\xde\",\n thorn: \"\\xfe\",\n Tilde: \"\\u223C\",\n tilde: \"\\u02DC\",\n TildeEqual: \"\\u2243\",\n TildeFullEqual: \"\\u2245\",\n TildeTilde: \"\\u2248\",\n times: \"\\xd7\",\n timesb: \"\\u22A0\",\n timesbar: \"\\u2A31\",\n timesd: \"\\u2A30\",\n tint: \"\\u222D\",\n toea: \"\\u2928\",\n top: \"\\u22A4\",\n topbot: \"\\u2336\",\n topcir: \"\\u2AF1\",\n Topf: \"\\uD835\\uDD4B\",\n topf: \"\\uD835\\uDD65\",\n topfork: \"\\u2ADA\",\n tosa: \"\\u2929\",\n tprime: \"\\u2034\",\n TRADE: \"\\u2122\",\n trade: \"\\u2122\",\n triangle: \"\\u25B5\",\n triangledown: \"\\u25BF\",\n triangleleft: \"\\u25C3\",\n trianglelefteq: \"\\u22B4\",\n triangleq: \"\\u225C\",\n triangleright: \"\\u25B9\",\n trianglerighteq: \"\\u22B5\",\n tridot: \"\\u25EC\",\n trie: \"\\u225C\",\n triminus: \"\\u2A3A\",\n TripleDot: \"\\u20DB\",\n triplus: \"\\u2A39\",\n trisb: \"\\u29CD\",\n tritime: \"\\u2A3B\",\n trpezium: \"\\u23E2\",\n Tscr: \"\\uD835\\uDCAF\",\n tscr: \"\\uD835\\uDCC9\",\n TScy: \"\\u0426\",\n tscy: \"\\u0446\",\n TSHcy: \"\\u040B\",\n tshcy: \"\\u045B\",\n Tstrok: \"\\u0166\",\n tstrok: \"\\u0167\",\n twixt: \"\\u226C\",\n twoheadleftarrow: \"\\u219E\",\n twoheadrightarrow: \"\\u21A0\",\n Uacute: \"\\xda\",\n uacute: \"\\xfa\",\n Uarr: \"\\u219F\",\n uArr: \"\\u21D1\",\n uarr: \"\\u2191\",\n Uarrocir: \"\\u2949\",\n Ubrcy: \"\\u040E\",\n ubrcy: \"\\u045E\",\n Ubreve: \"\\u016C\",\n ubreve: \"\\u016D\",\n Ucirc: \"\\xdb\",\n ucirc: \"\\xfb\",\n Ucy: \"\\u0423\",\n ucy: \"\\u0443\",\n udarr: \"\\u21C5\",\n Udblac: \"\\u0170\",\n udblac: \"\\u0171\",\n udhar: \"\\u296E\",\n ufisht: \"\\u297E\",\n Ufr: \"\\uD835\\uDD18\",\n ufr: \"\\uD835\\uDD32\",\n Ugrave: \"\\xd9\",\n ugrave: \"\\xf9\",\n uHar: \"\\u2963\",\n uharl: \"\\u21BF\",\n uharr: \"\\u21BE\",\n uhblk: \"\\u2580\",\n ulcorn: \"\\u231C\",\n ulcorner: \"\\u231C\",\n ulcrop: \"\\u230F\",\n ultri: \"\\u25F8\",\n Umacr: \"\\u016A\",\n umacr: \"\\u016B\",\n uml: \"\\xa8\",\n UnderBar: \"_\",\n UnderBrace: \"\\u23DF\",\n UnderBracket: \"\\u23B5\",\n UnderParenthesis: \"\\u23DD\",\n Union: \"\\u22C3\",\n UnionPlus: \"\\u228E\",\n Uogon: \"\\u0172\",\n uogon: \"\\u0173\",\n Uopf: \"\\uD835\\uDD4C\",\n uopf: \"\\uD835\\uDD66\",\n UpArrow: \"\\u2191\",\n Uparrow: \"\\u21D1\",\n uparrow: \"\\u2191\",\n UpArrowBar: \"\\u2912\",\n UpArrowDownArrow: \"\\u21C5\",\n UpDownArrow: \"\\u2195\",\n Updownarrow: \"\\u21D5\",\n updownarrow: \"\\u2195\",\n UpEquilibrium: \"\\u296E\",\n upharpoonleft: \"\\u21BF\",\n upharpoonright: \"\\u21BE\",\n uplus: \"\\u228E\",\n UpperLeftArrow: \"\\u2196\",\n UpperRightArrow: \"\\u2197\",\n Upsi: \"\\u03D2\",\n upsi: \"\\u03C5\",\n upsih: \"\\u03D2\",\n Upsilon: \"\\u03A5\",\n upsilon: \"\\u03C5\",\n UpTee: \"\\u22A5\",\n UpTeeArrow: \"\\u21A5\",\n upuparrows: \"\\u21C8\",\n urcorn: \"\\u231D\",\n urcorner: \"\\u231D\",\n urcrop: \"\\u230E\",\n Uring: \"\\u016E\",\n uring: \"\\u016F\",\n urtri: \"\\u25F9\",\n Uscr: \"\\uD835\\uDCB0\",\n uscr: \"\\uD835\\uDCCA\",\n utdot: \"\\u22F0\",\n Utilde: \"\\u0168\",\n utilde: \"\\u0169\",\n utri: \"\\u25B5\",\n utrif: \"\\u25B4\",\n uuarr: \"\\u21C8\",\n Uuml: \"\\xdc\",\n uuml: \"\\xfc\",\n uwangle: \"\\u29A7\",\n vangrt: \"\\u299C\",\n varepsilon: \"\\u03F5\",\n varkappa: \"\\u03F0\",\n varnothing: \"\\u2205\",\n varphi: \"\\u03D5\",\n varpi: \"\\u03D6\",\n varpropto: \"\\u221D\",\n vArr: \"\\u21D5\",\n varr: \"\\u2195\",\n varrho: \"\\u03F1\",\n varsigma: \"\\u03C2\",\n varsubsetneq: \"\\u228A\\uFE00\",\n varsubsetneqq: \"\\u2ACB\\uFE00\",\n varsupsetneq: \"\\u228B\\uFE00\",\n varsupsetneqq: \"\\u2ACC\\uFE00\",\n vartheta: \"\\u03D1\",\n vartriangleleft: \"\\u22B2\",\n vartriangleright: \"\\u22B3\",\n Vbar: \"\\u2AEB\",\n vBar: \"\\u2AE8\",\n vBarv: \"\\u2AE9\",\n Vcy: \"\\u0412\",\n vcy: \"\\u0432\",\n VDash: \"\\u22AB\",\n Vdash: \"\\u22A9\",\n vDash: \"\\u22A8\",\n vdash: \"\\u22A2\",\n Vdashl: \"\\u2AE6\",\n Vee: \"\\u22C1\",\n vee: \"\\u2228\",\n veebar: \"\\u22BB\",\n veeeq: \"\\u225A\",\n vellip: \"\\u22EE\",\n Verbar: \"\\u2016\",\n verbar: \"|\",\n Vert: \"\\u2016\",\n vert: \"|\",\n VerticalBar: \"\\u2223\",\n VerticalLine: \"|\",\n VerticalSeparator: \"\\u2758\",\n VerticalTilde: \"\\u2240\",\n VeryThinSpace: \"\\u200A\",\n Vfr: \"\\uD835\\uDD19\",\n vfr: \"\\uD835\\uDD33\",\n vltri: \"\\u22B2\",\n vnsub: \"\\u2282\\u20D2\",\n vnsup: \"\\u2283\\u20D2\",\n Vopf: \"\\uD835\\uDD4D\",\n vopf: \"\\uD835\\uDD67\",\n vprop: \"\\u221D\",\n vrtri: \"\\u22B3\",\n Vscr: \"\\uD835\\uDCB1\",\n vscr: \"\\uD835\\uDCCB\",\n vsubnE: \"\\u2ACB\\uFE00\",\n vsubne: \"\\u228A\\uFE00\",\n vsupnE: \"\\u2ACC\\uFE00\",\n vsupne: \"\\u228B\\uFE00\",\n Vvdash: \"\\u22AA\",\n vzigzag: \"\\u299A\",\n Wcirc: \"\\u0174\",\n wcirc: \"\\u0175\",\n wedbar: \"\\u2A5F\",\n Wedge: \"\\u22C0\",\n wedge: \"\\u2227\",\n wedgeq: \"\\u2259\",\n weierp: \"\\u2118\",\n Wfr: \"\\uD835\\uDD1A\",\n wfr: \"\\uD835\\uDD34\",\n Wopf: \"\\uD835\\uDD4E\",\n wopf: \"\\uD835\\uDD68\",\n wp: \"\\u2118\",\n wr: \"\\u2240\",\n wreath: \"\\u2240\",\n Wscr: \"\\uD835\\uDCB2\",\n wscr: \"\\uD835\\uDCCC\",\n xcap: \"\\u22C2\",\n xcirc: \"\\u25EF\",\n xcup: \"\\u22C3\",\n xdtri: \"\\u25BD\",\n Xfr: \"\\uD835\\uDD1B\",\n xfr: \"\\uD835\\uDD35\",\n xhArr: \"\\u27FA\",\n xharr: \"\\u27F7\",\n Xi: \"\\u039E\",\n xi: \"\\u03BE\",\n xlArr: \"\\u27F8\",\n xlarr: \"\\u27F5\",\n xmap: \"\\u27FC\",\n xnis: \"\\u22FB\",\n xodot: \"\\u2A00\",\n Xopf: \"\\uD835\\uDD4F\",\n xopf: \"\\uD835\\uDD69\",\n xoplus: \"\\u2A01\",\n xotime: \"\\u2A02\",\n xrArr: \"\\u27F9\",\n xrarr: \"\\u27F6\",\n Xscr: \"\\uD835\\uDCB3\",\n xscr: \"\\uD835\\uDCCD\",\n xsqcup: \"\\u2A06\",\n xuplus: \"\\u2A04\",\n xutri: \"\\u25B3\",\n xvee: \"\\u22C1\",\n xwedge: \"\\u22C0\",\n Yacute: \"\\xdd\",\n yacute: \"\\xfd\",\n YAcy: \"\\u042F\",\n yacy: \"\\u044F\",\n Ycirc: \"\\u0176\",\n ycirc: \"\\u0177\",\n Ycy: \"\\u042B\",\n ycy: \"\\u044B\",\n yen: \"\\xa5\",\n Yfr: \"\\uD835\\uDD1C\",\n yfr: \"\\uD835\\uDD36\",\n YIcy: \"\\u0407\",\n yicy: \"\\u0457\",\n Yopf: \"\\uD835\\uDD50\",\n yopf: \"\\uD835\\uDD6A\",\n Yscr: \"\\uD835\\uDCB4\",\n yscr: \"\\uD835\\uDCCE\",\n YUcy: \"\\u042E\",\n yucy: \"\\u044E\",\n Yuml: \"\\u0178\",\n yuml: \"\\xff\",\n Zacute: \"\\u0179\",\n zacute: \"\\u017A\",\n Zcaron: \"\\u017D\",\n zcaron: \"\\u017E\",\n Zcy: \"\\u0417\",\n zcy: \"\\u0437\",\n Zdot: \"\\u017B\",\n zdot: \"\\u017C\",\n zeetrf: \"\\u2128\",\n ZeroWidthSpace: \"\\u200B\",\n Zeta: \"\\u0396\",\n zeta: \"\\u03B6\",\n Zfr: \"\\u2128\",\n zfr: \"\\uD835\\uDD37\",\n ZHcy: \"\\u0416\",\n zhcy: \"\\u0436\",\n zigrarr: \"\\u21DD\",\n Zopf: \"\\u2124\",\n zopf: \"\\uD835\\uDD6B\",\n Zscr: \"\\uD835\\uDCB5\",\n zscr: \"\\uD835\\uDCCF\",\n zwj: \"\\u200D\",\n zwnj: \"\\u200C\"\n});\n$bb581e29d81da91f$export$79451380caed3f98 = $bb581e29d81da91f$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"gqQA6\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9, (v) => $bf67dc97ecf5e14f$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $bf67dc97ecf5e14f$export$f9c837a54db411d, (v) => $bf67dc97ecf5e14f$export$f9c837a54db411d = v);\nvar $bf67dc97ecf5e14f$export$ccbc9f9f018333e9;\nvar $bf67dc97ecf5e14f$export$f9c837a54db411d;\n\nvar $12jBw = parcelRequire(\"12jBw\");\nvar $bf67dc97ecf5e14f$require$NAMESPACE = $12jBw.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $bf67dc97ecf5e14f$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $bf67dc97ecf5e14f$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $bf67dc97ecf5e14f$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $bf67dc97ecf5e14f$var$tagNamePattern = new RegExp(\"^\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*(?::\" + $bf67dc97ecf5e14f$var$nameStartChar.source + $bf67dc97ecf5e14f$var$nameChar.source + \"*)?$\");\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $bf67dc97ecf5e14f$var$S_TAG = 0; //tag name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR = 1; //attr name offerring\nvar $bf67dc97ecf5e14f$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $bf67dc97ecf5e14f$var$S_EQ = 3; //=space?\nvar $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $bf67dc97ecf5e14f$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $bf67dc97ecf5e14f$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $bf67dc97ecf5e14f$var$S_TAG_CLOSE = 7; //closed el\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $bf67dc97ecf5e14f$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $bf67dc97ecf5e14f$var$ParseError);\n}\n$bf67dc97ecf5e14f$var$ParseError.prototype = new Error();\n$bf67dc97ecf5e14f$var$ParseError.prototype.name = $bf67dc97ecf5e14f$var$ParseError.name;\nfunction $bf67dc97ecf5e14f$var$XMLReader() {}\n$bf67dc97ecf5e14f$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $bf67dc97ecf5e14f$var$_copy(defaultNSMap, defaultNSMap = {});\n $bf67dc97ecf5e14f$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $bf67dc97ecf5e14f$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === \"#\") return fixedFromCharCode(parseInt(k.substr(1).replace(\"x\", \"0x\")));\n else {\n errorHandler.error(\"entity not found:\" + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf(\"<\", start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case \"/\":\n var end = source.indexOf(\">\", tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, \"\");\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, \"\");\n errorHandler.error(\"end tag name: \" + tagName + \" is not complete:\" + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $bf67dc97ecf5e14f$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $bf67dc97ecf5e14f$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError(\"Attribute \" + qname + \" redefined\");\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, \" \").replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $bf67dc97ecf5e14f$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case \"=\":\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_EQ;\n } else if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) s = $bf67dc97ecf5e14f$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error(\"attribute equal must after attrName\"); // No known test case\n break;\n case \"'\":\n case '\"':\n if (s === $bf67dc97ecf5e14f$var$S_EQ || s === $bf67dc97ecf5e14f$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $bf67dc97ecf5e14f$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error(\"attribute value no end '\" + c + \"' match\");\n } else if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + \")!!\");\n start = p + 1;\n s = $bf67dc97ecf5e14f$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case \"/\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n s = $bf67dc97ecf5e14f$var$S_TAG_CLOSE;\n el.closed = true;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case \"\":\n errorHandler.error(\"unexpected end of input\");\n if (s == $bf67dc97ecf5e14f$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case \">\":\n switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n break; //normal\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n case $bf67dc97ecf5e14f$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === \"/\") {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n if (s === $bf67dc97ecf5e14f$var$S_ATTR_SPACE) value = attrName;\n if (s == $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n throw new Error(\"attribute value missed!!\");\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case \"\\x80\":\n c = \" \";\n default:\n if (c <= \" \") switch(s){\n case $bf67dc97ecf5e14f$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $bf67dc97ecf5e14f$var$S_ATTR_SPACE;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n s = $bf67dc97ecf5e14f$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $bf67dc97ecf5e14f$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$bf67dc97ecf5e14f$require$NAMESPACE.isHTML(currentNSMap[\"\"]) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n break;\n case $bf67dc97ecf5e14f$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $bf67dc97ecf5e14f$var$S_TAG_SPACE:\n s = $bf67dc97ecf5e14f$var$S_ATTR;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_EQ:\n s = $bf67dc97ecf5e14f$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $bf67dc97ecf5e14f$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $bf67dc97ecf5e14f$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(\":\");\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === \"xmlns\" && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === \"xmlns\" && \"\";\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $bf67dc97ecf5e14f$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === \"xml\") a.uri = $bf67dc97ecf5e14f$require$NAMESPACE.XML;\n if (prefix !== \"xmlns\") a.uri = currentNSMap[prefix || \"\"];\n }\n }\n var nsp = tagName.indexOf(\":\");\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || \"\"];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $bf67dc97ecf5e14f$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf(\"\", elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $bf67dc97ecf5e14f$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf(\"\");\n if (pos < elStartEnd) pos = source.lastIndexOf(\"\", start + 4);\n //append comment source.substring(4,end)// * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","import fs, {promises as fsPromises} from 'node:fs';\n\nexport async function pathExists(path) {\n\ttry {\n\t\tawait fsPromises.access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function pathExistsSync(path) {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n",null,"import { basename, extname } from \"path\"\n\n/**\n * Get the name of the given file path.\n *\n * By default the file extension is included in the returned name. To remove the extension, set the second parameter to `false`.\n *\n * @example\n *\n * ```js\n * import { name } from \"patha\"\n *\n * name(\"path/to/file.md\") // gives \"file.md\"\n *\n * name(\"path/to/file.md\", false) // gives \"file\"\n * ```\n *\n * @param path The given file path\n * @param includeExtension If the name should include the file extension as well\n * @returns The base name without the extension\n */\nexport function name(path: string, includeExtension: boolean = true) {\n if (includeExtension) {\n return basename(path)\n } else {\n return basename(path, extname(path))\n }\n}\n","import { normalize, sep } from \"path\"\nimport escapeRegexp from \"escape-string-regexp\"\n\n/**\n * Normalizes the path and removes the trailing slashes.\n *\n * @example\n *\n * ```js\n * import { normalize, normalizeTrim } from \"patha\"\n *\n * normalizeTrim(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf\"\n *\n * normalize(\"/foo/bar//baz/asdf/hello/../\") // gives \"/foo/bar/baz/asdf/\"\n * ```\n *\n * @param path The given file path\n * @returns The normalized and trimmed file path\n */\nexport function normalizeTrim(path: string) {\n return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), \"\")\n}\n","/**\n * Add bin extension to the given binary name.\n *\n * @example\n *\n * ```js\n * import { addExeExt } from \"patha\"\n *\n * addExeExt(\"path/to/file-name\") // gives \"path/to/file-name.exe\" on Windows and \"path/to/file-name\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext Defaults to `.exe` on Windows\n * @param other_ext Defaults to `\"\"` On other platforms.\n */\nexport function addExeExt(name: string, win_ext = \".exe\", other_ext = \"\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a prefix to the start of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNamePrefix } from \"patha\"\n *\n * addNamePrefix(\"path/to/file-name.ext\", \"new-\") // gives \"path/to/new-file-name.ext\"\n * ```\n *\n * @param path The given file path\n * @param prefix The prefix to add to the start of the file name\n * @returns The path with a prefix added to its file name\n */\nexport function addNamePrefix(path: string, prefix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name prefix\n const NameWithPrefix = `${prefix}${nameWithoutExt}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithPrefix)\n}\n","import { basename, dirname, extname, join } from \"path\"\n\n/**\n * Adds a suffix to the end of the name of the given path\n *\n * @example\n *\n * ```js\n * import { addNameSuffix } from \"patha\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \"-old\") // gives \"path/to/file-name-old.ext\"\n *\n * addNameSuffix(\"path/to/file-name.ext\", \".test\") // gives \"path/to/file-name.test.ext\"\n * ```\n *\n * @param path The given file path\n * @param suffix The suffix to add to the end of the file name\n * @returns The path with a suffix added to its file name\n */\nexport function addNameSuffix(path: string, suffix: string) {\n // get the extension and the file name\n const ext = extname(path)\n const nameWithoutExt = basename(path, ext)\n\n // add the name suffix\n const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`\n\n // add the dirname back\n return join(dirname(path), NameWithSuffix)\n}\n","/**\n * Add a native shell extension to the given name.\n *\n * @example\n *\n * ```js\n * import { addShExt } from \"patha\"\n *\n * addShExt(\"path/to/file-name\") // gives \"path/to/file-name.cmd\" on Windows and \"path/to/file-name.sh\" on others\n *\n * addShExt(\"path/to/file-name\", \".bat\") // gives \"path/to/file-name.bat\" on Windows and \"path/to/file-name.sh\" on others\n * ```\n *\n * @param name The name you want to add the shell extension to\n * @param win_ext `.cmd` on Windows\n * @param other_ext `.sh` On others.\n * @returns The file path with the shell extension added\n */\nexport function addShExt(name: string, win_ext = \".cmd\", other_ext = \".sh\") {\n if (process.platform === \"win32\") {\n return `${name}${win_ext}`\n }\n return `${name}${other_ext}`\n}\n","/**\n * Prefix a `./` for unix shell and nothing for `cmd`.\n *\n * @example\n *\n * ```js\n * import { addShRelativePrefix } from \"patha\"\n *\n * addShRelativePrefix(\"some/file-name\") // gives \"some/file-name\" on Windows and \"./some/file-name\" on others.\n * ```\n *\n * @param path The given path\n * @returns The path with `./` added on Unix\n */\nexport function addShRelativePrefix(path: string) {\n if (process.platform === \"win32\") {\n return path\n }\n return `./${path}`\n}\n","import { extname } from \"path\"\n\n/**\n * Remove a path's extension.\n *\n * @example\n *\n * ```js\n * import { removeExt } from \"patha\"\n *\n * removeExt(\"some/dir/file.ext\") // gives \"some/dir/file\"\n * ```\n *\n * @param path The given path\n * @returns The path without its file extension\n */\nexport function removeExt(path: string) {\n const extensionLength = extname(path).length\n return path.slice(0, -extensionLength)\n}\n","import replaceExtOrig from \"replace-ext\"\n\n/**\n * Replaces the extension from path with extension and returns the updated path string.\n *\n * Does not replace the extension if path is not a string or is empty.\n *\n * @example\n *\n * ```js\n * import { replaceExt } from \"patha\"\n *\n * replaceExt(\"path/to/file.md\", \".html\") // gives \"path/to/file.html\"\n * ```\n *\n * @param path The given path\n * @param extension The extension to replace\n */\nexport function replaceExt(path: string, extension: string) {\n // TODO replaceExt should not change `/` to `\\\\` on Windows\n return replaceExtOrig(path, extension)\n}\n","import { relative, resolve, sep } from \"path\"\n\n/**\n * Check if a path is inside another path.\n *\n * Note that relative paths are resolved against `process.cwd()` to make them absolute.\n *\n * This function does not check if the paths exist and it only works with strings.\n *\n * @example\n *\n * ```js\n * import { isPathInside } from \"patha\"\n *\n * isPathInside(\"a/b/c\", \"a/b\")\n * //=> true\n *\n * isPathInside(\"a/b/c\", \"x/y\")\n * //=> false\n *\n * isPathInside(\"a/b/c\", \"a/b/c\")\n * //=> false\n *\n * isPathInside(\"/Users/some/dev/aa\", \"/Users/some\")\n * //=> true\n * ```\n */\nexport function isPathInside(childPath: string, parentPath: string): boolean {\n // copied from is-path-inside because the package uses node:path that can't be bundled for the browser\n\n const relation = relative(parentPath, childPath)\n\n return Boolean(relation && relation !== \"..\" && !relation.startsWith(`..${sep}`) && relation !== resolve(childPath))\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n var nFilepath = path.join(path.dirname(npath), nFileName);\n\n // Because `path.join` removes the head './' from the given path.\n // This removal can cause a problem when passing the result to `require` or\n // `import`.\n if (startsWithSingleDot(npath)) {\n return '.' + path.sep + nFilepath;\n }\n\n return nFilepath;\n}\n\nfunction startsWithSingleDot(fpath) {\n var first2chars = fpath.slice(0, 2);\n return first2chars === '.' + path.sep || first2chars === './';\n}\n\nmodule.exports = replaceExt;\n",null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,"module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"actions_python.4fb6b558.js\"))).then(() => parcelRequire('4kQHk'));","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\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\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\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)//