diff --git a/README.md b/README.md index 6a79c2e..043f408 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,15 @@ This can be useful when the runner executing the action is self-hosted and has r scannerBinariesUrl: https://my.custom.binaries.url.com/Distribution/sonar-scanner-cli/ ``` +If the specified URL requires authorization then use the `scannerBinariesAuth` input to provide the necessary token: + +```yaml +- uses: SonarSource/sonarqube-scan-action@ + with: + scannerBinariesUrl: https://my.custom.binaries.url.com/Distribution/sonar-scanner-cli/ + scannerBinariesAuth: ${{ secrets.SCANNER_BINARIES_AUTH_TOKEN }} +``` + More information about possible analysis parameters can be found: * in the [Analysis parameters page](https://docs.sonarsource.com/sonarqube-server/latest/analyzing-source-code/analysis-parameters/) of the SonarQube Server documentation * in the [Analysis parameters page](https://docs.sonarsource.com/sonarqube-cloud/advanced-setup/analysis-parameters/) of the SonarQube Cloud documentation diff --git a/action.yml b/action.yml index 579b853..55f3d44 100644 --- a/action.yml +++ b/action.yml @@ -24,6 +24,10 @@ inputs: description: URL to download the Sonar Scanner CLI binaries from required: false default: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli + scannerBinariesAuth: + description: Authentication token to download the Sonar Scanner CLI binary from customBinariesUrl + required: false + default: "" runs: using: node20 main: dist/index.js diff --git a/dist/index.js b/dist/index.js index d24308a..b0088d9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2640,12 +2640,53 @@ const scannerDirName = (version, flavor) => const TOOLNAME = "sonar-scanner-cli"; +/** + * Download the sonar-scanner-cli from a internal url along with authorization token + */ +async function downloadWithFetch(url, outputPath, authToken) { + coreExports.info(`Downloading sonar-scanner-cli from: ${url}`); + + //create output directory if it doesn't exist + const outputDir = path.dirname(outputPath); + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + //prepare headers + const headers = {}; + if (authToken) { + headers["Authorization"] = `Bearer ${authToken}`; + coreExports.info("Using auth token for download"); + } + try { + const response = await fetch(url, { headers }); + + if (!response.ok) { + throw new Error( + `Failed to download sonar-scanner-cli from ${url}: ${response.statusText}` + ); + } + + const arrayBuffer = await response.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + + fs.writeFileSync(outputPath, buffer); + coreExports.info(`Successfully Downloaded sonar-scanner-cli to: ${outputPath}`); + + return outputPath; + } + catch (error) { + coreExports.setFailed(error.message); + } +} + /** * Download the Sonar Scanner CLI for the current environment and cache it. */ async function installSonarScanner({ scannerVersion, scannerBinariesUrl, + scannerBinariesAuth, }) { const flavor = getPlatformFlavor(require$$0.platform(), require$$0.arch()); @@ -2665,28 +2706,39 @@ async function installSonarScanner({ coreExports.info(`Downloading from: ${downloadUrl}`); - const downloadPath = await toolCacheExports.downloadTool(downloadUrl); - const extractedPath = await toolCacheExports.extractZip(downloadPath); + let downloadPath; + + if (scannerBinariesAuth) { + // If auth token is provided + const tempDir = process.env.RUNNER_TEMP || require$$0.tmpdir(); + const fileName = path.basename(downloadUrl); + const tempFile = path.join(tempDir, fileName); + + downloadPath = await downloadWithFetch(downloadUrl, tempFile, scannerBinariesAuth); + } else { + // use tool-cache without auth token + coreExports.info("Using tool-cache to run sonar-scanner-cli"); + downloadPath = await toolCacheExports.downloadTool(downloadUrl); + } + + const extractPath = await toolCacheExports.extractZip(downloadPath); // Find the actual scanner directory inside the extracted folder - const scannerPath = path.join( - extractedPath, - scannerDirName(scannerVersion, flavor) - ); - + const scannerPath = path.join(extractPath, scannerDirName(scannerVersion, flavor)); + toolDir = await toolCacheExports.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor); coreExports.info(`Sonar Scanner CLI cached to: ${toolDir}`); } else { - coreExports.info(`Using cached Sonar Scanner CLI from: ${toolDir}`); + coreExports.info(`Using Sonar Scanner CLI from cache: ${toolDir}`); } - // Add the bin directory to PATH + // Add the tool to the path const binDir = path.join(toolDir, "bin"); coreExports.addPath(binDir); return toolDir; -} + } function parseArgsStringToArgv(value, env, file) { // ([^\s'"]([^\s'"]*(['"])([^\3]*?)\3)+[^\s'"]*) Matches nested quotes until the first space outside of quotes @@ -2918,9 +2970,10 @@ function getInputs() { const args = coreExports.getInput("args"); const projectBaseDir = coreExports.getInput("projectBaseDir"); const scannerBinariesUrl = coreExports.getInput("scannerBinariesUrl"); + const scannerBinariesAuth = coreExports.getInput("scannerBinariesAuth"); const scannerVersion = coreExports.getInput("scannerVersion"); - return { args, projectBaseDir, scannerBinariesUrl, scannerVersion }; + return { args, projectBaseDir, scannerBinariesUrl, scannerBinariesAuth, scannerVersion }; } /** @@ -2956,7 +3009,7 @@ function runSanityChecks(inputs) { async function run() { try { - const { args, projectBaseDir, scannerVersion, scannerBinariesUrl } = + const { args, projectBaseDir, scannerVersion, scannerBinariesUrl, scannerBinariesAuth } = getInputs(); const runnerEnv = getEnvVariables(); const { sonarToken } = runnerEnv; @@ -2966,6 +3019,7 @@ async function run() { const scannerDir = await installSonarScanner({ scannerVersion, scannerBinariesUrl, + scannerBinariesAuth, }); await runSonarScanner(args, projectBaseDir, scannerDir, runnerEnv); diff --git a/dist/index.js.map b/dist/index.js.map index a4cde3b..d62589f 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/semver/semver.js","../node_modules/@actions/tool-cache/lib/manifest.js","../node_modules/@actions/tool-cache/lib/retry-helper.js","../node_modules/@actions/tool-cache/lib/tool-cache.js","../src/main/utils.js","../src/main/install-sonar-scanner.js","../node_modules/string-argv/index.js","../src/main/run-sonar-scanner.js","../src/main/sanity-checks.js","../src/main/index.js"],"sourcesContent":["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\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._readLinuxVersionFile = exports._getOsVersion = exports._findMatch = void 0;\nconst semver = __importStar(require(\"semver\"));\nconst core_1 = require(\"@actions/core\");\n// needs to be require for core node modules to be mocked\n/* eslint @typescript-eslint/no-require-imports: 0 */\nconst os = require(\"os\");\nconst cp = require(\"child_process\");\nconst fs = require(\"fs\");\nfunction _findMatch(versionSpec, stable, candidates, archFilter) {\n return __awaiter(this, void 0, void 0, function* () {\n const platFilter = os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates) {\n const version = candidate.version;\n (0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);\n if (semver.satisfies(version, versionSpec) &&\n (!stable || candidate.stable === stable)) {\n file = candidate.files.find(item => {\n (0, core_1.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) {\n chk = true;\n }\n else {\n chk = semver.satisfies(osVersion, item.platform_version);\n }\n }\n return chk;\n });\n if (file) {\n (0, core_1.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 = [file];\n }\n return result;\n });\n}\nexports._findMatch = _findMatch;\nfunction _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 = os.platform();\n let version = '';\n if (plat === 'darwin') {\n version = cp.execSync('sw_vers -productVersion').toString();\n }\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 &&\n (parts[0].trim() === 'VERSION_ID' ||\n parts[0].trim() === 'DISTRIB_RELEASE')) {\n version = parts[1].trim().replace(/^\"/, '').replace(/\"$/, '');\n break;\n }\n }\n }\n }\n return version;\n}\nexports._getOsVersion = _getOsVersion;\nfunction _readLinuxVersionFile() {\n const lsbReleaseFile = '/etc/lsb-release';\n const osReleaseFile = '/etc/os-release';\n let contents = '';\n if (fs.existsSync(lsbReleaseFile)) {\n contents = fs.readFileSync(lsbReleaseFile).toString();\n }\n else if (fs.existsSync(osReleaseFile)) {\n contents = fs.readFileSync(osReleaseFile).toString();\n }\n return contents;\n}\nexports._readLinuxVersionFile = _readLinuxVersionFile;\n//# sourceMappingURL=manifest.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RetryHelper = void 0;\nconst core = __importStar(require(\"@actions/core\"));\n/**\n * Internal class for retries\n */\nclass RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds) {\n if (maxAttempts < 1) {\n throw new Error('max attempts should be greater than or equal to 1');\n }\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) {\n throw new Error('min seconds should be less than or equal to max seconds');\n }\n }\n execute(action, isRetryable) {\n return __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 }\n catch (err) {\n if (isRetryable && !isRetryable(err)) {\n throw err;\n }\n core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n 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)) +\n this.minSeconds);\n }\n sleep(seconds) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(resolve => setTimeout(resolve, seconds * 1000));\n });\n }\n}\nexports.RetryHelper = RetryHelper;\n//# sourceMappingURL=retry-helper.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateVersions = exports.isExplicitVersion = exports.findFromManifest = exports.getManifestFromRepo = exports.findAllVersions = exports.find = exports.cacheFile = exports.cacheDir = exports.extractZip = exports.extractXar = exports.extractTar = exports.extract7z = exports.downloadTool = exports.HTTPError = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst mm = __importStar(require(\"./manifest\"));\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst httpm = __importStar(require(\"@actions/http-client\"));\nconst semver = __importStar(require(\"semver\"));\nconst stream = __importStar(require(\"stream\"));\nconst util = __importStar(require(\"util\"));\nconst assert_1 = require(\"assert\");\nconst exec_1 = require(\"@actions/exec/lib/exec\");\nconst retry_helper_1 = require(\"./retry-helper\");\nclass 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}\nexports.HTTPError = HTTPError;\nconst IS_WINDOWS = process.platform === 'win32';\nconst IS_MAC = process.platform === 'darwin';\nconst 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 */\nfunction downloadTool(url, dest, auth, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n dest = dest || path.join(_getTempDirectory(), crypto.randomUUID());\n yield io.mkdirP(path.dirname(dest));\n core.debug(`Downloading ${url}`);\n core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS', 10);\n const maxSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS', 20);\n const retryHelper = new retry_helper_1.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () {\n return yield downloadToolAttempt(url, dest || '', auth, headers);\n }), (err) => {\n if (err instanceof 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 &&\n err.httpStatusCode !== 408 &&\n err.httpStatusCode !== 429) {\n return false;\n }\n }\n // Otherwise retry\n return true;\n });\n });\n}\nexports.downloadTool = downloadTool;\nfunction downloadToolAttempt(url, dest, auth, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (fs.existsSync(dest)) {\n throw new Error(`Destination file path ${dest} already exists`);\n }\n // Get the response headers\n const http = new httpm.HttpClient(userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n core.debug('set auth');\n if (headers === undefined) {\n headers = {};\n }\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new HTTPError(response.message.statusCode);\n 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 = util.promisify(stream.pipeline);\n const responseMessageFactory = _getGlobal('TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY', () => response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, fs.createWriteStream(dest));\n core.debug('download complete');\n succeeded = true;\n return dest;\n }\n finally {\n // Error, delete dest before retry\n if (!succeeded) {\n core.debug('download failed');\n try {\n yield io.rmRF(dest);\n }\n catch (err) {\n 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 */\nfunction extract7z(file, dest, _7zPath) {\n return __awaiter(this, void 0, void 0, function* () {\n (0, assert_1.ok)(IS_WINDOWS, 'extract7z() not supported on current OS');\n (0, assert_1.ok)(file, 'parameter \"file\" is required');\n dest = yield _createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) {\n try {\n const logLevel = 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 (0, exec_1.exec)(`\"${_7zPath}\"`, args, options);\n }\n finally {\n process.chdir(originalCwd);\n }\n }\n else {\n const escapedScript = path\n .join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1')\n .replace(/'/g, \"''\")\n .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 io.which('powershell', true);\n yield (0, exec_1.exec)(`\"${powershellPath}\"`, args, options);\n }\n finally {\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nexports.extract7z = 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 */\nfunction extractTar(file, dest, flags = 'xz') {\n return __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n throw new Error(\"parameter 'file' is required\");\n }\n // Create dest\n dest = yield _createExtractFolder(dest);\n // Determine whether GNU tar\n core.debug('Checking tar --version');\n let versionOutput = '';\n yield (0, exec_1.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 core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes('GNU TAR');\n // Initialize args\n let args;\n if (flags instanceof Array) {\n args = flags;\n }\n else {\n args = [flags];\n }\n if (core.isDebug() && !flags.includes('v')) {\n args.push('-v');\n }\n let destArg = dest;\n let fileArg = file;\n if (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 (0, exec_1.exec)(`tar`, args);\n return dest;\n });\n}\nexports.extractTar = 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 */\nfunction extractXar(file, dest, flags = []) {\n return __awaiter(this, void 0, void 0, function* () {\n (0, assert_1.ok)(IS_MAC, 'extractXar() not supported on current OS');\n (0, assert_1.ok)(file, 'parameter \"file\" is required');\n dest = yield _createExtractFolder(dest);\n let args;\n if (flags instanceof Array) {\n args = flags;\n }\n else {\n args = [flags];\n }\n args.push('-x', '-C', dest, '-f', file);\n if (core.isDebug()) {\n args.push('-v');\n }\n const xarPath = yield io.which('xar', true);\n yield (0, exec_1.exec)(`\"${xarPath}\"`, _unique(args));\n return dest;\n });\n}\nexports.extractXar = 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 */\nfunction extractZip(file, dest) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n throw new Error(\"parameter 'file' is required\");\n }\n dest = yield _createExtractFolder(dest);\n if (IS_WINDOWS) {\n yield extractZipWin(file, dest);\n }\n else {\n yield extractZipNix(file, dest);\n }\n return dest;\n });\n}\nexports.extractZip = extractZip;\nfunction extractZipWin(file, dest) {\n return __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 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 core.debug(`Using pwsh at path: ${pwshPath}`);\n yield (0, exec_1.exec)(`\"${pwshPath}\"`, args);\n }\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 io.which('powershell', true);\n core.debug(`Using powershell at path: ${powershellPath}`);\n yield (0, exec_1.exec)(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction extractZipNix(file, dest) {\n return __awaiter(this, void 0, void 0, function* () {\n const unzipPath = yield io.which('unzip', true);\n const args = [file];\n if (!core.isDebug()) {\n args.unshift('-q');\n }\n args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield (0, exec_1.exec)(`\"${unzipPath}\"`, args, { cwd: dest });\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 */\nfunction cacheDir(sourceDir, tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n version = semver.clean(version) || version;\n arch = arch || os.arch();\n core.debug(`Caching tool ${tool} ${version} ${arch}`);\n core.debug(`source dir: ${sourceDir}`);\n if (!fs.statSync(sourceDir).isDirectory()) {\n throw new Error('sourceDir is not a directory');\n }\n // Create the tool dir\n const destPath = yield _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 fs.readdirSync(sourceDir)) {\n const s = path.join(sourceDir, itemName);\n yield io.cp(s, destPath, { recursive: true });\n }\n // write .complete\n _completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nexports.cacheDir = 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 */\nfunction cacheFile(sourceFile, targetFile, tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n version = semver.clean(version) || version;\n arch = arch || os.arch();\n core.debug(`Caching tool ${tool} ${version} ${arch}`);\n core.debug(`source file: ${sourceFile}`);\n if (!fs.statSync(sourceFile).isFile()) {\n throw new Error('sourceFile is not a file');\n }\n // create the tool dir\n const destFolder = yield _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 = path.join(destFolder, targetFile);\n core.debug(`destination file ${destPath}`);\n yield io.cp(sourceFile, destPath);\n // write .complete\n _completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nexports.cacheFile = 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 */\nfunction find(toolName, versionSpec, arch) {\n if (!toolName) {\n throw new Error('toolName parameter is required');\n }\n if (!versionSpec) {\n throw new Error('versionSpec parameter is required');\n }\n arch = arch || os.arch();\n // attempt to resolve an explicit version\n if (!isExplicitVersion(versionSpec)) {\n const localVersions = findAllVersions(toolName, arch);\n const match = evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = '';\n if (versionSpec) {\n versionSpec = semver.clean(versionSpec) || '';\n const cachePath = path.join(_getCacheDirectory(), toolName, versionSpec, arch);\n core.debug(`checking cache: ${cachePath}`);\n if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {\n core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n }\n else {\n core.debug('not found');\n }\n }\n return toolPath;\n}\nexports.find = 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 */\nfunction findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || os.arch();\n const toolPath = path.join(_getCacheDirectory(), toolName);\n if (fs.existsSync(toolPath)) {\n const children = fs.readdirSync(toolPath);\n for (const child of children) {\n if (isExplicitVersion(child)) {\n const fullPath = path.join(toolPath, child, arch || '');\n if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) {\n versions.push(child);\n }\n }\n }\n }\n return versions;\n}\nexports.findAllVersions = findAllVersions;\nfunction getManifestFromRepo(owner, repo, auth, branch = 'master') {\n return __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 httpm.HttpClient('tool-cache');\n const headers = {};\n if (auth) {\n core.debug('set auth');\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) {\n return releases;\n }\n let manifestUrl = '';\n for (const item of response.result.tree) {\n if (item.path === 'versions-manifest.json') {\n manifestUrl = item.url;\n break;\n }\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 }\n catch (_a) {\n core.debug('Invalid json');\n }\n }\n return releases;\n });\n}\nexports.getManifestFromRepo = getManifestFromRepo;\nfunction findFromManifest(versionSpec, stable, manifest, archFilter = os.arch()) {\n return __awaiter(this, void 0, void 0, function* () {\n // wrap the internal impl\n const match = yield mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nexports.findFromManifest = findFromManifest;\nfunction _createExtractFolder(dest) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!dest) {\n // create a temp dir\n dest = path.join(_getTempDirectory(), crypto.randomUUID());\n }\n yield io.mkdirP(dest);\n return dest;\n });\n}\nfunction _createToolPath(tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');\n core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield io.rmRF(folderPath);\n yield io.rmRF(markerPath);\n yield io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction _completeToolPath(tool, version, arch) {\n const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');\n const markerPath = `${folderPath}.complete`;\n fs.writeFileSync(markerPath, '');\n core.debug('finished caching tool');\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */\nfunction isExplicitVersion(versionSpec) {\n const c = semver.clean(versionSpec) || '';\n core.debug(`isExplicit: ${c}`);\n const valid = semver.valid(c) != null;\n core.debug(`explicit? ${valid}`);\n return valid;\n}\nexports.isExplicitVersion = 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 */\nfunction evaluateVersions(versions, versionSpec) {\n let version = '';\n core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b) => {\n if (semver.gt(a, b)) {\n return 1;\n }\n return -1;\n });\n for (let i = versions.length - 1; i >= 0; i--) {\n const potential = versions[i];\n const satisfied = semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) {\n core.debug(`matched: ${version}`);\n }\n else {\n core.debug('match not found');\n }\n return version;\n}\nexports.evaluateVersions = evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */\nfunction _getCacheDirectory() {\n const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || '';\n (0, assert_1.ok)(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined');\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */\nfunction _getTempDirectory() {\n const tempDirectory = process.env['RUNNER_TEMP'] || '';\n (0, assert_1.ok)(tempDirectory, 'Expected RUNNER_TEMP to be defined');\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */\nfunction _getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const value = global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */\n return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */\nfunction _unique(values) {\n return Array.from(new Set(values));\n}\n//# sourceMappingURL=tool-cache.js.map","const platformFlavor = {\n linux: {\n x64: \"linux-x64\",\n arm64: \"linux-aarch64\",\n },\n win32: {\n x64: \"windows-x64\",\n },\n darwin: {\n x64: \"macosx-x64\",\n arm64: \"macosx-aarch64\",\n },\n};\n\nexport function getPlatformFlavor(platform, arch) {\n const flavor = platformFlavor[platform]?.[arch];\n\n if (!flavor) {\n throw new Error(`Platform ${platform} ${arch} not supported`);\n }\n\n return flavor;\n}\n\nexport function getScannerDownloadURL({\n scannerBinariesUrl,\n scannerVersion,\n flavor,\n}) {\n const trimURL = scannerBinariesUrl.replace(/\\/$/, \"\");\n return `${trimURL}/sonar-scanner-cli-${scannerVersion}-${flavor}.zip`;\n}\n\nexport const scannerDirName = (version, flavor) =>\n `sonar-scanner-${version}-${flavor}`;\n","import * as core from \"@actions/core\";\nimport * as tc from \"@actions/tool-cache\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport {\n getPlatformFlavor,\n getScannerDownloadURL,\n scannerDirName,\n} from \"./utils\";\n\nconst TOOLNAME = \"sonar-scanner-cli\";\n\n/**\n * Download the Sonar Scanner CLI for the current environment and cache it.\n */\nexport async function installSonarScanner({\n scannerVersion,\n scannerBinariesUrl,\n}) {\n const flavor = getPlatformFlavor(os.platform(), os.arch());\n\n // Check if tool is already cached\n let toolDir = tc.find(TOOLNAME, scannerVersion, flavor);\n\n if (!toolDir) {\n core.info(\n `Installing Sonar Scanner CLI ${scannerVersion} for ${flavor}...`\n );\n\n const downloadUrl = getScannerDownloadURL({\n scannerBinariesUrl,\n scannerVersion,\n flavor,\n });\n\n core.info(`Downloading from: ${downloadUrl}`);\n\n const downloadPath = await tc.downloadTool(downloadUrl);\n const extractedPath = await tc.extractZip(downloadPath);\n\n // Find the actual scanner directory inside the extracted folder\n const scannerPath = path.join(\n extractedPath,\n scannerDirName(scannerVersion, flavor)\n );\n\n toolDir = await tc.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor);\n\n core.info(`Sonar Scanner CLI cached to: ${toolDir}`);\n } else {\n core.info(`Using cached Sonar Scanner CLI from: ${toolDir}`);\n }\n\n // Add the bin directory to PATH\n const binDir = path.join(toolDir, \"bin\");\n core.addPath(binDir);\n\n return toolDir;\n}\n","export { parseArgsStringToArgv };\nexport default function parseArgsStringToArgv(value, env, file) {\n // ([^\\s'\"]([^\\s'\"]*(['\"])([^\\3]*?)\\3)+[^\\s'\"]*) Matches nested quotes until the first space outside of quotes\n // [^\\s'\"]+ or Match if not a space ' or \"\n // (['\"])([^\\5]*?)\\5 or Match \"quoted text\" without quotes\n // `\\3` and `\\5` are a backreference to the quote style (' or \") captured\n var myRegexp = /([^\\s'\"]([^\\s'\"]*(['\"])([^\\3]*?)\\3)+[^\\s'\"]*)|[^\\s'\"]+|(['\"])([^\\5]*?)\\5/gi;\n var myString = value;\n var myArray = [];\n if (env) {\n myArray.push(env);\n }\n if (file) {\n myArray.push(file);\n }\n var match;\n do {\n // Each call to exec returns the next regex match as an array\n match = myRegexp.exec(myString);\n if (match !== null) {\n // Index 1 in the array is the captured group if it exists\n // Index 0 is the matched text, which we use if no captured group exists\n myArray.push(firstString(match[1], match[6], match[0]));\n }\n } while (match !== null);\n return myArray;\n}\n// Accepts any number of arguments, and returns the first one that is a string\n// (even an empty string)\nfunction firstString() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (typeof arg === \"string\") {\n return arg;\n }\n }\n}\n","import * as core from \"@actions/core\";\nimport * as exec from \"@actions/exec\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { parseArgsStringToArgv } from \"string-argv\";\n\nconst KEYTOOL_MAIN_CLASS = \"sun.security.tools.keytool.Main\";\nconst TRUSTSTORE_PASSWORD = \"changeit\"; // default password of the Java truststore!\n\nexport async function runSonarScanner(\n inputArgs,\n projectBaseDir,\n scannerDir,\n runnerEnv = {}\n) {\n const { runnerDebug, runnerOs, runnerTemp, sonarRootCert, sonarcloudUrl } =\n runnerEnv;\n\n const scannerBin =\n runnerOs === \"Windows\" ? \"sonar-scanner.bat\" : \"sonar-scanner\";\n\n const scannerArgs = [];\n\n /**\n * Not sanitization is needed when populating scannerArgs.\n * @actions/exec will take care of sanitizing the args it receives.\n */\n\n if (sonarcloudUrl) {\n scannerArgs.push(`-Dsonar.scanner.sonarcloudUrl=${sonarcloudUrl}`);\n }\n\n if (runnerDebug === \"1\") {\n scannerArgs.push(\"--debug\");\n }\n\n if (projectBaseDir) {\n scannerArgs.push(`-Dsonar.projectBaseDir=${projectBaseDir}`);\n }\n\n // The SSL folder may exist on an uncleaned self-hosted runner\n const sslFolder = path.join(os.homedir(), \".sonar\", \"ssl\");\n const truststoreFile = path.join(sslFolder, \"truststore.p12\");\n\n const keytoolParams = {\n scannerDir,\n truststoreFile,\n };\n\n if (fs.existsSync(truststoreFile)) {\n let aliasSonarIsPresent = true;\n\n try {\n await checkSonarAliasInTruststore(keytoolParams);\n } catch (_) {\n aliasSonarIsPresent = false;\n core.info(\n `Existing Scanner truststore ${truststoreFile} does not contain 'sonar' alias`\n );\n }\n\n if (aliasSonarIsPresent) {\n core.info(\n `Removing 'sonar' alias from already existing Scanner truststore: ${truststoreFile}`\n );\n await deleteSonarAliasFromTruststore(keytoolParams);\n }\n }\n\n if (sonarRootCert) {\n core.info(\"Adding SSL certificate to the Scanner truststore\");\n const tempCertPath = path.join(runnerTemp, \"tmpcert.pem\");\n\n try {\n fs.unlinkSync(tempCertPath);\n } catch (_) {\n // File doesn't exist, ignore\n }\n\n fs.writeFileSync(tempCertPath, sonarRootCert);\n fs.mkdirSync(sslFolder, { recursive: true });\n\n await importCertificateToTruststore(keytoolParams, tempCertPath);\n\n scannerArgs.push(\n `-Dsonar.scanner.truststorePassword=${TRUSTSTORE_PASSWORD}`\n );\n }\n\n if (inputArgs) {\n /**\n * No sanitization, but it is parsing a string into an array of arguments in a safe way (= no command execution),\n * and with good enough support of quotes to support arguments containing spaces.\n */\n const args = parseArgsStringToArgv(inputArgs);\n scannerArgs.push(...args);\n }\n\n /**\n * Arguments are sanitized by `exec`\n */\n await exec.exec(scannerBin, scannerArgs);\n}\n\n/**\n * Use keytool for now, as SonarQube 10.6 and below doesn't support openssl generated keystores\n * keytool requires a password > 6 characters, so we won't use the default password 'sonar'\n */\nfunction executeKeytoolCommand({\n scannerDir,\n truststoreFile,\n extraArgs,\n options = {},\n}) {\n const baseArgs = [\n KEYTOOL_MAIN_CLASS,\n \"-storetype\",\n \"PKCS12\",\n \"-keystore\",\n truststoreFile,\n \"-storepass\",\n TRUSTSTORE_PASSWORD,\n \"-noprompt\",\n \"-trustcacerts\",\n ...extraArgs,\n ];\n\n return exec.exec(`${scannerDir}/jre/bin/java`, baseArgs, options);\n}\n\nfunction importCertificateToTruststore(keytoolParams, certPath) {\n return executeKeytoolCommand({\n ...keytoolParams,\n extraArgs: [\"-importcert\", \"-alias\", \"sonar\", \"-file\", certPath],\n });\n}\n\nfunction checkSonarAliasInTruststore(keytoolParams) {\n return executeKeytoolCommand({\n ...keytoolParams,\n extraArgs: [\"-list\", \"-v\", \"-alias\", \"sonar\"],\n options: { silent: true },\n });\n}\n\nfunction deleteSonarAliasFromTruststore(keytoolParams) {\n return executeKeytoolCommand({\n ...keytoolParams,\n extraArgs: [\"-delete\", \"-alias\", \"sonar\"],\n });\n}\n","import fs from \"fs\";\nimport { join } from \"path\";\n\nexport function validateScannerVersion(version) {\n if (!version) {\n return;\n }\n\n const versionRegex = /^\\d+\\.\\d+\\.\\d+\\.\\d+$/;\n if (!versionRegex.test(version)) {\n throw new Error(\n \"Invalid scannerVersion format. Expected format: x.y.z.w (e.g., 7.1.0.4889)\"\n );\n }\n}\n\nexport function checkSonarToken(core, sonarToken) {\n if (!sonarToken) {\n core.warning(\n \"Running this GitHub Action without SONAR_TOKEN is not recommended\"\n );\n }\n}\n\nexport function checkMavenProject(core, projectBaseDir) {\n const pomPath = join(projectBaseDir.replace(/\\/$/, \"\"), \"pom.xml\");\n if (fs.existsSync(pomPath)) {\n core.warning(\n \"Maven project detected. Sonar recommends running the 'org.sonarsource.scanner.maven:sonar-maven-plugin:sonar' goal during the build process instead of using this GitHub Action to get more accurate results.\"\n );\n }\n}\n\nexport function checkGradleProject(core, projectBaseDir) {\n const baseDir = projectBaseDir.replace(/\\/$/, \"\");\n const gradlePath = join(baseDir, \"build.gradle\");\n const gradleKtsPath = join(baseDir, \"build.gradle.kts\");\n\n if (fs.existsSync(gradlePath) || fs.existsSync(gradleKtsPath)) {\n core.warning(\n \"Gradle project detected. Sonar recommends using the SonarQube plugin for Gradle during the build process instead of using this GitHub Action to get more accurate results.\"\n );\n }\n}\n","import * as core from \"@actions/core\";\nimport { installSonarScanner } from \"./install-sonar-scanner\";\nimport { runSonarScanner } from \"./run-sonar-scanner\";\nimport {\n checkGradleProject,\n checkMavenProject,\n checkSonarToken,\n validateScannerVersion,\n} from \"./sanity-checks\";\n\n/**\n * Inputs are defined in action.yml\n */\nfunction getInputs() {\n const args = core.getInput(\"args\");\n const projectBaseDir = core.getInput(\"projectBaseDir\");\n const scannerBinariesUrl = core.getInput(\"scannerBinariesUrl\");\n const scannerVersion = core.getInput(\"scannerVersion\");\n\n return { args, projectBaseDir, scannerBinariesUrl, scannerVersion };\n}\n\n/**\n * These RUNNER env variables come from GitHub by default.\n * See https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables\n *\n * The others are optional env variables provided by the user of the action\n */\nfunction getEnvVariables() {\n return {\n runnerDebug: process.env.RUNNER_DEBUG,\n runnerOs: process.env.RUNNER_OS,\n runnerTemp: process.env.RUNNER_TEMP,\n sonarRootCert: process.env.SONAR_ROOT_CERT,\n sonarcloudUrl: process.env.SONARCLOUD_URL,\n sonarToken: process.env.SONAR_TOKEN,\n };\n}\n\nfunction runSanityChecks(inputs) {\n try {\n const { projectBaseDir, scannerVersion, sonarToken } = inputs;\n\n validateScannerVersion(scannerVersion);\n checkSonarToken(core, sonarToken);\n checkMavenProject(core, projectBaseDir);\n checkGradleProject(core, projectBaseDir);\n } catch (error) {\n core.setFailed(`Sanity checks failed: ${error.message}`);\n process.exit(1);\n }\n}\n\nasync function run() {\n try {\n const { args, projectBaseDir, scannerVersion, scannerBinariesUrl } =\n getInputs();\n const runnerEnv = getEnvVariables();\n const { sonarToken } = runnerEnv;\n\n runSanityChecks({ projectBaseDir, scannerVersion, sonarToken });\n\n const scannerDir = await installSonarScanner({\n scannerVersion,\n scannerBinariesUrl,\n });\n\n await runSonarScanner(args, projectBaseDir, scannerDir, runnerEnv);\n } catch (error) {\n core.setFailed(`Action failed: ${error.message}`);\n process.exit(1);\n }\n}\n\nrun();\n"],"names":["this","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","global","os","tc.find","core.info","tc.downloadTool","tc.extractZip","tc.cacheDir","core.addPath","exec.exec","fs","core.getInput","core.setFailed"],"mappings":"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","x_google_ignoreList":[0,1,2,3,6]} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/semver/semver.js","../node_modules/@actions/tool-cache/lib/manifest.js","../node_modules/@actions/tool-cache/lib/retry-helper.js","../node_modules/@actions/tool-cache/lib/tool-cache.js","../src/main/utils.js","../src/main/install-sonar-scanner.js","../node_modules/string-argv/index.js","../src/main/run-sonar-scanner.js","../src/main/sanity-checks.js","../src/main/index.js"],"sourcesContent":["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\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._readLinuxVersionFile = exports._getOsVersion = exports._findMatch = void 0;\nconst semver = __importStar(require(\"semver\"));\nconst core_1 = require(\"@actions/core\");\n// needs to be require for core node modules to be mocked\n/* eslint @typescript-eslint/no-require-imports: 0 */\nconst os = require(\"os\");\nconst cp = require(\"child_process\");\nconst fs = require(\"fs\");\nfunction _findMatch(versionSpec, stable, candidates, archFilter) {\n return __awaiter(this, void 0, void 0, function* () {\n const platFilter = os.platform();\n let result;\n let match;\n let file;\n for (const candidate of candidates) {\n const version = candidate.version;\n (0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);\n if (semver.satisfies(version, versionSpec) &&\n (!stable || candidate.stable === stable)) {\n file = candidate.files.find(item => {\n (0, core_1.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) {\n chk = true;\n }\n else {\n chk = semver.satisfies(osVersion, item.platform_version);\n }\n }\n return chk;\n });\n if (file) {\n (0, core_1.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 = [file];\n }\n return result;\n });\n}\nexports._findMatch = _findMatch;\nfunction _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 = os.platform();\n let version = '';\n if (plat === 'darwin') {\n version = cp.execSync('sw_vers -productVersion').toString();\n }\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 &&\n (parts[0].trim() === 'VERSION_ID' ||\n parts[0].trim() === 'DISTRIB_RELEASE')) {\n version = parts[1].trim().replace(/^\"/, '').replace(/\"$/, '');\n break;\n }\n }\n }\n }\n return version;\n}\nexports._getOsVersion = _getOsVersion;\nfunction _readLinuxVersionFile() {\n const lsbReleaseFile = '/etc/lsb-release';\n const osReleaseFile = '/etc/os-release';\n let contents = '';\n if (fs.existsSync(lsbReleaseFile)) {\n contents = fs.readFileSync(lsbReleaseFile).toString();\n }\n else if (fs.existsSync(osReleaseFile)) {\n contents = fs.readFileSync(osReleaseFile).toString();\n }\n return contents;\n}\nexports._readLinuxVersionFile = _readLinuxVersionFile;\n//# sourceMappingURL=manifest.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RetryHelper = void 0;\nconst core = __importStar(require(\"@actions/core\"));\n/**\n * Internal class for retries\n */\nclass RetryHelper {\n constructor(maxAttempts, minSeconds, maxSeconds) {\n if (maxAttempts < 1) {\n throw new Error('max attempts should be greater than or equal to 1');\n }\n this.maxAttempts = maxAttempts;\n this.minSeconds = Math.floor(minSeconds);\n this.maxSeconds = Math.floor(maxSeconds);\n if (this.minSeconds > this.maxSeconds) {\n throw new Error('min seconds should be less than or equal to max seconds');\n }\n }\n execute(action, isRetryable) {\n return __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 }\n catch (err) {\n if (isRetryable && !isRetryable(err)) {\n throw err;\n }\n core.info(err.message);\n }\n // Sleep\n const seconds = this.getSleepAmount();\n 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)) +\n this.minSeconds);\n }\n sleep(seconds) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(resolve => setTimeout(resolve, seconds * 1000));\n });\n }\n}\nexports.RetryHelper = RetryHelper;\n//# sourceMappingURL=retry-helper.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evaluateVersions = exports.isExplicitVersion = exports.findFromManifest = exports.getManifestFromRepo = exports.findAllVersions = exports.find = exports.cacheFile = exports.cacheDir = exports.extractZip = exports.extractXar = exports.extractTar = exports.extract7z = exports.downloadTool = exports.HTTPError = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst mm = __importStar(require(\"./manifest\"));\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst httpm = __importStar(require(\"@actions/http-client\"));\nconst semver = __importStar(require(\"semver\"));\nconst stream = __importStar(require(\"stream\"));\nconst util = __importStar(require(\"util\"));\nconst assert_1 = require(\"assert\");\nconst exec_1 = require(\"@actions/exec/lib/exec\");\nconst retry_helper_1 = require(\"./retry-helper\");\nclass 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}\nexports.HTTPError = HTTPError;\nconst IS_WINDOWS = process.platform === 'win32';\nconst IS_MAC = process.platform === 'darwin';\nconst 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 */\nfunction downloadTool(url, dest, auth, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n dest = dest || path.join(_getTempDirectory(), crypto.randomUUID());\n yield io.mkdirP(path.dirname(dest));\n core.debug(`Downloading ${url}`);\n core.debug(`Destination ${dest}`);\n const maxAttempts = 3;\n const minSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS', 10);\n const maxSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS', 20);\n const retryHelper = new retry_helper_1.RetryHelper(maxAttempts, minSeconds, maxSeconds);\n return yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () {\n return yield downloadToolAttempt(url, dest || '', auth, headers);\n }), (err) => {\n if (err instanceof 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 &&\n err.httpStatusCode !== 408 &&\n err.httpStatusCode !== 429) {\n return false;\n }\n }\n // Otherwise retry\n return true;\n });\n });\n}\nexports.downloadTool = downloadTool;\nfunction downloadToolAttempt(url, dest, auth, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (fs.existsSync(dest)) {\n throw new Error(`Destination file path ${dest} already exists`);\n }\n // Get the response headers\n const http = new httpm.HttpClient(userAgent, [], {\n allowRetries: false\n });\n if (auth) {\n core.debug('set auth');\n if (headers === undefined) {\n headers = {};\n }\n headers.authorization = auth;\n }\n const response = yield http.get(url, headers);\n if (response.message.statusCode !== 200) {\n const err = new HTTPError(response.message.statusCode);\n 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 = util.promisify(stream.pipeline);\n const responseMessageFactory = _getGlobal('TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY', () => response.message);\n const readStream = responseMessageFactory();\n let succeeded = false;\n try {\n yield pipeline(readStream, fs.createWriteStream(dest));\n core.debug('download complete');\n succeeded = true;\n return dest;\n }\n finally {\n // Error, delete dest before retry\n if (!succeeded) {\n core.debug('download failed');\n try {\n yield io.rmRF(dest);\n }\n catch (err) {\n 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 */\nfunction extract7z(file, dest, _7zPath) {\n return __awaiter(this, void 0, void 0, function* () {\n (0, assert_1.ok)(IS_WINDOWS, 'extract7z() not supported on current OS');\n (0, assert_1.ok)(file, 'parameter \"file\" is required');\n dest = yield _createExtractFolder(dest);\n const originalCwd = process.cwd();\n process.chdir(dest);\n if (_7zPath) {\n try {\n const logLevel = 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 (0, exec_1.exec)(`\"${_7zPath}\"`, args, options);\n }\n finally {\n process.chdir(originalCwd);\n }\n }\n else {\n const escapedScript = path\n .join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1')\n .replace(/'/g, \"''\")\n .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 io.which('powershell', true);\n yield (0, exec_1.exec)(`\"${powershellPath}\"`, args, options);\n }\n finally {\n process.chdir(originalCwd);\n }\n }\n return dest;\n });\n}\nexports.extract7z = 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 */\nfunction extractTar(file, dest, flags = 'xz') {\n return __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n throw new Error(\"parameter 'file' is required\");\n }\n // Create dest\n dest = yield _createExtractFolder(dest);\n // Determine whether GNU tar\n core.debug('Checking tar --version');\n let versionOutput = '';\n yield (0, exec_1.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 core.debug(versionOutput.trim());\n const isGnuTar = versionOutput.toUpperCase().includes('GNU TAR');\n // Initialize args\n let args;\n if (flags instanceof Array) {\n args = flags;\n }\n else {\n args = [flags];\n }\n if (core.isDebug() && !flags.includes('v')) {\n args.push('-v');\n }\n let destArg = dest;\n let fileArg = file;\n if (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 (0, exec_1.exec)(`tar`, args);\n return dest;\n });\n}\nexports.extractTar = 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 */\nfunction extractXar(file, dest, flags = []) {\n return __awaiter(this, void 0, void 0, function* () {\n (0, assert_1.ok)(IS_MAC, 'extractXar() not supported on current OS');\n (0, assert_1.ok)(file, 'parameter \"file\" is required');\n dest = yield _createExtractFolder(dest);\n let args;\n if (flags instanceof Array) {\n args = flags;\n }\n else {\n args = [flags];\n }\n args.push('-x', '-C', dest, '-f', file);\n if (core.isDebug()) {\n args.push('-v');\n }\n const xarPath = yield io.which('xar', true);\n yield (0, exec_1.exec)(`\"${xarPath}\"`, _unique(args));\n return dest;\n });\n}\nexports.extractXar = 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 */\nfunction extractZip(file, dest) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n throw new Error(\"parameter 'file' is required\");\n }\n dest = yield _createExtractFolder(dest);\n if (IS_WINDOWS) {\n yield extractZipWin(file, dest);\n }\n else {\n yield extractZipNix(file, dest);\n }\n return dest;\n });\n}\nexports.extractZip = extractZip;\nfunction extractZipWin(file, dest) {\n return __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 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 core.debug(`Using pwsh at path: ${pwshPath}`);\n yield (0, exec_1.exec)(`\"${pwshPath}\"`, args);\n }\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 io.which('powershell', true);\n core.debug(`Using powershell at path: ${powershellPath}`);\n yield (0, exec_1.exec)(`\"${powershellPath}\"`, args);\n }\n });\n}\nfunction extractZipNix(file, dest) {\n return __awaiter(this, void 0, void 0, function* () {\n const unzipPath = yield io.which('unzip', true);\n const args = [file];\n if (!core.isDebug()) {\n args.unshift('-q');\n }\n args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run\n yield (0, exec_1.exec)(`\"${unzipPath}\"`, args, { cwd: dest });\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 */\nfunction cacheDir(sourceDir, tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n version = semver.clean(version) || version;\n arch = arch || os.arch();\n core.debug(`Caching tool ${tool} ${version} ${arch}`);\n core.debug(`source dir: ${sourceDir}`);\n if (!fs.statSync(sourceDir).isDirectory()) {\n throw new Error('sourceDir is not a directory');\n }\n // Create the tool dir\n const destPath = yield _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 fs.readdirSync(sourceDir)) {\n const s = path.join(sourceDir, itemName);\n yield io.cp(s, destPath, { recursive: true });\n }\n // write .complete\n _completeToolPath(tool, version, arch);\n return destPath;\n });\n}\nexports.cacheDir = 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 */\nfunction cacheFile(sourceFile, targetFile, tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n version = semver.clean(version) || version;\n arch = arch || os.arch();\n core.debug(`Caching tool ${tool} ${version} ${arch}`);\n core.debug(`source file: ${sourceFile}`);\n if (!fs.statSync(sourceFile).isFile()) {\n throw new Error('sourceFile is not a file');\n }\n // create the tool dir\n const destFolder = yield _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 = path.join(destFolder, targetFile);\n core.debug(`destination file ${destPath}`);\n yield io.cp(sourceFile, destPath);\n // write .complete\n _completeToolPath(tool, version, arch);\n return destFolder;\n });\n}\nexports.cacheFile = 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 */\nfunction find(toolName, versionSpec, arch) {\n if (!toolName) {\n throw new Error('toolName parameter is required');\n }\n if (!versionSpec) {\n throw new Error('versionSpec parameter is required');\n }\n arch = arch || os.arch();\n // attempt to resolve an explicit version\n if (!isExplicitVersion(versionSpec)) {\n const localVersions = findAllVersions(toolName, arch);\n const match = evaluateVersions(localVersions, versionSpec);\n versionSpec = match;\n }\n // check for the explicit version in the cache\n let toolPath = '';\n if (versionSpec) {\n versionSpec = semver.clean(versionSpec) || '';\n const cachePath = path.join(_getCacheDirectory(), toolName, versionSpec, arch);\n core.debug(`checking cache: ${cachePath}`);\n if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {\n core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);\n toolPath = cachePath;\n }\n else {\n core.debug('not found');\n }\n }\n return toolPath;\n}\nexports.find = 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 */\nfunction findAllVersions(toolName, arch) {\n const versions = [];\n arch = arch || os.arch();\n const toolPath = path.join(_getCacheDirectory(), toolName);\n if (fs.existsSync(toolPath)) {\n const children = fs.readdirSync(toolPath);\n for (const child of children) {\n if (isExplicitVersion(child)) {\n const fullPath = path.join(toolPath, child, arch || '');\n if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) {\n versions.push(child);\n }\n }\n }\n }\n return versions;\n}\nexports.findAllVersions = findAllVersions;\nfunction getManifestFromRepo(owner, repo, auth, branch = 'master') {\n return __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 httpm.HttpClient('tool-cache');\n const headers = {};\n if (auth) {\n core.debug('set auth');\n headers.authorization = auth;\n }\n const response = yield http.getJson(treeUrl, headers);\n if (!response.result) {\n return releases;\n }\n let manifestUrl = '';\n for (const item of response.result.tree) {\n if (item.path === 'versions-manifest.json') {\n manifestUrl = item.url;\n break;\n }\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 }\n catch (_a) {\n core.debug('Invalid json');\n }\n }\n return releases;\n });\n}\nexports.getManifestFromRepo = getManifestFromRepo;\nfunction findFromManifest(versionSpec, stable, manifest, archFilter = os.arch()) {\n return __awaiter(this, void 0, void 0, function* () {\n // wrap the internal impl\n const match = yield mm._findMatch(versionSpec, stable, manifest, archFilter);\n return match;\n });\n}\nexports.findFromManifest = findFromManifest;\nfunction _createExtractFolder(dest) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!dest) {\n // create a temp dir\n dest = path.join(_getTempDirectory(), crypto.randomUUID());\n }\n yield io.mkdirP(dest);\n return dest;\n });\n}\nfunction _createToolPath(tool, version, arch) {\n return __awaiter(this, void 0, void 0, function* () {\n const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');\n core.debug(`destination ${folderPath}`);\n const markerPath = `${folderPath}.complete`;\n yield io.rmRF(folderPath);\n yield io.rmRF(markerPath);\n yield io.mkdirP(folderPath);\n return folderPath;\n });\n}\nfunction _completeToolPath(tool, version, arch) {\n const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');\n const markerPath = `${folderPath}.complete`;\n fs.writeFileSync(markerPath, '');\n core.debug('finished caching tool');\n}\n/**\n * Check if version string is explicit\n *\n * @param versionSpec version string to check\n */\nfunction isExplicitVersion(versionSpec) {\n const c = semver.clean(versionSpec) || '';\n core.debug(`isExplicit: ${c}`);\n const valid = semver.valid(c) != null;\n core.debug(`explicit? ${valid}`);\n return valid;\n}\nexports.isExplicitVersion = 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 */\nfunction evaluateVersions(versions, versionSpec) {\n let version = '';\n core.debug(`evaluating ${versions.length} versions`);\n versions = versions.sort((a, b) => {\n if (semver.gt(a, b)) {\n return 1;\n }\n return -1;\n });\n for (let i = versions.length - 1; i >= 0; i--) {\n const potential = versions[i];\n const satisfied = semver.satisfies(potential, versionSpec);\n if (satisfied) {\n version = potential;\n break;\n }\n }\n if (version) {\n core.debug(`matched: ${version}`);\n }\n else {\n core.debug('match not found');\n }\n return version;\n}\nexports.evaluateVersions = evaluateVersions;\n/**\n * Gets RUNNER_TOOL_CACHE\n */\nfunction _getCacheDirectory() {\n const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || '';\n (0, assert_1.ok)(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined');\n return cacheDirectory;\n}\n/**\n * Gets RUNNER_TEMP\n */\nfunction _getTempDirectory() {\n const tempDirectory = process.env['RUNNER_TEMP'] || '';\n (0, assert_1.ok)(tempDirectory, 'Expected RUNNER_TEMP to be defined');\n return tempDirectory;\n}\n/**\n * Gets a global variable\n */\nfunction _getGlobal(key, defaultValue) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const value = global[key];\n /* eslint-enable @typescript-eslint/no-explicit-any */\n return value !== undefined ? value : defaultValue;\n}\n/**\n * Returns an array of unique values.\n * @param values Values to make unique.\n */\nfunction _unique(values) {\n return Array.from(new Set(values));\n}\n//# sourceMappingURL=tool-cache.js.map","const platformFlavor = {\r\n linux: {\r\n x64: \"linux-x64\",\r\n arm64: \"linux-aarch64\",\r\n },\r\n win32: {\r\n x64: \"windows-x64\",\r\n },\r\n darwin: {\r\n x64: \"macosx-x64\",\r\n arm64: \"macosx-aarch64\",\r\n },\r\n};\r\n\r\nexport function getPlatformFlavor(platform, arch) {\r\n const flavor = platformFlavor[platform]?.[arch];\r\n\r\n if (!flavor) {\r\n throw new Error(`Platform ${platform} ${arch} not supported`);\r\n }\r\n\r\n return flavor;\r\n}\r\n\r\nexport function getScannerDownloadURL({\r\n scannerBinariesUrl,\r\n scannerVersion,\r\n flavor,\r\n}) {\r\n const trimURL = scannerBinariesUrl.replace(/\\/$/, \"\");\r\n return `${trimURL}/sonar-scanner-cli-${scannerVersion}-${flavor}.zip`;\r\n}\r\n\r\nexport const scannerDirName = (version, flavor) =>\r\n `sonar-scanner-${version}-${flavor}`;\r\n","import * as core from \"@actions/core\";\r\nimport * as tc from \"@actions/tool-cache\";\r\nimport * as os from \"os\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport {\r\n getPlatformFlavor,\r\n getScannerDownloadURL,\r\n scannerDirName,\r\n} from \"./utils\";\r\n\r\nconst TOOLNAME = \"sonar-scanner-cli\";\r\n\r\n/** \r\n * Download the sonar-scanner-cli from a internal url along with authorization token\r\n */\r\nasync function downloadWithFetch(url, outputPath, authToken) {\r\n core.info(`Downloading sonar-scanner-cli from: ${url}`);\r\n\r\n //create output directory if it doesn't exist\r\n const outputDir = path.dirname(outputPath);\r\n if (!fs.existsSync(outputDir)) {\r\n fs.mkdirSync(outputDir, { recursive: true });\r\n }\r\n\r\n //prepare headers\r\n const headers = {};\r\n if (authToken) {\r\n headers[\"Authorization\"] = `Bearer ${authToken}`;\r\n core.info(\"Using auth token for download\");\r\n }\r\n try {\r\n const response = await fetch(url, { headers });\r\n\r\n if (!response.ok) {\r\n throw new Error(\r\n `Failed to download sonar-scanner-cli from ${url}: ${response.statusText}`\r\n );\r\n }\r\n\r\n const arrayBuffer = await response.arrayBuffer();\r\n const buffer = Buffer.from(arrayBuffer);\r\n \r\n fs.writeFileSync(outputPath, buffer);\r\n core.info(`Successfully Downloaded sonar-scanner-cli to: ${outputPath}`);\r\n\r\n return outputPath;\r\n }\r\n catch (error) {\r\n core.setFailed(error.message);\r\n }\r\n}\r\n\r\n/**\r\n * Download the Sonar Scanner CLI for the current environment and cache it.\r\n */\r\nexport async function installSonarScanner({\r\n scannerVersion,\r\n scannerBinariesUrl,\r\n scannerBinariesAuth,\r\n}) {\r\n const flavor = getPlatformFlavor(os.platform(), os.arch());\r\n\r\n // Check if tool is already cached\r\n let toolDir = tc.find(TOOLNAME, scannerVersion, flavor);\r\n\r\n if (!toolDir) {\r\n core.info(\r\n `Installing Sonar Scanner CLI ${scannerVersion} for ${flavor}...`\r\n );\r\n\r\n const downloadUrl = getScannerDownloadURL({\r\n scannerBinariesUrl,\r\n scannerVersion,\r\n flavor,\r\n });\r\n\r\n core.info(`Downloading from: ${downloadUrl}`);\r\n\r\n let downloadPath;\r\n\r\n if (scannerBinariesAuth) {\r\n // If auth token is provided\r\n const tempDir = process.env.RUNNER_TEMP || os.tmpdir();\r\n const fileName = path.basename(downloadUrl);\r\n const tempFile = path.join(tempDir, fileName);\r\n\r\n downloadPath = await downloadWithFetch(downloadUrl, tempFile, scannerBinariesAuth);\r\n } else {\r\n // use tool-cache without auth token\r\n core.info(\"Using tool-cache to run sonar-scanner-cli\");\r\n downloadPath = await tc.downloadTool(downloadUrl);\r\n }\r\n\r\n const extractPath = await tc.extractZip(downloadPath);\r\n\r\n // Find the actual scanner directory inside the extracted folder\r\n const scannerPath = path.join(extractPath, scannerDirName(scannerVersion, flavor));\r\n \r\n toolDir = await tc.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor);\r\n\r\n core.info(`Sonar Scanner CLI cached to: ${toolDir}`);\r\n } else {\r\n core.info(`Using Sonar Scanner CLI from cache: ${toolDir}`);\r\n }\r\n\r\n // Add the tool to the path\r\n const binDir = path.join(toolDir, \"bin\");\r\n core.addPath(binDir);\r\n\r\n return toolDir;\r\n }","export { parseArgsStringToArgv };\nexport default function parseArgsStringToArgv(value, env, file) {\n // ([^\\s'\"]([^\\s'\"]*(['\"])([^\\3]*?)\\3)+[^\\s'\"]*) Matches nested quotes until the first space outside of quotes\n // [^\\s'\"]+ or Match if not a space ' or \"\n // (['\"])([^\\5]*?)\\5 or Match \"quoted text\" without quotes\n // `\\3` and `\\5` are a backreference to the quote style (' or \") captured\n var myRegexp = /([^\\s'\"]([^\\s'\"]*(['\"])([^\\3]*?)\\3)+[^\\s'\"]*)|[^\\s'\"]+|(['\"])([^\\5]*?)\\5/gi;\n var myString = value;\n var myArray = [];\n if (env) {\n myArray.push(env);\n }\n if (file) {\n myArray.push(file);\n }\n var match;\n do {\n // Each call to exec returns the next regex match as an array\n match = myRegexp.exec(myString);\n if (match !== null) {\n // Index 1 in the array is the captured group if it exists\n // Index 0 is the matched text, which we use if no captured group exists\n myArray.push(firstString(match[1], match[6], match[0]));\n }\n } while (match !== null);\n return myArray;\n}\n// Accepts any number of arguments, and returns the first one that is a string\n// (even an empty string)\nfunction firstString() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (typeof arg === \"string\") {\n return arg;\n }\n }\n}\n","import * as core from \"@actions/core\";\r\nimport * as exec from \"@actions/exec\";\r\nimport * as fs from \"fs\";\r\nimport * as os from \"os\";\r\nimport * as path from \"path\";\r\nimport { parseArgsStringToArgv } from \"string-argv\";\r\n\r\nconst KEYTOOL_MAIN_CLASS = \"sun.security.tools.keytool.Main\";\r\nconst TRUSTSTORE_PASSWORD = \"changeit\"; // default password of the Java truststore!\r\n\r\nexport async function runSonarScanner(\r\n inputArgs,\r\n projectBaseDir,\r\n scannerDir,\r\n runnerEnv = {}\r\n) {\r\n const { runnerDebug, runnerOs, runnerTemp, sonarRootCert, sonarcloudUrl } =\r\n runnerEnv;\r\n\r\n const scannerBin =\r\n runnerOs === \"Windows\" ? \"sonar-scanner.bat\" : \"sonar-scanner\";\r\n\r\n const scannerArgs = [];\r\n\r\n /**\r\n * Not sanitization is needed when populating scannerArgs.\r\n * @actions/exec will take care of sanitizing the args it receives.\r\n */\r\n\r\n if (sonarcloudUrl) {\r\n scannerArgs.push(`-Dsonar.scanner.sonarcloudUrl=${sonarcloudUrl}`);\r\n }\r\n\r\n if (runnerDebug === \"1\") {\r\n scannerArgs.push(\"--debug\");\r\n }\r\n\r\n if (projectBaseDir) {\r\n scannerArgs.push(`-Dsonar.projectBaseDir=${projectBaseDir}`);\r\n }\r\n\r\n // The SSL folder may exist on an uncleaned self-hosted runner\r\n const sslFolder = path.join(os.homedir(), \".sonar\", \"ssl\");\r\n const truststoreFile = path.join(sslFolder, \"truststore.p12\");\r\n\r\n const keytoolParams = {\r\n scannerDir,\r\n truststoreFile,\r\n };\r\n\r\n if (fs.existsSync(truststoreFile)) {\r\n let aliasSonarIsPresent = true;\r\n\r\n try {\r\n await checkSonarAliasInTruststore(keytoolParams);\r\n } catch (_) {\r\n aliasSonarIsPresent = false;\r\n core.info(\r\n `Existing Scanner truststore ${truststoreFile} does not contain 'sonar' alias`\r\n );\r\n }\r\n\r\n if (aliasSonarIsPresent) {\r\n core.info(\r\n `Removing 'sonar' alias from already existing Scanner truststore: ${truststoreFile}`\r\n );\r\n await deleteSonarAliasFromTruststore(keytoolParams);\r\n }\r\n }\r\n\r\n if (sonarRootCert) {\r\n core.info(\"Adding SSL certificate to the Scanner truststore\");\r\n const tempCertPath = path.join(runnerTemp, \"tmpcert.pem\");\r\n\r\n try {\r\n fs.unlinkSync(tempCertPath);\r\n } catch (_) {\r\n // File doesn't exist, ignore\r\n }\r\n\r\n fs.writeFileSync(tempCertPath, sonarRootCert);\r\n fs.mkdirSync(sslFolder, { recursive: true });\r\n\r\n await importCertificateToTruststore(keytoolParams, tempCertPath);\r\n\r\n scannerArgs.push(\r\n `-Dsonar.scanner.truststorePassword=${TRUSTSTORE_PASSWORD}`\r\n );\r\n }\r\n\r\n if (inputArgs) {\r\n /**\r\n * No sanitization, but it is parsing a string into an array of arguments in a safe way (= no command execution),\r\n * and with good enough support of quotes to support arguments containing spaces.\r\n */\r\n const args = parseArgsStringToArgv(inputArgs);\r\n scannerArgs.push(...args);\r\n }\r\n\r\n /**\r\n * Arguments are sanitized by `exec`\r\n */\r\n await exec.exec(scannerBin, scannerArgs);\r\n}\r\n\r\n/**\r\n * Use keytool for now, as SonarQube 10.6 and below doesn't support openssl generated keystores\r\n * keytool requires a password > 6 characters, so we won't use the default password 'sonar'\r\n */\r\nfunction executeKeytoolCommand({\r\n scannerDir,\r\n truststoreFile,\r\n extraArgs,\r\n options = {},\r\n}) {\r\n const baseArgs = [\r\n KEYTOOL_MAIN_CLASS,\r\n \"-storetype\",\r\n \"PKCS12\",\r\n \"-keystore\",\r\n truststoreFile,\r\n \"-storepass\",\r\n TRUSTSTORE_PASSWORD,\r\n \"-noprompt\",\r\n \"-trustcacerts\",\r\n ...extraArgs,\r\n ];\r\n\r\n return exec.exec(`${scannerDir}/jre/bin/java`, baseArgs, options);\r\n}\r\n\r\nfunction importCertificateToTruststore(keytoolParams, certPath) {\r\n return executeKeytoolCommand({\r\n ...keytoolParams,\r\n extraArgs: [\"-importcert\", \"-alias\", \"sonar\", \"-file\", certPath],\r\n });\r\n}\r\n\r\nfunction checkSonarAliasInTruststore(keytoolParams) {\r\n return executeKeytoolCommand({\r\n ...keytoolParams,\r\n extraArgs: [\"-list\", \"-v\", \"-alias\", \"sonar\"],\r\n options: { silent: true },\r\n });\r\n}\r\n\r\nfunction deleteSonarAliasFromTruststore(keytoolParams) {\r\n return executeKeytoolCommand({\r\n ...keytoolParams,\r\n extraArgs: [\"-delete\", \"-alias\", \"sonar\"],\r\n });\r\n}\r\n","import fs from \"fs\";\r\nimport { join } from \"path\";\r\n\r\nexport function validateScannerVersion(version) {\r\n if (!version) {\r\n return;\r\n }\r\n\r\n const versionRegex = /^\\d+\\.\\d+\\.\\d+\\.\\d+$/;\r\n if (!versionRegex.test(version)) {\r\n throw new Error(\r\n \"Invalid scannerVersion format. Expected format: x.y.z.w (e.g., 7.1.0.4889)\"\r\n );\r\n }\r\n}\r\n\r\nexport function checkSonarToken(core, sonarToken) {\r\n if (!sonarToken) {\r\n core.warning(\r\n \"Running this GitHub Action without SONAR_TOKEN is not recommended\"\r\n );\r\n }\r\n}\r\n\r\nexport function checkMavenProject(core, projectBaseDir) {\r\n const pomPath = join(projectBaseDir.replace(/\\/$/, \"\"), \"pom.xml\");\r\n if (fs.existsSync(pomPath)) {\r\n core.warning(\r\n \"Maven project detected. Sonar recommends running the 'org.sonarsource.scanner.maven:sonar-maven-plugin:sonar' goal during the build process instead of using this GitHub Action to get more accurate results.\"\r\n );\r\n }\r\n}\r\n\r\nexport function checkGradleProject(core, projectBaseDir) {\r\n const baseDir = projectBaseDir.replace(/\\/$/, \"\");\r\n const gradlePath = join(baseDir, \"build.gradle\");\r\n const gradleKtsPath = join(baseDir, \"build.gradle.kts\");\r\n\r\n if (fs.existsSync(gradlePath) || fs.existsSync(gradleKtsPath)) {\r\n core.warning(\r\n \"Gradle project detected. Sonar recommends using the SonarQube plugin for Gradle during the build process instead of using this GitHub Action to get more accurate results.\"\r\n );\r\n }\r\n}\r\n","import * as core from \"@actions/core\";\r\nimport { installSonarScanner } from \"./install-sonar-scanner\";\r\nimport { runSonarScanner } from \"./run-sonar-scanner\";\r\nimport {\r\n checkGradleProject,\r\n checkMavenProject,\r\n checkSonarToken,\r\n validateScannerVersion,\r\n} from \"./sanity-checks\";\r\n\r\n/**\r\n * Inputs are defined in action.yml\r\n */\r\nfunction getInputs() {\r\n const args = core.getInput(\"args\");\r\n const projectBaseDir = core.getInput(\"projectBaseDir\");\r\n const scannerBinariesUrl = core.getInput(\"scannerBinariesUrl\");\r\n const scannerBinariesAuth = core.getInput(\"scannerBinariesAuth\");\r\n const scannerVersion = core.getInput(\"scannerVersion\");\r\n\r\n return { args, projectBaseDir, scannerBinariesUrl, scannerBinariesAuth, scannerVersion };\r\n}\r\n\r\n/**\r\n * These RUNNER env variables come from GitHub by default.\r\n * See https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables\r\n *\r\n * The others are optional env variables provided by the user of the action\r\n */\r\nfunction getEnvVariables() {\r\n return {\r\n runnerDebug: process.env.RUNNER_DEBUG,\r\n runnerOs: process.env.RUNNER_OS,\r\n runnerTemp: process.env.RUNNER_TEMP,\r\n sonarRootCert: process.env.SONAR_ROOT_CERT,\r\n sonarcloudUrl: process.env.SONARCLOUD_URL,\r\n sonarToken: process.env.SONAR_TOKEN,\r\n };\r\n}\r\n\r\nfunction runSanityChecks(inputs) {\r\n try {\r\n const { projectBaseDir, scannerVersion, sonarToken } = inputs;\r\n\r\n validateScannerVersion(scannerVersion);\r\n checkSonarToken(core, sonarToken);\r\n checkMavenProject(core, projectBaseDir);\r\n checkGradleProject(core, projectBaseDir);\r\n } catch (error) {\r\n core.setFailed(`Sanity checks failed: ${error.message}`);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nasync function run() {\r\n try {\r\n const { args, projectBaseDir, scannerVersion, scannerBinariesUrl, scannerBinariesAuth } =\r\n getInputs();\r\n const runnerEnv = getEnvVariables();\r\n const { sonarToken } = runnerEnv;\r\n\r\n runSanityChecks({ projectBaseDir, scannerVersion, sonarToken });\r\n\r\n const scannerDir = await installSonarScanner({\r\n scannerVersion,\r\n scannerBinariesUrl,\r\n scannerBinariesAuth,\r\n });\r\n\r\n await runSonarScanner(args, projectBaseDir, scannerDir, runnerEnv);\r\n } catch (error) {\r\n core.setFailed(`Action failed: ${error.message}`);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nrun();\r\n"],"names":["this","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","global","core.info","core.setFailed","os","tc.find","tc.downloadTool","tc.extractZip","tc.cacheDir","core.addPath","exec.exec","fs","core.getInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,EAAA,OAAO,GAAG,MAAA,CAAA,OAAA,GAAiB;;EAE3B,IAAI;AACJ;EACA,IAAI,OAAO,OAAO,KAAK,QAAQ;MAC3B,OAAO,CAAC,GAAG;AACf,MAAI,OAAO,CAAC,GAAG,CAAC,UAAU;MACtB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;IAC9C,KAAK,GAAG,YAAY;AACtB,MAAI,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACtD,MAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;MACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI;AACnC,IAAA;AACA,EAAA,CAAC,MAAM;IACL,KAAK,GAAG,YAAY,CAAA;AACtB,EAAA;;AAEA;AACA;EACA,OAAA,CAAA,mBAAA,GAA8B;;AAE9B,EAAA,IAAI,UAAU,GAAG;AACjB,EAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;+BACjB;;AAE7B;AACA,EAAA,IAAI,yBAAyB,GAAG;;EAEhC,IAAI,qBAAqB,GAAG,UAAU,GAAG;;AAEzC;EACA,IAAI,EAAE,GAAG,OAAA,CAAA,EAAA,GAAa;EACtB,IAAI,MAAM,GAAG,OAAA,CAAA,MAAA,GAAiB;EAC9B,IAAI,GAAG,GAAG,OAAA,CAAA,GAAA,GAAc;EACxB,IAAI,CAAC,GAAG,OAAA,CAAA,MAAA,GAAiB;AACzB,EAAA,IAAI,CAAC,GAAG;;EAER,SAAS,GAAG,EAAE,CAAC,EAAE;AACjB,IAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACV,EAAA;;AAEA,EAAA,IAAI,gBAAgB,GAAG;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,qBAAqB,GAAG;AAC5B,IAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACZ,IAAE,CAAC,KAAK,EAAE,UAAU,CAAC;AACrB,IAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;AAC3C;;EAEA,SAAS,UAAU,EAAE,KAAK,EAAE;AAC5B,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACrD,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;MACtC,IAAI,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,MAAI,KAAK,GAAG;AACZ,SAAO,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG;AACxD,SAAO,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG;AACxD,IAAA;AACA,IAAE,OAAO;AACT,EAAA;;AAEA;AACA;;AAEA;AACA;;AAEA,EAAA,GAAG,CAAC,mBAAmB;AACvB,EAAA,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG;AAC3B,EAAA,GAAG,CAAC,wBAAwB;AAC5B,EAAA,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG;;AAEhC;AACA;AACA;;AAEA,EAAA,GAAG,CAAC,sBAAsB;EAC1B,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,eAAe,GAAG,gBAAgB,GAAG;;AAEnE;AACA;;AAEA,EAAA,GAAG,CAAC,aAAa;AACjB,EAAA,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,MAAM;qBACzC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,MAAM;qBACvC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG;;AAEpD,EAAA,GAAG,CAAC,kBAAkB;AACtB,EAAA,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,MAAM;0BAC9C,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,MAAM;0BAC5C,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG;;AAE9D;AACA;;AAEA,EAAA,GAAG,CAAC,sBAAsB;AAC1B,EAAA,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;8BAClC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG;;AAEhE,EAAA,GAAG,CAAC,2BAA2B;AAC/B,EAAA,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC;mCACvC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG;;AAErE;AACA;AACA;;AAEA,EAAA,GAAG,CAAC,YAAY;AAChB,EAAA,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC;oBACvC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG;;AAE3D,EAAA,GAAG,CAAC,iBAAiB;AACrB,EAAA,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC;yBAC7C,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG;;AAErE;AACA;;AAEA,EAAA,GAAG,CAAC,iBAAiB;AACrB,EAAA,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,gBAAgB,GAAG;;AAE5C;AACA;AACA;;AAEA,EAAA,GAAG,CAAC,OAAO;AACX,EAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;eACpC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAA,GAAG,CAAC,MAAM;AACV,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;AAC5C,oBAAkB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG;AACzC,oBAAkB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;;AAEjC,EAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;;AAEvC;AACA;AACA;AACA,EAAA,GAAG,CAAC,YAAY;AAChB,EAAA,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACxD,oBAAkB,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG;AAC9C,oBAAkB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;;AAEjC,EAAA,GAAG,CAAC,OAAO;AACX,EAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;;AAEzC,EAAA,GAAG,CAAC,MAAM;AACV,EAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;;AAEd;AACA;AACA;AACA,EAAA,GAAG,CAAC,uBAAuB;AAC3B,EAAA,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG;AAC/D,EAAA,GAAG,CAAC,kBAAkB;AACtB,EAAA,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG;;AAErD,EAAA,GAAG,CAAC,aAAa;AACjB,EAAA,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG;qBAC7C,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG;qBACzC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG;qBACzC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI;AACnD,qBAAmB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;qBAClB;;AAEnB,EAAA,GAAG,CAAC,kBAAkB;AACtB,EAAA,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG;0BAClD,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG;0BAC9C,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG;0BAC9C,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI;AAC7D,0BAAwB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;0BAClB;;AAExB,EAAA,GAAG,CAAC,QAAQ;EACZ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG;AAClE,EAAA,GAAG,CAAC,aAAa;EACjB,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG;;AAE5E;AACA;AACA,EAAA,GAAG,CAAC,QAAQ;AACZ,EAAA,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY;AAC5B,gBAAc,SAAS,GAAG,yBAAyB,GAAG,IAAI;AAC1D,gBAAc,eAAe,GAAG,yBAAyB,GAAG,MAAM;AAClE,gBAAc,eAAe,GAAG,yBAAyB,GAAG,MAAM;gBACpD;AACd,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG;AAC/C,EAAA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG;;AAE/D;AACA;AACA,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;;AAEnB,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;AACjD,EAAA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG;AAClD,EAAA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;AAClE,EAAA,IAAI,gBAAgB,GAAG;;AAEvB,EAAA,GAAG,CAAC,OAAO;EACX,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG;AAC7D,EAAA,GAAG,CAAC,YAAY;EAChB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG;;AAEvE;AACA;AACA,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;;AAEnB,EAAA,GAAG,CAAC,WAAW;AACf,EAAA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;AACjD,EAAA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG;AAClD,EAAA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;AAClE,EAAA,IAAI,gBAAgB,GAAG;;AAEvB,EAAA,GAAG,CAAC,OAAO;EACX,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG;AAC7D,EAAA,GAAG,CAAC,YAAY;EAChB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG;;AAEvE;AACA,EAAA,GAAG,CAAC,iBAAiB;EACrB,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;AAC3E,EAAA,GAAG,CAAC,YAAY;EAChB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;;AAErE;AACA;AACA,EAAA,GAAG,CAAC,gBAAgB;AACpB,EAAA,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,wBAAsB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG;;AAE/E;AACA,EAAA,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG;AAC5D,EAAA,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG;AAC5E,EAAA,IAAI,qBAAqB,GAAG;;AAE5B;AACA;AACA;AACA;AACA,EAAA,GAAG,CAAC,aAAa;AACjB,EAAA,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG;AACxD,qBAAmB,WAAW;qBACX,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG;qBAC9B;;AAEnB,EAAA,GAAG,CAAC,kBAAkB;AACtB,EAAA,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG;AAClE,0BAAwB,WAAW;0BACX,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG;0BACnC;;AAExB;AACA,EAAA,GAAG,CAAC,MAAM;AACV,EAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;;AAEd;AACA;EACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5B,IAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACjB,IAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;MACV,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAA;AACA,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,EAAE,CAAC,CAAC,OAAO;AACtB,QAAM,iBAAiB,EAAE;AACzB;AACA,IAAA;;AAEA,IAAE,IAAI,OAAO,YAAY,MAAM,EAAE;AACjC,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE;AACnC,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI;IACvD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACxB,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI;AACN,MAAI,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO;IACtC,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAClC,IAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO;AAChC,IAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG;AACzB,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAClC,IAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO;AAC7D,IAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG;AACzB,EAAA;;EAEA,OAAA,CAAA,MAAA,GAAiB;;AAEjB,EAAA,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,EAAE,CAAC,CAAC,OAAO;AACtB,QAAM,iBAAiB,EAAE;AACzB;AACA,IAAA;AACA,IAAE,IAAI,OAAO,YAAY,MAAM,EAAE;MAC7B,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AACzC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM;QACL,OAAO,GAAG,OAAO,CAAC;AACxB,MAAA;AACA,IAAA,CAAG,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC1C,MAAI,MAAM,IAAI,SAAS,CAAC,mBAAmB,GAAG,OAAO;AACrD,IAAA;;AAEA,IAAE,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE;MAC/B,MAAM,IAAI,SAAS,CAAC,yBAAyB,GAAG,UAAU,GAAG,aAAa;AAC9E,IAAA;;AAEA,IAAE,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,EAAE;AACjC,MAAI,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO;AACtC,IAAA;;AAEA,IAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO;IAChC,IAAI,CAAC,OAAO,GAAG;AACjB,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;;IAEvB,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;;IAE7E,IAAI,CAAC,CAAC,EAAE;AACV,MAAI,MAAM,IAAI,SAAS,CAAC,mBAAmB,GAAG,OAAO;AACrD,IAAA;;IAEE,IAAI,CAAC,GAAG,GAAG;;AAEb;AACA,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;;AAEnB,IAAE,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACvD,MAAI,MAAM,IAAI,SAAS,CAAC,uBAAuB;AAC/C,IAAA;;AAEA,IAAE,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACvD,MAAI,MAAM,IAAI,SAAS,CAAC,uBAAuB;AAC/C,IAAA;;AAEA,IAAE,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AACvD,MAAI,MAAM,IAAI,SAAS,CAAC,uBAAuB;AAC/C,IAAA;;AAEA;AACA,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACT,IAAI,CAAC,UAAU,GAAG;AACtB,IAAA,CAAG,MAAM;AACT,MAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;AACxD,QAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;UACvB,IAAI,GAAG,GAAG,CAAC;UACX,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,gBAAgB,EAAE;AAChD,YAAU,OAAO;AACjB,UAAA;AACA,QAAA;AACA,QAAM,OAAO;MACb,CAAK;AACL,IAAA;;AAEA,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;IACtC,IAAI,CAAC,MAAM;AACb,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACtC,IAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;AAC5D,IAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC9B,MAAI,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;AAClD,IAAA;IACE,OAAO,IAAI,CAAC;AACd,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACtC,OAAO,IAAI,CAAC;AACd,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AAC5C,IAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK;AAC3D,IAAE,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;MAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO;AAC1C,IAAA;;AAEA,IAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;AACzD,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AAChD,IAAE,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;MAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO;AAC1C,IAAA;;IAEE,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;WAC3C,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;WAC3C,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;AACnD,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AAC/C,IAAE,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;MAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO;AAC1C,IAAA;;AAEA;AACA,IAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;AAC1D,MAAI,OAAO;AACX,IAAA,CAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;AACjE,MAAI,OAAO;AACX,IAAA,CAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;AAClE,MAAI,OAAO;AACX,IAAA;;IAEE,IAAI,CAAC,GAAG;AACV,IAAE,GAAG;AACL,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,MAAI,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;MAC1B,KAAK,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;MACnC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;AAC5C,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAChC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAChC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;QAClB;AACN,MAAA,CAAK,MAAM;AACX,QAAM,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACpC,MAAA;IACA,CAAG,QAAQ,EAAE,CAAC;AACd,EAAA;;AAEA,EAAA,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AACjD,IAAE,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;MAC9B,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO;AAC1C,IAAA;;IAEE,IAAI,CAAC,GAAG;AACV,IAAE,GAAG;AACL,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,MAAI,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;MACrB,KAAK,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;MACnC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;AAC5C,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAChC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE;AAChC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;QAClB;AACN,MAAA,CAAK,MAAM;AACX,QAAM,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC;AACpC,MAAA;IACA,CAAG,QAAQ,EAAE,CAAC;AACd,EAAA;;AAEA;AACA;EACA,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE;AACtD,IAAE,QAAQ,OAAO;AACjB,MAAI,KAAK,UAAU;AACnB,QAAM,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;QACzB,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,KAAK;AAChB,QAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU;QAC1B;AACN,MAAI,KAAK,UAAU;AACnB,QAAM,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;QACzB,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,KAAK;AAChB,QAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU;QAC1B;AACN,MAAI,KAAK,UAAU;AACnB;AACA;AACA;AACA,QAAM,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;AAC/B,QAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU;AAClC,QAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU;QAC1B;AACN;AACA;AACA,MAAI,KAAK,YAAY;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,UAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU;AACpC,QAAA;AACA,QAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU;QAC1B;;AAEN,MAAI,KAAK,OAAO;AAChB;AACA;AACA;AACA;AACA,QAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;AAC1B,YAAU,IAAI,CAAC,KAAK,KAAK,CAAC;AAC1B,YAAU,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;UAChC,IAAI,CAAC,KAAK;AAClB,QAAA;QACM,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,UAAU,GAAG;QAClB;AACN,MAAI,KAAK,OAAO;AAChB;AACA;AACA;AACA;AACA,QAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;UACpD,IAAI,CAAC,KAAK;AAClB,QAAA;QACM,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,UAAU,GAAG;QAClB;AACN,MAAI,KAAK,OAAO;AAChB;AACA;AACA;AACA;QACM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;UAChC,IAAI,CAAC,KAAK;AAClB,QAAA;QACM,IAAI,CAAC,UAAU,GAAG;QAClB;AACN;AACA;AACA,MAAI,KAAK,KAAK;QACR,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,UAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC5B,QAAA,CAAO,MAAM;AACb,UAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAChC,UAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtD,cAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;cAClB,CAAC,GAAG;AAChB,YAAA;AACA,UAAA;AACA,UAAQ,IAAI,CAAC,KAAK,EAAE,EAAE;AACtB;AACA,YAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAChC,UAAA;AACA,QAAA;QACM,IAAI,UAAU,EAAE;AACtB;AACA;UACQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;YACrC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AACzC,cAAY,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,EAAE,CAAC;AAC5C,YAAA;AACA,UAAA,CAAS,MAAM;AACf,YAAU,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,EAAE,CAAC;AAC1C,UAAA;AACA,QAAA;QACM;;MAEF;AACJ,QAAM,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,OAAO;AAC9D;IACE,IAAI,CAAC,MAAM;AACb,IAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AAClB,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,GAAA,GAAc;EACd,SAAS,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AACnD,IAAE,IAAI,QAAQ,KAAK,CAAC,KAAK,QAAQ,EAAE;AACnC,MAAI,UAAU,GAAG;AACjB,MAAI,KAAK,GAAG;AACZ,IAAA;;AAEA,IAAE,IAAI;AACN,MAAI,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,EAAA;;EAEA,OAAA,CAAA,IAAA,GAAe;AACf,EAAA,SAAS,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACnC,IAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;AAC9B,MAAI,OAAO;AACX,IAAA,CAAG,MAAM;AACT,MAAI,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ;AAC3B,MAAI,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ;MACvB,IAAI,MAAM,GAAG;AACjB,MAAI,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE;AACtD,QAAM,MAAM,GAAG;QACT,IAAI,aAAa,GAAG;AAC1B,MAAA;AACA,MAAI,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE;AACxB,QAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE;UACzD,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE;YACvB,OAAO,MAAM,GAAG;AAC1B,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAI,OAAO,aAAa;AACxB,IAAA;AACA,EAAA;;EAEA,OAAA,CAAA,kBAAA,GAA6B;;AAE7B,EAAA,IAAI,OAAO,GAAG;AACd,EAAA,SAAS,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE;AACnC,IAAE,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAE,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;;AAE3B,IAAE,IAAI,IAAI,IAAI,IAAI,EAAE;MAChB,CAAC,GAAG,CAAC;MACL,CAAC,GAAG,CAAC;AACT,IAAA;;AAEA,IAAE,OAAO,CAAC,KAAK,CAAC,GAAG;AACnB,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI;AACxB,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI;AACxB,QAAM,CAAC,GAAG,CAAC,GAAG;QACR;AACN,EAAA;;EAEA,OAAA,CAAA,mBAAA,GAA8B;AAC9B,EAAA,SAAS,mBAAmB,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC,IAAE,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC;AAChC,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,EAAA;;EAEA,OAAA,CAAA,OAAA,GAAkB;AAClB,EAAA,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;AAC/B,IAAE,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;AAC1D,EAAA;;EAEA,OAAA,CAAA,YAAA,GAAuB;AACvB,EAAA,SAAS,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAE,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI;AAC3B,EAAA;;EAEA,OAAA,CAAA,YAAA,GAAuB;AACvB,EAAA,SAAS,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IAClC,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK;IAClC,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK;AACpC,IAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ;AACrE,EAAA;;EAEA,OAAA,CAAA,QAAA,GAAmB;AACnB,EAAA,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;AAChC,IAAE,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;AAC5B,EAAA;;EAEA,OAAA,CAAA,IAAA,GAAe;AACf,EAAA,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;MAC/B,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;IAC3C,CAAG;AACH,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;MAC/B,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;IAC3C,CAAG;AACH,EAAA;;EAEA,OAAA,CAAA,EAAA,GAAa;AACb,EAAA,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AAChC,EAAA;;EAEA,OAAA,CAAA,EAAA,GAAa;AACb,EAAA,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AAChC,EAAA;;EAEA,OAAA,CAAA,EAAA,GAAa;AACb,EAAA,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACxB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK;AAClC,EAAA;;EAEA,OAAA,CAAA,GAAA,GAAc;AACd,EAAA,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACzB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK;AAClC,EAAA;;EAEA,OAAA,CAAA,GAAA,GAAc;AACd,EAAA,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACzB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI;AACjC,EAAA;;EAEA,OAAA,CAAA,GAAA,GAAc;AACd,EAAA,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACzB,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI;AACjC,EAAA;;EAEA,OAAA,CAAA,GAAA,GAAc;EACd,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;AAC/B,IAAE,QAAQ,EAAE;AACZ,MAAI,KAAK,KAAK;AACd,QAAM,IAAI,OAAO,CAAC,KAAK,QAAQ;UACvB,CAAC,GAAG,CAAC,CAAC;AACd,QAAM,IAAI,OAAO,CAAC,KAAK,QAAQ;UACvB,CAAC,GAAG,CAAC,CAAC;QACR,OAAO,CAAC,KAAK;;AAEnB,MAAI,KAAK,KAAK;AACd,QAAM,IAAI,OAAO,CAAC,KAAK,QAAQ;UACvB,CAAC,GAAG,CAAC,CAAC;AACd,QAAM,IAAI,OAAO,CAAC,KAAK,QAAQ;UACvB,CAAC,GAAG,CAAC,CAAC;QACR,OAAO,CAAC,KAAK;;AAEnB,MAAI,KAAK,EAAE;AACX,MAAI,KAAK,GAAG;AACZ,MAAI,KAAK,IAAI;AACb,QAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;AAE3B,MAAI,KAAK,IAAI;AACb,QAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;AAE5B,MAAI,KAAK,GAAG;AACZ,QAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;AAE3B,MAAI,KAAK,IAAI;AACb,QAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;AAE5B,MAAI,KAAK,GAAG;AACZ,QAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;AAE3B,MAAI,KAAK,IAAI;AACb,QAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;MAExB;AACJ,QAAM,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,EAAE;AACnD;AACA,EAAA;;EAEA,OAAA,CAAA,UAAA,GAAqB;AACrB,EAAA,SAAS,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAClC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,EAAE,CAAC,CAAC,OAAO;AACtB,QAAM,iBAAiB,EAAE;AACzB;AACA,IAAA;;AAEA,IAAE,IAAI,IAAI,YAAY,UAAU,EAAE;MAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AACxC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM;QACL,IAAI,GAAG,IAAI,CAAC;AAClB,MAAA;AACA,IAAA;;AAEA,IAAE,IAAI,EAAE,IAAI,YAAY,UAAU,CAAC,EAAE;AACrC,MAAI,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO;AACvC,IAAA;;AAEA,IAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;AAC1C,IAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO;IACjC,IAAI,CAAC,OAAO,GAAG;AACjB,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;AACzB,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI;;AAEjB,IAAE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;MACvB,IAAI,CAAC,KAAK,GAAG;AACjB,IAAA,CAAG,MAAM;MACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7C,IAAA;;AAEA,IAAE,KAAK,CAAC,MAAM,EAAE,IAAI;AACpB,EAAA;;AAEA,EAAA,IAAI,GAAG,GAAG;AACV,EAAA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE;IAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU;AAC9E,IAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;;IAEpB,IAAI,CAAC,CAAC,EAAE;AACV,MAAI,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,IAAI;AACrD,IAAA;;AAEA,IAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9C,IAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;MACzB,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAA;;AAEA;AACA,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;MACT,IAAI,CAAC,MAAM,GAAG;AAClB,IAAA,CAAG,MAAM;AACT,MAAI,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AACrD,IAAA;AACA,EAAA;;AAEA,EAAA,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IAC1C,OAAO,IAAI,CAAC;AACd,EAAA;;AAEA,EAAA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,OAAO,EAAE;IAC7C,KAAK,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;;IAEpD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE;AAC9C,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,MAAI,IAAI;QACF,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;MAChD,CAAK,CAAC,OAAO,EAAE,EAAE;AACjB,QAAM,OAAO;AACb,MAAA;AACA,IAAA;;AAEA,IAAE,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO;AAC9D,EAAA;;EAEA,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,OAAO,EAAE;AAC3D,IAAE,IAAI,EAAE,IAAI,YAAY,UAAU,CAAC,EAAE;AACrC,MAAI,MAAM,IAAI,SAAS,CAAC,0BAA0B;AAClD,IAAA;;IAEE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,EAAE,CAAC,CAAC,OAAO;AACtB,QAAM,iBAAiB,EAAE;AACzB;AACA,IAAA;;AAEA,IAAE,IAAI;;AAEN,IAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;AAC5B,MAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC3B,QAAM,OAAO;AACb,MAAA;MACI,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;MACxC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO;AAClD,IAAA,CAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;AACnC,MAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC3B,QAAM,OAAO;AACb,MAAA;MACI,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;MACxC,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;AACnD,IAAA;;AAEA,IAAE,IAAI,uBAAuB;MACzB,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;OAC/C,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;AACpD,IAAE,IAAI,uBAAuB;MACzB,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;OAC/C,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;AACpD,IAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC;AACvD,IAAE,IAAI,4BAA4B;MAC9B,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;OAChD,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;AACrD,IAAE,IAAI,0BAA0B;AAChC,MAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;OAC1C,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;OAChD,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC;AACrD,IAAE,IAAI,6BAA6B;AACnC,MAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;OAC1C,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;OAChD,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC;;IAEnD,OAAO,uBAAuB,IAAI,uBAAuB;OACtD,UAAU,IAAI,4BAA4B,CAAC;AAChD,MAAI,0BAA0B,IAAI;AAClC,EAAA;;EAEA,OAAA,CAAA,KAAA,GAAgB;AAChB,EAAA,SAAS,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;IAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,EAAE,CAAC,CAAC,OAAO;AACtB,QAAM,iBAAiB,EAAE;AACzB;AACA,IAAA;;AAEA,IAAE,IAAI,KAAK,YAAY,KAAK,EAAE;MAC1B,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK;UAC/B,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACjE,QAAM,OAAO;AACb,MAAA,CAAK,MAAM;QACL,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO;AACzC,MAAA;AACA,IAAA;;AAEA,IAAE,IAAI,KAAK,YAAY,UAAU,EAAE;MAC/B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO;AACzC,IAAA;;AAEA,IAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE;AAChC,MAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;AACnC,IAAA;;IAEE,IAAI,CAAC,OAAO,GAAG;AACjB,IAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;AACzB,IAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;;AAErC;AACA;AACA;IACE,IAAI,CAAC,GAAG,GAAG;AACb,OAAK,IAAI;OACJ,KAAK,CAAC,KAAK;OACX,IAAI,CAAC,GAAG;;AAEb;AACA,IAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;MACnD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE;IACvC,CAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC/B;MACI,OAAO,CAAC,CAAC;IACb,CAAG;;AAEH,IAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;MACpB,MAAM,IAAI,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG;AAC3D,IAAA;;IAEE,IAAI,CAAC,MAAM;AACb,EAAA;;AAEA,EAAA,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACrC,IAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;MACzC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;AAC/B,IAAA,CAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,EAAA;;AAEA,EAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACrC,OAAO,IAAI,CAAC;AACd,EAAA;;AAEA,EAAA,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AAC9C,IAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;AAC3B;AACA,IAAE,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW;IAClE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa;AACzC,IAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK;AAC/B;AACA,IAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,qBAAqB;IACrE,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;;AAE1D;AACA,IAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,gBAAgB;;AAE7D;AACA,IAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,gBAAgB;;AAE7D;IACE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;;AAErC;AACA;;AAEA,IAAE,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU;AACtE,IAAE,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACjD,MAAI,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;IAC7C,CAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK;AAChC,IAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1B;MACI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;AACrC,QAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;MAChC,CAAK;AACL,IAAA;IACE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;MAC5B,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC5C,IAAA,CAAG,EAAE,IAAI;;AAET,IAAE,OAAO;AACT,EAAA;;EAEA,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AACvD,IAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACjC,MAAI,MAAM,IAAI,SAAS,CAAC,qBAAqB;AAC7C,IAAA;;IAEE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,eAAe,EAAE;MAC9C;AACJ,QAAM,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,gBAAgB,EAAE;UACzC;AACR,YAAU,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAClD,YAAU,eAAe,CAAC,KAAK,CAAC,UAAU,cAAc,EAAE;AAC1D,cAAY,OAAO,gBAAgB,CAAC,KAAK,CAAC,UAAU,eAAe,EAAE;AACrE,gBAAc,OAAO,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO;cACvE,CAAa;YACb,CAAW;AACX;QACA,CAAO;AACP;IACA,CAAG;AACH,EAAA;;AAEA;AACA;AACA,EAAA,SAAS,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE;IAC5C,IAAI,MAAM,GAAG;AACf,IAAE,IAAI,oBAAoB,GAAG,WAAW,CAAC,KAAK;AAC9C,IAAE,IAAI,cAAc,GAAG,oBAAoB,CAAC,GAAG;;AAE/C,IAAE,OAAO,MAAM,IAAI,oBAAoB,CAAC,MAAM,EAAE;MAC5C,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,eAAe,EAAE;AACnE,QAAM,OAAO,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO;MAC/D,CAAK;;AAEL,MAAI,cAAc,GAAG,oBAAoB,CAAC,GAAG;AAC7C,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;AAEA;EACA,OAAA,CAAA,aAAA,GAAwB;AACxB,EAAA,SAAS,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE;AACxC,IAAE,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AAC3D,MAAI,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC3B,OAAO,CAAC,CAAC;AACf,MAAA,CAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG;IACjC,CAAG;AACH,EAAA;;AAEA;AACA;AACA;AACA,EAAA,SAAS,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,IAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;AAC7B,IAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO;AACpC,IAAE,KAAK,CAAC,OAAO,EAAE,IAAI;AACrB,IAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO;AACpC,IAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;AACtB,IAAE,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO;AACrC,IAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;AACtB,IAAE,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO;AACnC,IAAE,KAAK,CAAC,OAAO,EAAE,IAAI;AACrB,IAAE,OAAO;AACT,EAAA;;EAEA,SAAS,GAAG,EAAE,EAAE,EAAE;AAClB,IAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK;AACnD,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,IAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACtD,MAAI,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO;AACrC,IAAA,CAAG,CAAC,CAAC,IAAI,CAAC,GAAG;AACb,EAAA;;AAEA,EAAA,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,IAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK;AAC/D,IAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACnD,MAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACvC,MAAI,IAAI;;AAER,MAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AAChB,QAAM,GAAG,GAAG;AACZ,MAAA,CAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAC7C,MAAA,CAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB;QACM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;MAC/D,CAAK,MAAM,IAAI,EAAE,EAAE;AACnB,QAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE;AACjC,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;cACvC,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACxC,MAAA,CAAK,MAAM;AACX;AACA,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;cAC5B,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACxC,MAAA;;AAEA,MAAI,KAAK,CAAC,cAAc,EAAE,GAAG;AAC7B,MAAI,OAAO;IACX,CAAG;AACH,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,IAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACtD,MAAI,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO;AACrC,IAAA,CAAG,CAAC,CAAC,IAAI,CAAC,GAAG;AACb,EAAA;;AAEA,EAAA,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,IAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO;AAC9B,IAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK;AAC/D,IAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACnD,MAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACvC,MAAI,IAAI;;AAER,MAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AAChB,QAAM,GAAG,GAAG;AACZ,MAAA,CAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAC7C,MAAA,CAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACvB,QAAM,IAAI,CAAC,KAAK,GAAG,EAAE;UACb,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACjE,QAAA,CAAO,MAAM;AACb,UAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACvD,QAAA;MACA,CAAK,MAAM,IAAI,EAAE,EAAE;AACnB,QAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE;AACjC,QAAM,IAAI,CAAC,KAAK,GAAG,EAAE;AACrB,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,YAAU,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AACvD,kBAAgB,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;AAClD,UAAA,CAAS,MAAM;AACf,YAAU,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;kBACvC,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAC5C,UAAA;AACA,QAAA,CAAO,MAAM;AACb,UAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AACrD,gBAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAChC,QAAA;AACA,MAAA,CAAK,MAAM;QACL,KAAK,CAAC,OAAO;AACnB,QAAM,IAAI,CAAC,KAAK,GAAG,EAAE;AACrB,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,YAAU,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAC5C,kBAAgB,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;AAClD,UAAA,CAAS,MAAM;AACf,YAAU,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;kBAC5B,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAC5C,UAAA;AACA,QAAA,CAAO,MAAM;AACb,UAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAC1C,gBAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AAChC,QAAA;AACA,MAAA;;AAEA,MAAI,KAAK,CAAC,cAAc,EAAE,GAAG;AAC7B,MAAI,OAAO;IACX,CAAG;AACH,EAAA;;AAEA,EAAA,SAAS,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;AACxC,IAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO;AACvC,IAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AAC/C,MAAI,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO;AACtC,IAAA,CAAG,CAAC,CAAC,IAAI,CAAC,GAAG;AACb,EAAA;;AAEA,EAAA,SAAS,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,IAAE,IAAI,GAAG,IAAI,CAAC,IAAI;AAClB,IAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM;AACjE,IAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC3D,MAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,MAAI,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;AAClB,MAAI,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;AACxB,MAAI,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;MACpB,IAAI,IAAI,GAAG;;AAEf,MAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE;AAC9B,QAAM,IAAI,GAAG;AACb,MAAA;;AAEA;AACA;AACA,MAAI,EAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,GAAG;;MAExC,IAAI,EAAE,EAAE;QACN,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;AACxC;AACA,UAAQ,GAAG,GAAG;AACd,QAAA,CAAO,MAAM;AACb;AACA,UAAQ,GAAG,GAAG;AACd,QAAA;AACA,MAAA,CAAK,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE;AAC7B;AACA;QACM,IAAI,EAAE,EAAE;AACd,UAAQ,CAAC,GAAG;AACZ,QAAA;AACA,QAAM,CAAC,GAAG;;AAEV,QAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACxB;AACA;AACA;AACA,UAAQ,IAAI,GAAG;UACP,IAAI,EAAE,EAAE;AAChB,YAAU,CAAC,GAAG,CAAC,CAAC,GAAG;AACnB,YAAU,CAAC,GAAG;AACd,YAAU,CAAC,GAAG;AACd,UAAA,CAAS,MAAM;AACf,YAAU,CAAC,GAAG,CAAC,CAAC,GAAG;AACnB,YAAU,CAAC,GAAG;AACd,UAAA;AACA,QAAA,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AAChC;AACA;AACA,UAAQ,IAAI,GAAG;UACP,IAAI,EAAE,EAAE;AAChB,YAAU,CAAC,GAAG,CAAC,CAAC,GAAG;AACnB,UAAA,CAAS,MAAM;AACf,YAAU,CAAC,GAAG,CAAC,CAAC,GAAG;AACnB,UAAA;AACA,QAAA;;AAEA,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG;MAC3C,CAAK,MAAM,IAAI,EAAE,EAAE;AACnB,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG;MAChE,CAAK,MAAM,IAAI,EAAE,EAAE;AACnB,QAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE;AAC1C,UAAQ,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG;AAC3C,MAAA;;AAEA,MAAI,KAAK,CAAC,eAAe,EAAE,GAAG;;AAE9B,MAAI,OAAO;IACX,CAAG;AACH,EAAA;;AAEA;AACA;AACA,EAAA,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,IAAE,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO;AACrC;AACA,IAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAC/C,EAAA;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,aAAa,EAAE,EAAE;IACxB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IACzB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;AAC3B,IAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACf,MAAI,IAAI,GAAG;AACX,IAAA,CAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,MAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AACvB,IAAA,CAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;MAClB,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG;AAClC,IAAA,CAAG,MAAM;MACL,IAAI,GAAG,IAAI,GAAG;AAClB,IAAA;;AAEA,IAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACf,MAAI,EAAE,GAAG;AACT,IAAA,CAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;MAClB,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG;AAC3B,IAAA,CAAG,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,MAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG;IACtC,CAAG,MAAM,IAAI,GAAG,EAAE;AAClB,MAAI,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG;AACjD,IAAA,CAAG,MAAM;MACL,EAAE,GAAG,IAAI,GAAG;AAChB,IAAA;;IAEE,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI;AAC/B,EAAA;;AAEA;AACA,EAAA,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,OAAO,EAAE;IACxC,IAAI,CAAC,OAAO,EAAE;AAChB,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,MAAI,IAAI;QACF,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;MAChD,CAAK,CAAC,OAAO,EAAE,EAAE;AACjB,QAAM,OAAO;AACb,MAAA;AACA,IAAA;;AAEA,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACrD,QAAM,OAAO;AACb,MAAA;AACA,IAAA;AACA,IAAE,OAAO;AACT,EAAA;;AAEA,EAAA,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;AACzC,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAM,OAAO;AACb,MAAA;AACA,IAAA;;IAEE,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM;QACnB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;UACzB;AACR,QAAA;;AAEA,QAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,UAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,UAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;AAC3C,cAAY,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;AAC3C,cAAY,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AAC7C,YAAU,OAAO;AACjB,UAAA;AACA,QAAA;AACA,MAAA;;AAEA;AACA,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,SAAA,GAAoB;AACpB,EAAA,SAAS,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAC7C,IAAE,IAAI;AACN,MAAI,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;IACpC,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,IAAE,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO;AAC3B,EAAA;;EAEA,OAAA,CAAA,aAAA,GAAwB;AACxB,EAAA,SAAS,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAChD,IAAI,GAAG,GAAG;IACV,IAAI,KAAK,GAAG;AACd,IAAE,IAAI;MACF,IAAI,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;IAC3C,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,IAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAChC,MAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1B;AACA,QAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC3C;AACA,UAAQ,GAAG,GAAG;AACd,UAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO;AACvC,QAAA;AACA,MAAA;IACA,CAAG;AACH,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,aAAA,GAAwB;AACxB,EAAA,SAAS,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAChD,IAAI,GAAG,GAAG;IACV,IAAI,KAAK,GAAG;AACd,IAAE,IAAI;MACF,IAAI,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;IAC3C,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,IAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAChC,MAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1B;AACA,QAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC1C;AACA,UAAQ,GAAG,GAAG;AACd,UAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO;AACvC,QAAA;AACA,MAAA;IACA,CAAG;AACH,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,UAAA,GAAqB;AACrB,EAAA,SAAS,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AACnC,IAAE,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK;;AAEhC,IAAE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO;AACjC,IAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1B,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS;AAC/B,IAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1B,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,MAAM,GAAG;AACX,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7C,MAAI,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;;AAEjC,MAAI,WAAW,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE;AAC9C;QACM,IAAI,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;QAClD,QAAQ,UAAU,CAAC,QAAQ;AACjC,UAAQ,KAAK,GAAG;YACN,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;cACnC,OAAO,CAAC,KAAK;AACzB,YAAA,CAAW,MAAM;AACjB,cAAY,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACrC,YAAA;AACA,YAAU,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM;AACtC;AACA,UAAQ,KAAK,EAAE;AACf,UAAQ,KAAK,IAAI;YACP,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC9C,cAAY,MAAM,GAAG;AACrB,YAAA;YACU;AACV,UAAQ,KAAK,GAAG;AAChB,UAAQ,KAAK,IAAI;AACjB;YACU;AACV;UACQ;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,UAAU,CAAC,QAAQ;AACxE;MACA,CAAK;AACL,IAAA;;IAEE,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACpC,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,UAAA,GAAqB;AACrB,EAAA,SAAS,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;AACrC,IAAE,IAAI;AACN;AACA;MACI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;IAC9C,CAAG,CAAC,OAAO,EAAE,EAAE;AACf,MAAI,OAAO;AACX,IAAA;AACA,EAAA;;AAEA;EACA,OAAA,CAAA,GAAA,GAAc;AACd,EAAA,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACrC,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO;AAC7C,EAAA;;AAEA;EACA,OAAA,CAAA,GAAA,GAAc;AACd,EAAA,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACrC,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO;AAC7C,EAAA;;EAEA,OAAA,CAAA,OAAA,GAAkB;EAClB,SAAS,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,IAAE,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO;AACvC,IAAE,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO;;IAEhC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/B,IAAE,QAAQ,IAAI;AACd,MAAI,KAAK,GAAG;AACZ,QAAM,IAAI,GAAG;AACb,QAAM,KAAK,GAAG;AACd,QAAM,IAAI,GAAG;AACb,QAAM,IAAI,GAAG;AACb,QAAM,KAAK,GAAG;QACR;AACN,MAAI,KAAK,GAAG;AACZ,QAAM,IAAI,GAAG;AACb,QAAM,KAAK,GAAG;AACd,QAAM,IAAI,GAAG;AACb,QAAM,IAAI,GAAG;AACb,QAAM,KAAK,GAAG;QACR;MACF;AACJ,QAAM,MAAM,IAAI,SAAS,CAAC,uCAAuC;AACjE;;AAEA;IACE,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;AAC1C,MAAI,OAAO;AACX,IAAA;;AAEA;AACA;;AAEA,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7C,MAAI,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;;MAE7B,IAAI,IAAI,GAAG;MACX,IAAI,GAAG,GAAG;;AAEd,MAAI,WAAW,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE;AAC9C,QAAM,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE;AACrC,UAAQ,UAAU,GAAG,IAAI,UAAU,CAAC,SAAS;AAC7C,QAAA;QACM,IAAI,GAAG,IAAI,IAAI;QACf,GAAG,GAAG,GAAG,IAAI;AACnB,QAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AACzD,UAAQ,IAAI,GAAG;AACf,QAAA,CAAO,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC/D,UAAQ,GAAG,GAAG;AACd,QAAA;MACA,CAAK;;AAEL;AACA;AACA,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3D,QAAM,OAAO;AACb,MAAA;;AAEA;AACA;MACI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;UACvC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;AACpC,QAAM,OAAO;AACb,MAAA,CAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;AACpE,QAAM,OAAO;AACb,MAAA;AACA,IAAA;AACA,IAAE,OAAO;AACT,EAAA;;EAEA,OAAA,CAAA,UAAA,GAAqB;AACrB,EAAA,SAAS,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;AACvC,IAAE,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO;AACrC,IAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,GAAG;AACpE,EAAA;;EAEA,OAAA,CAAA,UAAA,GAAqB;AACrB,EAAA,SAAS,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;AACtC,IAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO;AAC5B,IAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO;AAC5B,IAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;AACzB,EAAA;;EAEA,OAAA,CAAA,MAAA,GAAiB;AACjB,EAAA,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;AACnC,IAAE,IAAI,OAAO,YAAY,MAAM,EAAE;AACjC,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,MAAI,OAAO,GAAG,MAAM,CAAC,OAAO;AAC5B,IAAA;;AAEA,IAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,MAAI,OAAO;AACX,IAAA;;IAEE,OAAO,GAAG,OAAO,IAAI;;IAErB,IAAI,KAAK,GAAG;AACd,IAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;MAChB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1C,IAAA,CAAG,MAAM;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,IAAI;AACR,MAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD,SAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAC3D;QACA,IAAI,CAAC,KAAK;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACzE,UAAQ,KAAK,GAAG;AAChB,QAAA;QACM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAA;AACA;MACI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG;AACpC,IAAA;;AAEA,IAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,MAAI,OAAO;AACX,IAAA;;AAEA,IAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;MACnB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;MACvB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO;AACpC,EAAA,CAAA;;;;;;;;;;;;;ECzmDA,IAAI,eAAe,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;MAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,QAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE,MAAA;MACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;EACtC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAA,CAAC,CAAC,CAAC;AACH,EAAA,IAAI,kBAAkB,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,MAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,MAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAA,CAAC,CAAC;EACF,IAAI,YAAY,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;MAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;MACrC,IAAI,MAAM,GAAG,EAAE;AACnB,MAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,MAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,MAAI,OAAO,MAAM;EACjB,CAAC;AACD,EAAA,IAAI,SAAS,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAA,CAAK,CAAC;EACN,CAAC;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAAA,CAAA,qBAAA,GAAgC,OAAA,CAAA,aAAA,GAAwB,OAAA,CAAA,UAAA,GAAqB,MAAM;AACnF,EAAA,MAAM,MAAM,GAAG,YAAY,CAACC,eAAiB,CAAC;EAC9C,MAAM,MAAM,GAAGC,WAAA,EAAwB;AACvC;AACA;EACA,MAAM,EAAE,GAAGC,mBAAa;EACxB,MAAM,EAAE,GAAGC,UAAwB;EACnC,MAAM,EAAE,GAAGC,WAAa;EACxB,SAAS,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;MAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,UAAQ,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE;AACxC,UAAQ,IAAI,MAAM;AAClB,UAAQ,IAAI,KAAK;AACjB,UAAQ,IAAI,IAAI;AAChB,UAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC5C,cAAY,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO;AAC7C,cAAY,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;cAC9D,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;mBACrC,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;kBAC1C,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI;AACpD,sBAAoB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AACzG,sBAAoB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;AACtF,sBAAoB,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;0BAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;AACxE,0BAAwB,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB,EAAE;8BACrC,GAAG,GAAG,IAAI;AACtC,0BAAA;+BAC6B;8BACD,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACpF,0BAAA;AACA,sBAAA;AACA,sBAAoB,OAAO,GAAG;AAC9B,kBAAA,CAAiB,CAAC;kBACF,IAAI,IAAI,EAAE;AAC1B,sBAAoB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;sBACjD,KAAK,GAAG,SAAS;sBACjB;AACpB,kBAAA;AACA,cAAA;AACA,UAAA;AACA,UAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B;cACY,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;AAC7C,cAAY,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACjC,UAAA;AACA,UAAQ,OAAO,MAAM;AACrB,MAAA,CAAK,CAAC;AACN,EAAA;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B,EAAA,SAAS,aAAa,GAAG;AACzB;AACA;AACA,MAAI,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE;MAC1B,IAAI,OAAO,GAAG,EAAE;AACpB,MAAI,IAAI,IAAI,KAAK,QAAQ,EAAE;UACnB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;AACnE,MAAA;AACA,WAAS,IAAI,IAAI,KAAK,OAAO,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;UACQ,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE;UAC1D,IAAI,WAAW,EAAE;cACb,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;AACjD,cAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;kBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7C,kBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;uBACjB,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,YAAY;0BAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,iBAAiB,CAAC,EAAE;sBAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;sBAC7D;AACpB,kBAAA;AACA,cAAA;AACA,UAAA;AACA,MAAA;AACA,MAAI,OAAO,OAAO;AAClB,EAAA;AACA,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa;AACrC,EAAA,SAAS,qBAAqB,GAAG;MAC7B,MAAM,cAAc,GAAG,kBAAkB;MACzC,MAAM,aAAa,GAAG,iBAAiB;MACvC,IAAI,QAAQ,GAAG,EAAE;AACrB,MAAI,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;UAC/B,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;AAC7D,MAAA;AACA,WAAS,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;UACnC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;AAC5D,MAAA;AACA,MAAI,OAAO,QAAQ;AACnB,EAAA;AACA,EAAA,OAAA,CAAA,qBAAA,GAAgC,qBAAqB;AACrD;;;;;;;;;;;;CC/HA,IAAI,eAAe,GAAG,CAACL,WAAI,IAAIA,WAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE,KAAA;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;CACtC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,WAAI,IAAIA,WAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,WAAI,IAAIA,WAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,WAAI,IAAIA,WAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAA,CAAK,CAAC;CACN,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,WAAA,CAAA,WAAmB,GAAG,MAAM;AAC5B,CAAA,MAAM,IAAI,GAAG,YAAY,CAACC,aAAwB,CAAC;AACnD;AACA;AACA;AACA,CAAA,MAAM,WAAW,CAAC;AAClB,KAAI,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;AACrD,SAAQ,IAAI,WAAW,GAAG,CAAC,EAAE;AAC7B,aAAY,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AAChF,SAAA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;SAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;SACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;SACxC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/C,aAAY,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;AACtF,SAAA;AACA,KAAA;AACA,KAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;SACzB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;aAChD,IAAI,OAAO,GAAG,CAAC;AAC3B,aAAY,OAAO,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/C;AACA,iBAAgB,IAAI;qBACA,OAAO,MAAM,MAAM,EAAE;AACzC,iBAAA;iBACgB,OAAO,GAAG,EAAE;qBACR,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC1D,yBAAwB,MAAM,GAAG;AACjC,qBAAA;AACA,qBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1C,iBAAA;AACA;AACA,iBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;iBACrC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC3E,iBAAgB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACzC,iBAAgB,OAAO,EAAE;AACzB,aAAA;AACA;aACY,OAAO,MAAM,MAAM,EAAE;AACjC,SAAA,CAAS,CAAC;AACV,KAAA;AACA,KAAI,cAAc,GAAG;SACb,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;aACvE,IAAI,CAAC,UAAU;AAC3B,KAAA;KACI,KAAK,CAAC,OAAO,EAAE;SACX,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;AAC9E,SAAA,CAAS,CAAC;AACV,KAAA;AACA;AACA,CAAA,WAAA,CAAA,WAAmB,GAAG,WAAW;AACjC;;;;;;;;;CCrFA,IAAI,eAAe,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE,KAAA;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;CACtC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAA,CAAK,CAAC;CACN,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,SAAA,CAAA,gBAAwB,GAAG,SAAA,CAAA,iBAAyB,GAAG,SAAA,CAAA,gBAAwB,GAAG,SAAA,CAAA,mBAA2B,GAAG,SAAA,CAAA,eAAuB,GAAG,SAAA,CAAA,IAAY,GAAG,SAAA,CAAA,SAAiB,GAAG,SAAA,CAAA,QAAgB,GAAG,SAAA,CAAA,UAAkB,GAAG,SAAA,CAAA,UAAkB,GAAG,SAAA,CAAA,UAAkB,GAAG,SAAA,CAAA,SAAiB,GAAG,SAAA,CAAA,YAAoB,GAAG,SAAA,CAAA,SAAiB,GAAG,MAAM;AACpU,CAAA,MAAM,IAAI,GAAG,YAAY,CAACC,aAAwB,CAAC;AACnD,CAAA,MAAM,EAAE,GAAG,YAAY,CAACC,WAAsB,CAAC;AAC/C,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,YAAiB,CAAC;AAC9C,CAAA,MAAM,EAAE,GAAG,YAAY,CAACC,WAAa,CAAC;AACtC,CAAA,MAAM,EAAE,GAAG,YAAY,CAACC,iBAAqB,CAAC;AAC9C,CAAA,MAAM,EAAE,GAAG,YAAY,CAACC,mBAAa,CAAC;AACtC,CAAA,MAAM,IAAI,GAAG,YAAY,CAACC,aAAe,CAAC;AAC1C,CAAA,MAAM,KAAK,GAAG,YAAY,CAACC,YAA+B,CAAC;AAC3D,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,eAAiB,CAAC;AAC9C,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,YAAiB,CAAC;AAC9C,CAAA,MAAM,IAAI,GAAG,YAAY,CAACC,YAAe,CAAC;CAC1C,MAAM,QAAQ,GAAGC,YAAiB;CAClC,MAAM,MAAM,GAAGC,WAAA,EAAiC;CAChD,MAAM,cAAc,GAAGC,kBAAA,EAAyB;CAChD,MAAM,SAAS,SAAS,KAAK,CAAC;KAC1B,WAAW,CAAC,cAAc,EAAE;SACxB,KAAK,CAAC,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC,CAAC;AAC5D,SAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;SACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AACzD,KAAA;AACA;AACA,CAAA,SAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B,CAAA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;AAC/C,CAAA,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;CAC5C,MAAM,SAAS,GAAG,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAClE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;SAChC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;SACjC,MAAM,WAAW,GAAG,CAAC;SACrB,MAAM,UAAU,GAAG,UAAU,CAAC,sCAAsC,EAAE,EAAE,CAAC;SACzE,MAAM,UAAU,GAAG,UAAU,CAAC,sCAAsC,EAAE,EAAE,CAAC;AACjF,SAAQ,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;AAC/F,SAAQ,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5F,aAAY,OAAO,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5E,SAAA,CAAS,CAAC,EAAE,CAAC,GAAG,KAAK;aACT,IAAI,GAAG,YAAY,SAAS,IAAI,GAAG,CAAC,cAAc,EAAE;AAChE;AACA,iBAAgB,IAAI,GAAG,CAAC,cAAc,GAAG,GAAG;AAC5C,qBAAoB,GAAG,CAAC,cAAc,KAAK,GAAG;AAC9C,qBAAoB,GAAG,CAAC,cAAc,KAAK,GAAG,EAAE;AAChD,qBAAoB,OAAO,KAAK;AAChC,iBAAA;AACA,aAAA;AACA;AACA,aAAY,OAAO,IAAI;AACvB,SAAA,CAAS,CAAC;AACV,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,SAAS,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;KACnD,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;aACrB,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3E,SAAA;AACA;SACQ,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE;AACzD,aAAY,YAAY,EAAE;AAC1B,UAAS,CAAC;SACF,IAAI,IAAI,EAAE;AAClB,aAAY,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAClC,aAAY,IAAI,OAAO,KAAK,SAAS,EAAE;iBACvB,OAAO,GAAG,EAAE;AAC5B,aAAA;AACA,aAAY,OAAO,CAAC,aAAa,GAAG,IAAI;AACxC,SAAA;SACQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;SAC7C,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE;aACrC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;aACtD,IAAI,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC3I,aAAY,MAAM,GAAG;AACrB,SAAA;AACA;SACQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;SAChD,MAAM,sBAAsB,GAAG,UAAU,CAAC,6CAA6C,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC;AACxH,SAAQ,MAAM,UAAU,GAAG,sBAAsB,EAAE;SAC3C,IAAI,SAAS,GAAG,KAAK;AAC7B,SAAQ,IAAI;aACA,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAClE,aAAY,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;aAC/B,SAAS,GAAG,IAAI;AAC5B,aAAY,OAAO,IAAI;AACvB,SAAA;iBACgB;AAChB;aACY,IAAI,CAAC,SAAS,EAAE;AAC5B,iBAAgB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAC7C,iBAAgB,IAAI;AACpB,qBAAoB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,iBAAA;iBACgB,OAAO,GAAG,EAAE;AAC5B,qBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,iBAAA;AACA,aAAA;AACA,SAAA;AACA,KAAA,CAAK,CAAC;AACN,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;KACpC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,yCAAyC,CAAC;SACvE,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,8BAA8B,CAAC;AAC9D,SAAQ,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;AAC/C,SAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;AACzC,SAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SACnB,IAAI,OAAO,EAAE;AACrB,aAAY,IAAI;iBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM;iBACjD,MAAM,IAAI,GAAG;AAC7B,qBAAoB,GAAG;AACvB,qBAAoB,QAAQ;AAC5B,qBAAoB,KAAK;AACzB,qBAAoB,WAAW;qBACX;kBACH;iBACD,MAAM,OAAO,GAAG;AAChC,qBAAoB,MAAM,EAAE;kBACX;AACjB,iBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;AACrE,aAAA;qBACoB;AACpB,iBAAgB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;AAC1C,aAAA;AACA,SAAA;cACa;aACD,MAAM,aAAa,GAAG;kBACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB;AACpE,kBAAiB,OAAO,CAAC,IAAI,EAAE,IAAI;AACnC,kBAAiB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACzC,aAAY,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAChF,aAAY,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAClF,aAAY,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;aAC1F,MAAM,IAAI,GAAG;AACzB,iBAAgB,SAAS;AACzB,iBAAgB,MAAM;AACtB,iBAAgB,YAAY;AAC5B,iBAAgB,iBAAiB;AACjC,iBAAgB,kBAAkB;AAClC,iBAAgB,cAAc;AAC9B,iBAAgB,UAAU;iBACV;cACH;aACD,MAAM,OAAO,GAAG;AAC5B,iBAAgB,MAAM,EAAE;cACX;AACb,aAAY,IAAI;iBACA,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC;AACzE,iBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5E,aAAA;qBACoB;AACpB,iBAAgB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;AAC1C,aAAA;AACA,SAAA;AACA,SAAQ,OAAO,IAAI;AACnB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE;KAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,CAAC,IAAI,EAAE;AACnB,aAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D,SAAA;AACA;AACA,SAAQ,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;AAC/C;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;SACpC,IAAI,aAAa,GAAG,EAAE;SACtB,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;aACxC,gBAAgB,EAAE,IAAI;aACtB,MAAM,EAAE,IAAI;AACxB,aAAY,SAAS,EAAE;iBACP,MAAM,EAAE,CAAC,IAAI,MAAM,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACpD,MAAM,EAAE,CAAC,IAAI,MAAM,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnE;AACA,UAAS,CAAC;SACF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxE;AACA,SAAQ,IAAI,IAAI;AAChB,SAAQ,IAAI,KAAK,YAAY,KAAK,EAAE;aACxB,IAAI,GAAG,KAAK;AACxB,SAAA;cACa;AACb,aAAY,IAAI,GAAG,CAAC,KAAK,CAAC;AAC1B,SAAA;AACA,SAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpD,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,SAAA;SACQ,IAAI,OAAO,GAAG,IAAI;SAClB,IAAI,OAAO,GAAG,IAAI;AAC1B,SAAQ,IAAI,UAAU,IAAI,QAAQ,EAAE;AACpC,aAAY,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAC1B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C;AACA;aACY,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C,SAAA;SACQ,IAAI,QAAQ,EAAE;AACtB;AACA,aAAY,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC;AACrD,aAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACpC,SAAA;SACQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AAC/C,SAAQ,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAC3C,SAAQ,OAAO,IAAI;AACnB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE;KACxC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,0CAA0C,CAAC;SACpE,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,8BAA8B,CAAC;AAC9D,SAAQ,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;AAC/C,SAAQ,IAAI,IAAI;AAChB,SAAQ,IAAI,KAAK,YAAY,KAAK,EAAE;aACxB,IAAI,GAAG,KAAK;AACxB,SAAA;cACa;AACb,aAAY,IAAI,GAAG,CAAC,KAAK,CAAC;AAC1B,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/C,SAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,SAAA;SACQ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;SAC3C,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAQ,OAAO,IAAI;AACnB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE;KAC5B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,CAAC,IAAI,EAAE;AACnB,aAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D,SAAA;AACA,SAAQ,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;SACvC,IAAI,UAAU,EAAE;AACxB,aAAY,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3C,SAAA;cACa;AACb,aAAY,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3C,SAAA;AACA,SAAQ,OAAO,IAAI;AACnB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B,CAAA,SAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;KAC/B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD;AACA,SAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7E,SAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACpE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;AACtD;AACA;SACQ,IAAI,QAAQ,EAAE;AACtB;aACY,MAAM,WAAW,GAAG;iBAChB,CAAC,iCAAiC,CAAC;iBACnC,CAAC,wEAAwE,CAAC;iBAC1E,CAAC,2DAA2D,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;iBACxG,CAAC,2NAA2N,EAAE,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,gCAAgC;AAC5T,cAAa,CAAC,IAAI,CAAC,GAAG,CAAC;aACX,MAAM,IAAI,GAAG;AACzB,iBAAgB,SAAS;AACzB,iBAAgB,YAAY;AAC5B,iBAAgB,iBAAiB;AACjC,iBAAgB,kBAAkB;AAClC,iBAAgB,cAAc;AAC9B,iBAAgB,UAAU;iBACV;cACH;aACD,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzD,aAAY,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACzD,SAAA;cACa;aACD,MAAM,iBAAiB,GAAG;iBACtB,CAAC,iCAAiC,CAAC;iBACnC,CAAC,2EAA2E,CAAC;iBAC7E,CAAC,gIAAgI,EAAE,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,UAAU,CAAC;iBAC5L,CAAC,2DAA2D,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW;AACvH,cAAa,CAAC,IAAI,CAAC,GAAG,CAAC;aACX,MAAM,IAAI,GAAG;AACzB,iBAAgB,SAAS;AACzB,iBAAgB,MAAM;AACtB,iBAAgB,YAAY;AAC5B,iBAAgB,iBAAiB;AACjC,iBAAgB,kBAAkB;AAClC,iBAAgB,cAAc;AAC9B,iBAAgB,UAAU;iBACV;cACH;aACD,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD,IAAI,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC,CAAC;AACrE,aAAY,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/D,SAAA;AACA,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;KAC/B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACvD,SAAQ,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;AAC3B,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AAC7B,aAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9B,SAAA;AACA,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnB,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACrE,KAAA,CAAK,CAAC;AACN,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC9C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO;AAClD,SAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;AAChC,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SACrD,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;SACtC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;AACnD,aAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D,SAAA;AACA;SACQ,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AACnE;AACA;SACQ,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;aAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpD,aAAY,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACzD,SAAA;AACA;AACA,SAAQ,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAC9C,SAAQ,OAAO,QAAQ;AACvB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC5D,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO;AAClD,SAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;AAChC,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SACrD,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;SACxC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;AAC/C,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD,SAAA;AACA;SACQ,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AACrE;AACA;SACQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;SAClD,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC1C,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzC;AACA,SAAQ,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAC9C,SAAQ,OAAO,UAAU;AACzB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE;KACvC,IAAI,CAAC,QAAQ,EAAE;AACnB,SAAQ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AACzD,KAAA;KACI,IAAI,CAAC,WAAW,EAAE;AACtB,SAAQ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAC5D,KAAA;AACA,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;AAC5B;AACA,KAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;SACjC,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC;SACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC;SAC1D,WAAW,GAAG,KAAK;AAC3B,KAAA;AACA;KACI,IAAI,QAAQ,GAAG,EAAE;KACjB,IAAI,WAAW,EAAE;SACb,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;AACrD,SAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;SAC9E,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;AAClD,SAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;AAChF,aAAY,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aACpE,QAAQ,GAAG,SAAS;AAChC,SAAA;cACa;AACb,aAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACnC,SAAA;AACA,KAAA;AACA,KAAI,OAAO,QAAQ;AACnB,CAAA;AACA,CAAA,SAAA,CAAA,IAAY,GAAG,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE;KACrC,MAAM,QAAQ,GAAG,EAAE;AACvB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;KACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC;AAC9D,KAAI,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;SACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;AACjD,SAAQ,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AACtC,aAAY,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC1C,iBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;AACvE,iBAAgB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;AACtF,qBAAoB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,iBAAA;AACA,aAAA;AACA,SAAA;AACA,KAAA;AACA,KAAI,OAAO,QAAQ;AACnB,CAAA;AACA,CAAA,SAAA,CAAA,eAAuB,GAAG,eAAe;CACzC,SAAS,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;KAC/D,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,QAAQ,GAAG,EAAE;AACzB,SAAQ,MAAM,OAAO,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SACnF,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;SAC/C,MAAM,OAAO,GAAG,EAAE;SAClB,IAAI,IAAI,EAAE;AAClB,aAAY,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAClC,aAAY,OAAO,CAAC,aAAa,GAAG,IAAI;AACxC,SAAA;SACQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7D,SAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,aAAY,OAAO,QAAQ;AAC3B,SAAA;SACQ,IAAI,WAAW,GAAG,EAAE;SACpB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;AACjD,aAAY,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE;AACxD,iBAAgB,WAAW,GAAG,IAAI,CAAC,GAAG;iBACtB;AAChB,aAAA;AACA,SAAA;AACA,SAAQ,OAAO,CAAC,QAAQ,CAAC,GAAG,oCAAoC;AAChE,SAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE;SACzE,IAAI,WAAW,EAAE;AACzB;aACY,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AAC5D,aAAY,IAAI;AAChB,iBAAgB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAClD,aAAA;aACY,OAAO,EAAE,EAAE;AACvB,iBAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1C,aAAA;AACA,SAAA;AACA,SAAQ,OAAO,QAAQ;AACvB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;KAC7E,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD;AACA,SAAQ,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;AACpF,SAAQ,OAAO,KAAK;AACpB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,oBAAoB,CAAC,IAAI,EAAE;KAChC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,CAAC,IAAI,EAAE;AACnB;AACA,aAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;AACtE,SAAA;AACA,SAAQ,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,SAAQ,OAAO,IAAI;AACnB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAS,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;SACtG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;SACvC,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;AACnD,SAAQ,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,SAAQ,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,SAAQ,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;AACnC,SAAQ,OAAO,UAAU;AACzB,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;KACtG,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;AAC/C,KAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC;AACpC,KAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACvC,CAAA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,CAAC,WAAW,EAAE;KACpC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;KACzC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;KAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;KACrC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACpC,KAAI,OAAO,KAAK;AAChB,CAAA;AACA,CAAA,SAAA,CAAA,iBAAyB,GAAG,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE;KAC7C,IAAI,OAAO,GAAG,EAAE;AACpB,KAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACpD,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;SAC/B,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7B,aAAY,OAAO,CAAC;AACpB,SAAA;SACQ,OAAO,EAAE;AACjB,KAAA,CAAK,CAAC;AACN,KAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,SAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;SAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC;SAC1D,IAAI,SAAS,EAAE;aACX,OAAO,GAAG,SAAS;aACnB;AACZ,SAAA;AACA,KAAA;KACI,IAAI,OAAO,EAAE;SACT,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AACzC,KAAA;UACS;AACT,SAAQ,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;AACrC,KAAA;AACA,KAAI,OAAO,OAAO;AAClB,CAAA;AACA,CAAA,SAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C;AACA;AACA;AACA,CAAA,SAAS,kBAAkB,GAAG;KAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE;KAC7D,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,0CAA0C,CAAC;AAChF,KAAI,OAAO,cAAc;AACzB,CAAA;AACA;AACA;AACA;AACA,CAAA,SAAS,iBAAiB,GAAG;KACzB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;KACtD,IAAI,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,oCAAoC,CAAC;AACzE,KAAI,OAAO,aAAa;AACxB,CAAA;AACA;AACA;AACA;AACA,CAAA,SAAS,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE;AACvC;AACA,KAAI,MAAM,KAAK,GAAGC,cAAM,CAAC,GAAG,CAAC;AAC7B;AACA,KAAI,OAAO,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,YAAY;AACrD,CAAA;AACA;AACA;AACA;AACA;CACA,SAAS,OAAO,CAAC,MAAM,EAAE;KACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAA;AACA;;;;;;ACzpBA,MAAM,cAAc,GAAG;AACvB,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,WAAW;AACpB,IAAI,KAAK,EAAE,eAAe;AAC1B,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,aAAa;AACtB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,YAAY;AACrB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;AACH,CAAC,CAAC;AACF;AACO,SAAS,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClD,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAClD;AACA,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAClE,EAAE,CAAC;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACO,SAAS,qBAAqB,CAAC;AACtC,EAAE,kBAAkB;AACpB,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,CAAC,EAAE;AACH,EAAE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxD,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AACD;AACO,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM;AAC9C,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;;ACvBtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AACrC;AACA;AACA;AACA;AACA,eAAe,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE;AAC7D,EAAEC,gBAAS,CAAC,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D;AACA;AACA,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AACjC,IAAI,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,EAAE,CAAC;AACH;AACA;AACA,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,IAAIA,gBAAS,CAAC,+BAA+B,CAAC,CAAC;AAC/C,EAAE,CAAC;AACH,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACtB,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ,CAAC,0CAA0C,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClF,OAAO,CAAC;AACR,IAAI,CAAC;AACL;AACA,IAAI,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;AACrD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5C;AACA,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,IAAIA,gBAAS,CAAC,CAAC,8CAA8C,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7E;AACA,IAAI,OAAO,UAAU,CAAC;AACtB,EAAE,CAAC;AACH,EAAE,OAAO,KAAK,EAAE;AAChB,IAAIC,qBAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAClC,EAAE,CAAC;AACH,CAAC;AACD;AACA;AACA;AACA;AACO,eAAe,mBAAmB,CAAC;AAC1C,EAAE,cAAc;AAChB,EAAE,kBAAkB;AACpB,EAAE,mBAAmB;AACrB,CAAC,EAAE;AACH,EAAE,MAAM,MAAM,GAAG,iBAAiB,CAACC,UAAE,CAAC,QAAQ,EAAE,EAAEA,UAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7D;AACA;AACA,EAAE,IAAI,OAAO,GAAGC,qBAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC1D;AACA,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAIH,gBAAS;AACb,MAAM,CAAC,6BAA6B,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AACvE,KAAK,CAAC;AACN;AACA,IAAI,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC9C,MAAM,kBAAkB;AACxB,MAAM,cAAc;AACpB,MAAM,MAAM;AACZ,KAAK,CAAC,CAAC;AACP;AACA,IAAIA,gBAAS,CAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAClD;AACA,IAAI,IAAI,YAAY,CAAC;AACrB;AACA,IAAI,IAAI,mBAAmB,EAAE;AAC7B;AACA,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAIE,UAAE,CAAC,MAAM,EAAE,CAAC;AAC7D,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD;AACA,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AACzF,IAAI,CAAC,MAAM;AACX;AACA,MAAMF,gBAAS,CAAC,2CAA2C,CAAC,CAAC;AAC7D,MAAM,YAAY,GAAG,MAAMI,6BAAe,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,CAAC;AACL;AACA,IAAI,MAAM,WAAW,GAAG,MAAMC,2BAAa,CAAC,YAAY,CAAC,CAAC;AAC1D;AACA;AACA,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AACvF;AACA,IAAI,OAAO,GAAG,MAAMC,yBAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC/E;AACA,IAAIN,gBAAS,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,CAAC,MAAM;AACT,IAAIA,gBAAS,CAAC,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,CAAC;AACH;AACA;AACA,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC3C,EAAEO,mBAAY,CAAC,MAAM,CAAC,CAAC;AACvB;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;;AC9Ga,SAAS,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;AAChE;AACA;AACA;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,4EAA4E;AAC/F,IAAI,IAAI,QAAQ,GAAG,KAAK;AACxB,IAAI,IAAI,OAAO,GAAG,EAAE;AAOpB,IAAI,IAAI,KAAK;AACb,IAAI,GAAG;AACP;AACA,QAAQ,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC5B;AACA;AACA,YAAY,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ;AACR,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI;AAC3B,IAAI,OAAO,OAAO;AAClB;AACA;AACA;AACA,SAAS,WAAW,GAAG;AACvB,IAAI,IAAI,IAAI,GAAG,EAAE;AACjB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClD,QAAQ,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AAChC,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACrC,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,IAAI;AACJ;;ACjCA,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC;AACO,eAAe,eAAe;AACrC,EAAE,SAAS;AACX,EAAE,cAAc;AAChB,EAAE,UAAU;AACZ,EAAE,SAAS,GAAG,EAAE;AAChB,EAAE;AACF,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE;AAC3E,IAAI,SAAS,CAAC;AACd;AACA,EAAE,MAAM,UAAU;AAClB,IAAI,QAAQ,KAAK,SAAS,GAAG,mBAAmB,GAAG,eAAe,CAAC;AACnE;AACA,EAAE,MAAM,WAAW,GAAG,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,CAAC;AACH;AACA,EAAE,IAAI,WAAW,KAAK,GAAG,EAAE;AAC3B,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,EAAE,CAAC;AACH;AACA,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,CAAC;AACH;AACA;AACA,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAACL,UAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7D,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAChE;AACA,EAAE,MAAM,aAAa,GAAG;AACxB,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AACrC,IAAI,IAAI,mBAAmB,GAAG,IAAI,CAAC;AACnC;AACA,IAAI,IAAI;AACR,MAAM,MAAM,2BAA2B,CAAC,aAAa,CAAC,CAAC;AACvD,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAMF,gBAAS;AACf,QAAQ,CAAC,4BAA4B,EAAE,cAAc,CAAC,+BAA+B,CAAC;AACtF,OAAO,CAAC;AACR,IAAI,CAAC;AACL;AACA,IAAI,IAAI,mBAAmB,EAAE;AAC7B,MAAMA,gBAAS;AACf,QAAQ,CAAC,iEAAiE,EAAE,cAAc,CAAC,CAAC;AAC5F,OAAO,CAAC;AACR,MAAM,MAAM,8BAA8B,CAAC,aAAa,CAAC,CAAC;AAC1D,IAAI,CAAC;AACL,EAAE,CAAC;AACH;AACA,EAAE,IAAI,aAAa,EAAE;AACrB,IAAIA,gBAAS,CAAC,kDAAkD,CAAC,CAAC;AAClE,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC9D;AACA,IAAI,IAAI;AACR,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB;AACA,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAClD,IAAI,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD;AACA,IAAI,MAAM,6BAA6B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrE;AACA,IAAI,WAAW,CAAC,IAAI;AACpB,MAAM,CAAC,mCAAmC,EAAE,mBAAmB,CAAC,CAAC;AACjE,KAAK,CAAC;AACN,EAAE,CAAC;AACH;AACA,EAAE,IAAI,SAAS,EAAE;AACjB;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAClD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9B,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,EAAE,MAAMQ,gBAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC;AAC/B,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,SAAS;AACX,EAAE,OAAO,GAAG,EAAE;AACd,CAAC,EAAE;AACH,EAAE,MAAM,QAAQ,GAAG;AACnB,IAAI,kBAAkB;AACtB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,GAAG,SAAS;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,OAAOA,gBAAS,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AACD;AACA,SAAS,6BAA6B,CAAC,aAAa,EAAE,QAAQ,EAAE;AAChE,EAAE,OAAO,qBAAqB,CAAC;AAC/B,IAAI,GAAG,aAAa;AACpB,IAAI,SAAS,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;AACpE,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,SAAS,2BAA2B,CAAC,aAAa,EAAE;AACpD,EAAE,OAAO,qBAAqB,CAAC;AAC/B,IAAI,GAAG,aAAa;AACpB,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;AACjD,IAAI,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC7B,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,SAAS,8BAA8B,CAAC,aAAa,EAAE;AACvD,EAAE,OAAO,qBAAqB,CAAC;AAC/B,IAAI,GAAG,aAAa;AACpB,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC7C,GAAG,CAAC,CAAC;AACL;;ACpJO,SAAS,sBAAsB,CAAC,OAAO,EAAE;AAChD,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,OAAO;AACX,EAAE,CAAC;AACH;AACA,EAAE,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC9C,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACnC,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,4EAA4E;AAClF,KAAK,CAAC;AACN,EAAE,CAAC;AACH,CAAC;AACD;AACO,SAAS,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE;AAClD,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,IAAI,CAAC,OAAO;AAChB,MAAM,mEAAmE;AACzE,KAAK,CAAC;AACN,EAAE,CAAC;AACH,CAAC;AACD;AACO,SAAS,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE;AACxD,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,EAAE,IAAIC,WAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI,IAAI,CAAC,OAAO;AAChB,MAAM,+MAA+M;AACrN,KAAK,CAAC;AACN,EAAE,CAAC;AACH,CAAC;AACD;AACO,SAAS,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE;AACzD,EAAE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpD,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnD,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC1D;AACA,EAAE,IAAIA,WAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAIA,WAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,OAAO;AAChB,MAAM,4KAA4K;AAClL,KAAK,CAAC;AACN,EAAE,CAAC;AACH;;ACjCA;AACA;AACA;AACA,SAAS,SAAS,GAAG;AACrB,EAAE,MAAM,IAAI,GAAGC,oBAAa,CAAC,MAAM,CAAC,CAAC;AACrC,EAAE,MAAM,cAAc,GAAGA,oBAAa,CAAC,gBAAgB,CAAC,CAAC;AACzD,EAAE,MAAM,kBAAkB,GAAGA,oBAAa,CAAC,oBAAoB,CAAC,CAAC;AACjE,EAAE,MAAM,mBAAmB,GAAGA,oBAAa,CAAC,qBAAqB,CAAC,CAAC;AACnE,EAAE,MAAM,cAAc,GAAGA,oBAAa,CAAC,gBAAgB,CAAC,CAAC;AACzD;AACA,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC;AAC3F,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,OAAO;AACT,IAAI,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;AACzC,IAAI,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;AACnC,IAAI,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;AACvC,IAAI,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;AAC9C,IAAI,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;AAC7C,IAAI,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;AACvC,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAClE;AACA,IAAI,sBAAsB,CAAC,cAAc,CAAC,CAAC;AAC3C,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACtC,IAAI,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5C,IAAI,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7C,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAIT,qBAAc,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,CAAC;AACH,CAAC;AACD;AACA,eAAe,GAAG,GAAG;AACrB,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE;AAC3F,MAAM,SAAS,EAAE,CAAC;AAClB,IAAI,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AACxC,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;AACrC;AACA,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;AACpE;AACA,IAAI,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;AACjD,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACvE,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAIA,qBAAc,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,CAAC;AACH,CAAC;AACD;AACA,GAAG,EAAE","x_google_ignoreList":[0,1,2,3,6]} \ No newline at end of file diff --git a/dist/install-build-wrapper.js.map b/dist/install-build-wrapper.js.map index 3d27dc5..03214e2 100644 --- a/dist/install-build-wrapper.js.map +++ b/dist/install-build-wrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"install-build-wrapper.js","sources":["../src/install-build-wrapper/utils.js","../src/install-build-wrapper/install-build-wrapper.js"],"sourcesContent":["import * as exec from \"@actions/exec\";\nimport * as path from \"path\";\n\n/**\n * Compute all names and paths related to the build wrapper\n * based on the runner environment\n */\nexport function getBuildWrapperInfo({\n runnerOS,\n runnerArch,\n runnerTemp,\n sonarHostUrl,\n}) {\n const { buildWrapperSuffix, buildWrapperName } = getSuffixAndName(\n runnerOS,\n runnerArch\n );\n\n const buildWrapperDir = `${runnerTemp}/build-wrapper-${buildWrapperSuffix}`;\n const buildWrapperUrl = `${sonarHostUrl}/static/cpp/build-wrapper-${buildWrapperSuffix}.zip`;\n const buildWrapperBin = `${buildWrapperDir}/${buildWrapperName}`;\n\n return {\n buildWrapperUrl,\n buildWrapperDir,\n buildWrapperBin,\n };\n}\n\nfunction getSuffixAndName(runnerOS, runnerArch) {\n if (\n runnerArch !== \"X64\" &&\n !(runnerArch === \"ARM64\" && (runnerOS === \"macOS\" || runnerOS === \"Linux\"))\n ) {\n throw new Error(\n `Architecture '${runnerArch}' is unsupported by build-wrapper`\n );\n }\n\n switch (runnerOS) {\n case \"Windows\":\n return {\n buildWrapperSuffix: \"win-x86\",\n buildWrapperName: \"build-wrapper-win-x86-64.exe\",\n };\n\n case \"Linux\":\n switch (runnerArch) {\n case \"X64\":\n return {\n buildWrapperSuffix: \"linux-x86\",\n buildWrapperName: \"build-wrapper-linux-x86-64\",\n };\n\n case \"ARM64\":\n return {\n buildWrapperSuffix: \"linux-aarch64\",\n buildWrapperName: \"build-wrapper-linux-aarch64\",\n };\n }\n break; // handled before the switch\n\n case \"macOS\":\n return {\n buildWrapperSuffix: \"macosx-x86\",\n buildWrapperName: \"build-wrapper-macosx-x86\",\n };\n\n default:\n throw new Error(`Unsupported runner OS '${runnerOS}'`);\n }\n}\n\nexport async function getRealPath(filePath, runnerOS) {\n switch (runnerOS) {\n case \"Windows\": {\n const windowsResult = await exec.getExecOutput(\"cygpath\", [\n \"--absolute\",\n \"--windows\",\n filePath,\n ]);\n return windowsResult.stdout.trim();\n }\n case \"Linux\": {\n const linuxResult = await exec.getExecOutput(\"readlink\", [\n \"-f\",\n filePath,\n ]);\n return linuxResult.stdout.trim();\n }\n case \"macOS\": {\n const macResult = await exec.getExecOutput(\"greadlink\", [\"-f\", filePath]);\n return macResult.stdout.trim();\n }\n default:\n return path.resolve(filePath);\n }\n}\n","import * as core from \"@actions/core\";\nimport * as exec from \"@actions/exec\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { getBuildWrapperInfo, getRealPath } from \"./utils\";\n\nasync function installMacOSPackages() {\n if (process.platform === \"darwin\") {\n core.info(\"Installing required packages for macOS\");\n await exec.exec(\"brew\", [\"install\", \"coreutils\"]);\n }\n}\n\n/**\n * These RUNNER_XX env variables come from GitHub by default.\n * See https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables\n *\n * If SONAR_HOST_URL is omitted, we assume sonarcloud.io\n */\nfunction getEnvVariables() {\n const sonarHostUrl = process.env.SONAR_HOST_URL\n ? process.env.SONAR_HOST_URL.replace(/\\/$/, \"\")\n : \"https://sonarcloud.io\";\n\n return {\n runnerOS: process.env.RUNNER_OS,\n runnerArch: process.env.RUNNER_ARCH,\n runnerTemp: process.env.RUNNER_TEMP,\n sonarHostUrl,\n };\n}\n\nasync function downloadAndInstallBuildWrapper(downloadUrl, runnerEnv) {\n const { runnerArch, runnerOS, runnerTemp } = runnerEnv;\n const tmpZipPath = path.join(\n runnerTemp,\n `build-wrapper-${runnerOS}-${runnerArch}.zip`\n );\n\n core.startGroup(`Download ${downloadUrl}`);\n\n core.info(`Downloading '${downloadUrl}'`);\n\n if (!fs.existsSync(runnerTemp)) {\n fs.mkdirSync(runnerTemp, { recursive: true });\n }\n\n await exec.exec(\"curl\", [\"-sSLo\", tmpZipPath, downloadUrl]);\n\n core.info(\"Decompressing\");\n await exec.exec(\"unzip\", [\"-o\", \"-d\", runnerTemp, tmpZipPath]);\n\n core.endGroup();\n}\n\nasync function run() {\n try {\n await installMacOSPackages();\n\n const envVariables = getEnvVariables();\n\n const { buildWrapperBin, buildWrapperDir, buildWrapperUrl } =\n getBuildWrapperInfo(envVariables);\n\n await downloadAndInstallBuildWrapper(buildWrapperUrl, envVariables);\n\n const buildWrapperBinDir = await getRealPath(\n buildWrapperDir,\n envVariables.runnerOS\n );\n core.addPath(buildWrapperBinDir);\n core.info(`'${buildWrapperBinDir}' added to the path`);\n\n const buildWrapperBinPath = await getRealPath(\n buildWrapperBin,\n envVariables.runnerOS\n );\n core.setOutput(\"build-wrapper-binary\", buildWrapperBinPath);\n core.info(`'build-wrapper-binary' output set to '${buildWrapperBinPath}'`);\n } catch (error) {\n core.setFailed(error.message);\n }\n}\n\nrun();\n"],"names":["exec.getExecOutput","core.info","exec.exec","core.startGroup","core.endGroup","core.addPath","core.setOutput","core.setFailed"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"install-build-wrapper.js","sources":["../src/install-build-wrapper/utils.js","../src/install-build-wrapper/install-build-wrapper.js"],"sourcesContent":["import * as exec from \"@actions/exec\";\r\nimport * as path from \"path\";\r\n\r\n/**\r\n * Compute all names and paths related to the build wrapper\r\n * based on the runner environment\r\n */\r\nexport function getBuildWrapperInfo({\r\n runnerOS,\r\n runnerArch,\r\n runnerTemp,\r\n sonarHostUrl,\r\n}) {\r\n const { buildWrapperSuffix, buildWrapperName } = getSuffixAndName(\r\n runnerOS,\r\n runnerArch\r\n );\r\n\r\n const buildWrapperDir = `${runnerTemp}/build-wrapper-${buildWrapperSuffix}`;\r\n const buildWrapperUrl = `${sonarHostUrl}/static/cpp/build-wrapper-${buildWrapperSuffix}.zip`;\r\n const buildWrapperBin = `${buildWrapperDir}/${buildWrapperName}`;\r\n\r\n return {\r\n buildWrapperUrl,\r\n buildWrapperDir,\r\n buildWrapperBin,\r\n };\r\n}\r\n\r\nfunction getSuffixAndName(runnerOS, runnerArch) {\r\n if (\r\n runnerArch !== \"X64\" &&\r\n !(runnerArch === \"ARM64\" && (runnerOS === \"macOS\" || runnerOS === \"Linux\"))\r\n ) {\r\n throw new Error(\r\n `Architecture '${runnerArch}' is unsupported by build-wrapper`\r\n );\r\n }\r\n\r\n switch (runnerOS) {\r\n case \"Windows\":\r\n return {\r\n buildWrapperSuffix: \"win-x86\",\r\n buildWrapperName: \"build-wrapper-win-x86-64.exe\",\r\n };\r\n\r\n case \"Linux\":\r\n switch (runnerArch) {\r\n case \"X64\":\r\n return {\r\n buildWrapperSuffix: \"linux-x86\",\r\n buildWrapperName: \"build-wrapper-linux-x86-64\",\r\n };\r\n\r\n case \"ARM64\":\r\n return {\r\n buildWrapperSuffix: \"linux-aarch64\",\r\n buildWrapperName: \"build-wrapper-linux-aarch64\",\r\n };\r\n }\r\n break; // handled before the switch\r\n\r\n case \"macOS\":\r\n return {\r\n buildWrapperSuffix: \"macosx-x86\",\r\n buildWrapperName: \"build-wrapper-macosx-x86\",\r\n };\r\n\r\n default:\r\n throw new Error(`Unsupported runner OS '${runnerOS}'`);\r\n }\r\n}\r\n\r\nexport async function getRealPath(filePath, runnerOS) {\r\n switch (runnerOS) {\r\n case \"Windows\": {\r\n const windowsResult = await exec.getExecOutput(\"cygpath\", [\r\n \"--absolute\",\r\n \"--windows\",\r\n filePath,\r\n ]);\r\n return windowsResult.stdout.trim();\r\n }\r\n case \"Linux\": {\r\n const linuxResult = await exec.getExecOutput(\"readlink\", [\r\n \"-f\",\r\n filePath,\r\n ]);\r\n return linuxResult.stdout.trim();\r\n }\r\n case \"macOS\": {\r\n const macResult = await exec.getExecOutput(\"greadlink\", [\"-f\", filePath]);\r\n return macResult.stdout.trim();\r\n }\r\n default:\r\n return path.resolve(filePath);\r\n }\r\n}\r\n","import * as core from \"@actions/core\";\r\nimport * as exec from \"@actions/exec\";\r\nimport * as fs from \"fs\";\r\nimport * as path from \"path\";\r\nimport { getBuildWrapperInfo, getRealPath } from \"./utils\";\r\n\r\nasync function installMacOSPackages() {\r\n if (process.platform === \"darwin\") {\r\n core.info(\"Installing required packages for macOS\");\r\n await exec.exec(\"brew\", [\"install\", \"coreutils\"]);\r\n }\r\n}\r\n\r\n/**\r\n * These RUNNER_XX env variables come from GitHub by default.\r\n * See https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables\r\n *\r\n * If SONAR_HOST_URL is omitted, we assume sonarcloud.io\r\n */\r\nfunction getEnvVariables() {\r\n const sonarHostUrl = process.env.SONAR_HOST_URL\r\n ? process.env.SONAR_HOST_URL.replace(/\\/$/, \"\")\r\n : \"https://sonarcloud.io\";\r\n\r\n return {\r\n runnerOS: process.env.RUNNER_OS,\r\n runnerArch: process.env.RUNNER_ARCH,\r\n runnerTemp: process.env.RUNNER_TEMP,\r\n sonarHostUrl,\r\n };\r\n}\r\n\r\nasync function downloadAndInstallBuildWrapper(downloadUrl, runnerEnv) {\r\n const { runnerArch, runnerOS, runnerTemp } = runnerEnv;\r\n const tmpZipPath = path.join(\r\n runnerTemp,\r\n `build-wrapper-${runnerOS}-${runnerArch}.zip`\r\n );\r\n\r\n core.startGroup(`Download ${downloadUrl}`);\r\n\r\n core.info(`Downloading '${downloadUrl}'`);\r\n\r\n if (!fs.existsSync(runnerTemp)) {\r\n fs.mkdirSync(runnerTemp, { recursive: true });\r\n }\r\n\r\n await exec.exec(\"curl\", [\"-sSLo\", tmpZipPath, downloadUrl]);\r\n\r\n core.info(\"Decompressing\");\r\n await exec.exec(\"unzip\", [\"-o\", \"-d\", runnerTemp, tmpZipPath]);\r\n\r\n core.endGroup();\r\n}\r\n\r\nasync function run() {\r\n try {\r\n await installMacOSPackages();\r\n\r\n const envVariables = getEnvVariables();\r\n\r\n const { buildWrapperBin, buildWrapperDir, buildWrapperUrl } =\r\n getBuildWrapperInfo(envVariables);\r\n\r\n await downloadAndInstallBuildWrapper(buildWrapperUrl, envVariables);\r\n\r\n const buildWrapperBinDir = await getRealPath(\r\n buildWrapperDir,\r\n envVariables.runnerOS\r\n );\r\n core.addPath(buildWrapperBinDir);\r\n core.info(`'${buildWrapperBinDir}' added to the path`);\r\n\r\n const buildWrapperBinPath = await getRealPath(\r\n buildWrapperBin,\r\n envVariables.runnerOS\r\n );\r\n core.setOutput(\"build-wrapper-binary\", buildWrapperBinPath);\r\n core.info(`'build-wrapper-binary' output set to '${buildWrapperBinPath}'`);\r\n } catch (error) {\r\n core.setFailed(error.message);\r\n }\r\n}\r\n\r\nrun();\r\n"],"names":["exec.getExecOutput","core.info","exec.exec","core.startGroup","core.endGroup","core.addPath","core.setOutput","core.setFailed"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a372ff9..ac2b905 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@actions/tool-cache": "2.0.2", + "fs": "^0.0.1-security", "string-argv": "0.3.2" }, "devDependencies": { @@ -695,6 +696,11 @@ } } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", diff --git a/package.json b/package.json index 216c410..d1644e8 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@actions/tool-cache": "2.0.2", + "fs": "^0.0.1-security", "string-argv": "0.3.2" }, "devDependencies": { diff --git a/src/main/index.js b/src/main/index.js index 90904ff..888e587 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -15,9 +15,10 @@ function getInputs() { const args = core.getInput("args"); const projectBaseDir = core.getInput("projectBaseDir"); const scannerBinariesUrl = core.getInput("scannerBinariesUrl"); + const scannerBinariesAuth = core.getInput("scannerBinariesAuth"); const scannerVersion = core.getInput("scannerVersion"); - return { args, projectBaseDir, scannerBinariesUrl, scannerVersion }; + return { args, projectBaseDir, scannerBinariesUrl, scannerBinariesAuth, scannerVersion }; } /** @@ -53,7 +54,7 @@ function runSanityChecks(inputs) { async function run() { try { - const { args, projectBaseDir, scannerVersion, scannerBinariesUrl } = + const { args, projectBaseDir, scannerVersion, scannerBinariesUrl, scannerBinariesAuth } = getInputs(); const runnerEnv = getEnvVariables(); const { sonarToken } = runnerEnv; @@ -63,6 +64,7 @@ async function run() { const scannerDir = await installSonarScanner({ scannerVersion, scannerBinariesUrl, + scannerBinariesAuth, }); await runSonarScanner(args, projectBaseDir, scannerDir, runnerEnv); diff --git a/src/main/install-sonar-scanner.js b/src/main/install-sonar-scanner.js index 73e4785..9d81fa2 100644 --- a/src/main/install-sonar-scanner.js +++ b/src/main/install-sonar-scanner.js @@ -2,6 +2,7 @@ import * as core from "@actions/core"; import * as tc from "@actions/tool-cache"; import * as os from "os"; import * as path from "path"; +import * as fs from "fs"; import { getPlatformFlavor, getScannerDownloadURL, @@ -10,12 +11,53 @@ import { const TOOLNAME = "sonar-scanner-cli"; +/** + * Download the sonar-scanner-cli from a internal url along with authorization token + */ +async function downloadWithFetch(url, outputPath, authToken) { + core.info(`Downloading sonar-scanner-cli from: ${url}`); + + //create output directory if it doesn't exist + const outputDir = path.dirname(outputPath); + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + //prepare headers + const headers = {}; + if (authToken) { + headers["Authorization"] = `Bearer ${authToken}`; + core.info("Using auth token for download"); + } + try { + const response = await fetch(url, { headers }); + + if (!response.ok) { + throw new Error( + `Failed to download sonar-scanner-cli from ${url}: ${response.statusText}` + ); + } + + const arrayBuffer = await response.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + + fs.writeFileSync(outputPath, buffer); + core.info(`Successfully Downloaded sonar-scanner-cli to: ${outputPath}`); + + return outputPath; + } + catch (error) { + core.setFailed(error.message); + } +} + /** * Download the Sonar Scanner CLI for the current environment and cache it. */ export async function installSonarScanner({ scannerVersion, scannerBinariesUrl, + scannerBinariesAuth, }) { const flavor = getPlatformFlavor(os.platform(), os.arch()); @@ -35,25 +77,36 @@ export async function installSonarScanner({ core.info(`Downloading from: ${downloadUrl}`); - const downloadPath = await tc.downloadTool(downloadUrl); - const extractedPath = await tc.extractZip(downloadPath); + let downloadPath; + + if (scannerBinariesAuth) { + // If auth token is provided + const tempDir = process.env.RUNNER_TEMP || os.tmpdir(); + const fileName = path.basename(downloadUrl); + const tempFile = path.join(tempDir, fileName); + + downloadPath = await downloadWithFetch(downloadUrl, tempFile, scannerBinariesAuth); + } else { + // use tool-cache without auth token + core.info("Using tool-cache to run sonar-scanner-cli"); + downloadPath = await tc.downloadTool(downloadUrl); + } + + const extractPath = await tc.extractZip(downloadPath); // Find the actual scanner directory inside the extracted folder - const scannerPath = path.join( - extractedPath, - scannerDirName(scannerVersion, flavor) - ); - + const scannerPath = path.join(extractPath, scannerDirName(scannerVersion, flavor)); + toolDir = await tc.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor); core.info(`Sonar Scanner CLI cached to: ${toolDir}`); } else { - core.info(`Using cached Sonar Scanner CLI from: ${toolDir}`); + core.info(`Using Sonar Scanner CLI from cache: ${toolDir}`); } - // Add the bin directory to PATH + // Add the tool to the path const binDir = path.join(toolDir, "bin"); core.addPath(binDir); return toolDir; -} + } \ No newline at end of file