diff --git a/.circleci/config.yml b/.circleci/config.yml
index 08e754be050f..043fd6d622b5 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,25 +1,13 @@
version: 2.1
aliases:
- - &restore-node-modules-cache
- keys:
- - v1-yarn-deps-{{ checksum "yarn.lock" }}
- - v1-yarn-deps-
-
- &restore-yarn-cache
- keys:
- - v1-1-yarn-cache-{{ checksum "yarn.lock" }}
- - v1-1-yarn-cache-
-
- - &save-node-modules-cache
- paths:
- - node_modules
- key: v1-yarn-deps-{{ checksum "yarn.lock" }}
+ key: v2-yarn-cache-{{ checksum "yarn.lock" }}
- &save-yarn-cache
paths:
- - ~/.cache/yarn
- key: v1-1-yarn-cache-{{ checksum "yarn.lock" }}
+ - .yarn/cache
+ key: v2-yarn-cache-{{ checksum "yarn.lock" }}
- &artifact_babel
path: ~/babel/packages/babel-standalone/babel.js
@@ -56,7 +44,6 @@ jobs:
steps:
- checkout
- restore_cache: *restore-yarn-cache
- - restore_cache: *restore-node-modules-cache
# Builds babel-standalone with the regular Babel config
# test-ci-coverage doesn't test babel-standalone, as trying to gather coverage
- run: IS_PUBLISH=true make -j build-standalone-ci
@@ -65,7 +52,6 @@ jobs:
- run: yarn jest "\-standalone/test"
- store_artifacts: *artifact_babel
- store_artifacts: *artifact_babel_min
- - save_cache: *save-node-modules-cache
- save_cache: *save-yarn-cache
test262:
@@ -81,14 +67,13 @@ jobs:
git checkout -qf FETCH_HEAD
fi
- restore_cache: *restore-yarn-cache
- - restore_cache: *restore-node-modules-cache
- run:
name: Build Babel
command: BABEL_ENV=test make bootstrap
- run:
name: Setup Test Runner
command: |
- git clone --depth=1 --recurse-submodules https://github.com/babel/babel-test262-runner
+ git clone --recurse-submodules https://github.com/babel/babel-test262-runner
cd babel-test262-runner
npm ci
npm i tap-mocha-reporter --save-dev
@@ -121,20 +106,20 @@ jobs:
cat ~/diff.tap | $(npm bin)/tap-merge | $(npm bin)/tap-mocha-reporter xunit | tee ~/test-results/test262/results.xml
<<: *test262_workdir
- store_test_results: *artifact_test262_xunit
+ - save_cache: *save-yarn-cache
publish-verdaccio:
executor: node-executor
steps:
- checkout
- restore_cache: *restore-yarn-cache
- - restore_cache: *restore-node-modules-cache
- - run: yarn install
- run: ./scripts/integration-tests/publish-local.sh
- persist_to_workspace:
root: /tmp/verdaccio-workspace
paths:
- storage
- htpasswd
+ - save_cache: *save-yarn-cache
e2e-babel:
executor: node-executor
diff --git a/.codesandbox/ci.json b/.codesandbox/ci.json
index 2fe05ad3006c..f260124b7c2b 100644
--- a/.codesandbox/ci.json
+++ b/.codesandbox/ci.json
@@ -1,6 +1,5 @@
{
- "installCommand": "codesandbox",
- "buildCommand": false,
+ "buildCommand": "codesandbox:build",
"sandboxes": ["7s08o", "vhm64"],
"packages": ["packages/*"]
}
diff --git a/.travis.yml b/.travis.yml
index 6f060cbcee73..3d73579a917d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,14 +1,16 @@
git:
depth: 5
language: node_js
+
cache:
- yarn: true
+ npm: false
+ directories:
+ - .yarn/cache
os: linux
env:
global:
- - PATH=$HOME/.yarn/bin:$PATH
- JOB=test
install: skip
@@ -37,13 +39,13 @@ matrix:
# https://travis-ci.community/t/build-doesnt-finish-after-completing-tests/288/9
- YARN_GPG=no
cache:
- yarn: true
+ npm: false
directories:
- $HOME/AppData/Local/Temp/chocolatey
+ - .yarn/cache
# Continue node_js matrix
- node_js: "12"
- node_js: "10"
- # Node.js 6 and 8 are tested on GitHub actions
- node_js: "node"
env: JOB=babel-parser-flow-tests
- node_js: "node"
diff --git a/.yarn-patches/@lerna/npm-publish.patch b/.yarn-patches/@lerna/npm-publish.patch
new file mode 100644
index 000000000000..b755b8fd52b6
--- /dev/null
+++ b/.yarn-patches/@lerna/npm-publish.patch
@@ -0,0 +1,31 @@
+diff --git a/npm-publish.js b/npm-publish.js
+index ee6ad133e..6a31d1775 100644
+--- a/npm-publish.js
++++ b/npm-publish.js
+@@ -32,6 +32,15 @@ const PublishConfig = figgyPudding(
+ }
+ );
+
++function stripWorkspaceProtocolFromDeps(deps) {
++ if (!deps) return;
++ for (const [name, version] of Object.entries(deps)) {
++ if (version.startsWith("workspace:")) {
++ deps[name] = version.slice(10);
++ }
++ }
++}
++
+ function npmPublish(pkg, tarFilePath, _opts, otpCache) {
+ const { scope } = npa(pkg.name);
+ // pass only the package scope to libnpmpublish
+@@ -67,6 +76,10 @@ function npmPublish(pkg, tarFilePath, _opts, otpCache) {
+ manifest.publishConfig.tag = opts.tag;
+ }
+
++ stripWorkspaceProtocolFromDeps(manifest.dependencies);
++ stripWorkspaceProtocolFromDeps(manifest.peerDependencies);
++ stripWorkspaceProtocolFromDeps(manifest.devDependencies);
++
+ return otplease(innerOpts => publish(manifest, tarData, innerOpts), opts, otpCache).catch(err => {
+ opts.log.silly("", err);
+ opts.log.error(err.code, (err.body && err.body.error) || err.message);
diff --git a/.yarn-patches/@lerna/pack-directory.patch b/.yarn-patches/@lerna/pack-directory.patch
new file mode 100644
index 000000000000..0b67c543825c
--- /dev/null
+++ b/.yarn-patches/@lerna/pack-directory.patch
@@ -0,0 +1,92 @@
+diff --git a/lib/pack-directory.js b/lib/pack-directory.js
+index d46069c78..2ba6bfea1 100644
+--- a/lib/pack-directory.js
++++ b/lib/pack-directory.js
+@@ -2,13 +2,13 @@
+
+ const path = require("path");
+ const figgyPudding = require("figgy-pudding");
+-const packlist = require("npm-packlist");
+ const log = require("npmlog");
+-const tar = require("tar");
+ const tempWrite = require("temp-write");
+ const getPacked = require("@lerna/get-packed");
+ const Package = require("@lerna/package");
+ const runLifecycle = require("@lerna/run-lifecycle");
++const util = require("util");
++const exec = util.promisify(require('child_process').exec);
+
+ module.exports = packDirectory;
+
+@@ -40,34 +40,23 @@ function packDirectory(_pkg, dir, _opts) {
+ chain = chain.then(() => pkg.refresh());
+ }
+
+- chain = chain.then(() => runLifecycle(pkg, "prepack", opts));
+- chain = chain.then(() => pkg.refresh());
+- chain = chain.then(() => packlist({ path: pkg.contents }));
+- chain = chain.then(files =>
+- tar.create(
+- {
+- cwd: pkg.contents,
+- prefix: "package/",
+- portable: true,
+- // Provide a specific date in the 1980s for the benefit of zip,
+- // which is confounded by files dated at the Unix epoch 0.
+- mtime: new Date("1985-10-26T08:15:00.000Z"),
+- gzip: true,
+- },
+- // NOTE: node-tar does some Magic Stuff depending on prefixes for files
+- // specifically with @ signs, so we just neutralize that one
+- // and any such future "features" by prepending `./`
+- files.map(f => `./${f}`)
+- )
++ // We need to call "yarn pack" to remove the "workspace:" protocol from
++ // package.json before publishing
++ chain = chain.then(() => tempWrite("", getTarballName(pkg)));
++ chain = chain.then(tarFilePath =>
++ exec("yarn pack --out " + tarFilePath, { cwd: pkg.location })
++ .then(({ stdout, stderr }) => {
++ const err = stderr.toString();
++ if (err) console.log(err);
++ })
++ .then(() => tarFilePath)
+ );
+- chain = chain.then(stream => tempWrite(stream, getTarballName(pkg)));
+ chain = chain.then(tarFilePath =>
+- getPacked(pkg, tarFilePath).then(packed =>
+- Promise.resolve()
+- .then(() => runLifecycle(pkg, "postpack", opts))
+- .then(() => packed)
+- )
++ Promise.resolve()
++ .then(() => pkg.refresh())
++ .then(() => tarFilePath)
+ );
++ chain = chain.then(tarFilePath => getPacked(pkg, tarFilePath));
+
+ return chain;
+ }
+@@ -81,3 +70,7 @@ function getTarballName(pkg) {
+
+ return `${name}-${pkg.version}.tgz`;
+ }
++
++function tap(fn) {
++ return arg => Promise.resolve(fn(arg)).then(() => arg);
++}
+\ No newline at end of file
+diff --git a/package.json b/package.json
+index e00ac73ff..953512b2c 100644
+--- a/package.json
++++ b/package.json
+@@ -31,9 +31,7 @@
+ "@lerna/package": "3.16.0",
+ "@lerna/run-lifecycle": "3.16.2",
+ "figgy-pudding": "^3.5.1",
+- "npm-packlist": "^1.4.4",
+ "npmlog": "^4.1.2",
+- "tar": "^4.4.10",
+ "temp-write": "^3.4.0"
+ },
+ "gitHead": "bb048cb306b5cfcb039aa98f667cf3751cf0ad20"
diff --git a/.yarn-patches/@lerna/package-graph.patch b/.yarn-patches/@lerna/package-graph.patch
new file mode 100644
index 000000000000..8438a82410ff
--- /dev/null
+++ b/.yarn-patches/@lerna/package-graph.patch
@@ -0,0 +1,24 @@
+diff --git a/index.js b/index.js
+index f860af4d2..27c4ce21d 100644
+--- a/index.js
++++ b/index.js
+@@ -57,8 +57,18 @@ class PackageGraph extends Map {
+ // Yarn decided to ignore https://github.com/npm/npm/pull/15900 and implemented "link:"
+ // As they apparently have no intention of being compatible, we have to do it for them.
+ // @see https://github.com/yarnpkg/yarn/issues/4212
+- const spec = graphDependencies[depName].replace(/^link:/, "file:");
++ let spec = graphDependencies[depName].replace(/^link:/, "file:");
++
++ // npa doesn't support the explicit workspace: protocol, supported by
++ // pnpm and Yarn.
++ // https://github.com/lerna/lerna/pull/2450
++ const explicitWorkspace = /^workspace:/.test(spec);
++ if (explicitWorkspace) {
++ spec = spec.replace(/^workspace:/, "");
++ }
++
+ const resolved = npa.resolve(depName, spec, currentNode.location);
++ resolved.explicitWorkspace = explicitWorkspace;
+
+ if (!depNode) {
+ // it's an external dependency, store the resolution and bail
diff --git a/.yarn-patches/@lerna/package.patch b/.yarn-patches/@lerna/package.patch
new file mode 100644
index 000000000000..4232922a89e9
--- /dev/null
+++ b/.yarn-patches/@lerna/package.patch
@@ -0,0 +1,16 @@
+diff --git a/index.js b/index.js
+index 67b997073..6e2912e9e 100644
+--- a/index.js
++++ b/index.js
+@@ -209,6 +209,11 @@ class Package {
+ if (resolved.registry || resolved.type === "directory") {
+ // a version (1.2.3) OR range (^1.2.3) OR directory (file:../foo-pkg)
+ depCollection[depName] = `${savePrefix}${depVersion}`;
++
++ // https://github.com/lerna/lerna/pull/2450
++ if (resolved.explicitWorkspace) {
++ depCollection[depName] = `workspace:${depCollection[depName]}`;
++ }
+ } else if (resolved.gitCommittish) {
+ // a git url with matching committish (#v1.2.3 or #1.2.3)
+ const [tagPrefix] = /^\D*/.exec(resolved.gitCommittish);
diff --git a/.yarn-patches/@lerna/version.patch b/.yarn-patches/@lerna/version.patch
new file mode 100644
index 000000000000..eec45422531b
--- /dev/null
+++ b/.yarn-patches/@lerna/version.patch
@@ -0,0 +1,17 @@
+diff --git a/command.js b/command.js
+index 4109ff1db..86349e057 100644
+--- a/command.js
++++ b/command.js
+@@ -12,6 +12,12 @@ exports.describe = "Bump version of packages changed since the last release.";
+
+ exports.builder = (yargs, composed) => {
+ const opts = {
++ // THIS IS ONLY USED BY BABEL
++ "exclude-dependents": {
++ describe: "Exclude all transitive dependents.",
++ type: "boolean"
++ },
++
+ "allow-branch": {
+ describe: "Specify which branches to allow versioning from.",
+ type: "array",
diff --git a/.yarn/plugins/@yarnpkg/plugin-constraints.js b/.yarn/plugins/@yarnpkg/plugin-constraints.js
new file mode 100644
index 000000000000..b766c582b9ab
--- /dev/null
+++ b/.yarn/plugins/@yarnpkg/plugin-constraints.js
@@ -0,0 +1,10749 @@
+/* eslint-disable*/
+module.exports = {
+ name: "@yarnpkg/plugin-constraints",
+ factory: function (require) {
+ var plugin =
+ /******/ (function(modules) { // webpackBootstrap
+ /******/ // The module cache
+ /******/ var installedModules = {};
+ /******/
+ /******/ // The require function
+ /******/ function __webpack_require__(moduleId) {
+ /******/
+ /******/ // Check if module is in cache
+ /******/ if(installedModules[moduleId]) {
+ /******/ return installedModules[moduleId].exports;
+ /******/ }
+ /******/ // Create a new module (and put it into the cache)
+ /******/ var module = installedModules[moduleId] = {
+ /******/ i: moduleId,
+ /******/ l: false,
+ /******/ exports: {}
+ /******/ };
+ /******/
+ /******/ // Execute the module function
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+ /******/
+ /******/ // Flag the module as loaded
+ /******/ module.l = true;
+ /******/
+ /******/ // Return the exports of the module
+ /******/ return module.exports;
+ /******/ }
+ /******/
+ /******/
+ /******/ // expose the modules object (__webpack_modules__)
+ /******/ __webpack_require__.m = modules;
+ /******/
+ /******/ // expose the module cache
+ /******/ __webpack_require__.c = installedModules;
+ /******/
+ /******/ // define getter function for harmony exports
+ /******/ __webpack_require__.d = function(exports, name, getter) {
+ /******/ if(!__webpack_require__.o(exports, name)) {
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+ /******/ }
+ /******/ };
+ /******/
+ /******/ // define __esModule on exports
+ /******/ __webpack_require__.r = function(exports) {
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+ /******/ }
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
+ /******/ };
+ /******/
+ /******/ // create a fake namespace object
+ /******/ // mode & 1: value is a module id, require it
+ /******/ // mode & 2: merge all properties of value into the ns
+ /******/ // mode & 4: return value when already ns object
+ /******/ // mode & 8|1: behave like require
+ /******/ __webpack_require__.t = function(value, mode) {
+ /******/ if(mode & 1) value = __webpack_require__(value);
+ /******/ if(mode & 8) return value;
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+ /******/ var ns = Object.create(null);
+ /******/ __webpack_require__.r(ns);
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+ /******/ return ns;
+ /******/ };
+ /******/
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
+ /******/ __webpack_require__.n = function(module) {
+ /******/ var getter = module && module.__esModule ?
+ /******/ function getDefault() { return module['default']; } :
+ /******/ function getModuleExports() { return module; };
+ /******/ __webpack_require__.d(getter, 'a', getter);
+ /******/ return getter;
+ /******/ };
+ /******/
+ /******/ // Object.prototype.hasOwnProperty.call
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+ /******/
+ /******/ // __webpack_public_path__
+ /******/ __webpack_require__.p = "";
+ /******/
+ /******/
+ /******/ // Load entry module and return exports
+ /******/ return __webpack_require__(__webpack_require__.s = 0);
+ /******/ })
+ /************************************************************************/
+ /******/ ([
+ /* 0 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+
+ var __importDefault = this && this.__importDefault || function (mod) {
+ return mod && mod.__esModule ? mod : {
+ "default": mod
+ };
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const core_1 = __webpack_require__(1);
+
+ const query_1 = __importDefault(__webpack_require__(2));
+
+ const source_1 = __importDefault(__webpack_require__(68));
+
+ const constraints_1 = __importDefault(__webpack_require__(69));
+
+ const plugin = {
+ configuration: {
+ constraintsPath: {
+ description: `The path of the constraints file.`,
+ type: core_1.SettingsType.ABSOLUTE_PATH,
+ default: `./constraints.pro`
+ }
+ },
+ commands: [query_1.default, source_1.default, constraints_1.default]
+ }; // eslint-disable-next-line arca/no-default-export
+
+ exports.default = plugin;
+
+ /***/ }),
+ /* 1 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("@yarnpkg/core");
+
+ /***/ }),
+ /* 2 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+
+ var __decorate = this && this.__decorate || function (decorators, target, key, desc) {
+ var c = arguments.length,
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
+ d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+
+ var __asyncValues = this && this.__asyncValues || function (o) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator],
+ i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
+ return this;
+ }, i);
+
+ function verb(n) {
+ i[n] = o[n] && function (v) {
+ return new Promise(function (resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function (v) {
+ resolve({
+ value: v,
+ done: d
+ });
+ }, reject);
+ }
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const cli_1 = __webpack_require__(3);
+
+ const core_1 = __webpack_require__(1);
+
+ const core_2 = __webpack_require__(1);
+
+ const clipanion_1 = __webpack_require__(4);
+
+ const Constraints_1 = __webpack_require__(5); // eslint-disable-next-line arca/no-default-export
+
+
+ class ConstraintsQueryCommand extends cli_1.BaseCommand {
+ constructor() {
+ super(...arguments);
+ this.json = false;
+ }
+
+ async execute() {
+ const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins);
+ const {
+ project
+ } = await core_1.Project.find(configuration, this.context.cwd);
+ const constraints = await Constraints_1.Constraints.find(project);
+ let query = this.query;
+ if (!query.endsWith(`.`)) query = `${query}.`;
+ const report = await core_2.StreamReport.start({
+ configuration,
+ json: this.json,
+ stdout: this.context.stdout
+ }, async report => {
+ var e_1, _a;
+
+ try {
+ for (var _b = __asyncValues(constraints.query(query)), _c; _c = await _b.next(), !_c.done;) {
+ const result = _c.value;
+ const lines = Array.from(Object.entries(result));
+ const lineCount = lines.length;
+ const maxVariableNameLength = lines.reduce((max, [variableName]) => Math.max(max, variableName.length), 0);
+
+ for (let i = 0; i < lineCount; i++) {
+ const [variableName, value] = lines[i];
+ report.reportInfo(null, `${getLinePrefix(i, lineCount)}${variableName.padEnd(maxVariableNameLength, ` `)} = ${valueToString(value)}`);
+ }
+
+ report.reportJson(result);
+ }
+ } catch (e_1_1) {
+ e_1 = {
+ error: e_1_1
+ };
+ } finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
+ } finally {
+ if (e_1) throw e_1.error;
+ }
+ }
+ });
+ return report.exitCode();
+ }
+
+ }
+
+ ConstraintsQueryCommand.usage = clipanion_1.Command.Usage({
+ category: `Constraints-related commands`,
+ description: `query the constraints fact database`,
+ details: `
+ This command will output all matches to the given prolog query.
+
+ If the \`--json\` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).
+ `,
+ examples: [[`List all dependencies throughout the workspace`, `yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'`]]
+ });
+
+ __decorate([clipanion_1.Command.Boolean(`--json`)], ConstraintsQueryCommand.prototype, "json", void 0);
+
+ __decorate([clipanion_1.Command.String()], ConstraintsQueryCommand.prototype, "query", void 0);
+
+ __decorate([clipanion_1.Command.Path(`constraints`, `query`)], ConstraintsQueryCommand.prototype, "execute", null);
+
+ exports.default = ConstraintsQueryCommand;
+
+ function valueToString(value) {
+ if (typeof value !== `string`) return `${value}`;
+ if (value.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)) return value;
+ return `'${value}'`;
+ }
+
+ function getLinePrefix(index, count) {
+ const isFirst = index === 0;
+ const isLast = index === count - 1;
+ if (isFirst && isLast) return ``;
+ if (isFirst) return `┌ `;
+ if (isLast) return `└ `;
+ return `│ `;
+ }
+
+ /***/ }),
+ /* 3 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("@yarnpkg/cli");
+
+ /***/ }),
+ /* 4 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("clipanion");
+
+ /***/ }),
+ /* 5 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+ ///
+
+ var __await = this && this.__await || function (v) {
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
+ };
+
+ var __asyncGenerator = this && this.__asyncGenerator || function (thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []),
+ i,
+ q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
+ return this;
+ }, i;
+
+ function verb(n) {
+ if (g[n]) i[n] = function (v) {
+ return new Promise(function (a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+
+ function step(r) {
+ r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+
+ function fulfill(value) {
+ resume("next", value);
+ }
+
+ function reject(value) {
+ resume("throw", value);
+ }
+
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
+ }
+ };
+
+ var __asyncValues = this && this.__asyncValues || function (o) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator],
+ i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
+ return this;
+ }, i);
+
+ function verb(n) {
+ i[n] = o[n] && function (v) {
+ return new Promise(function (resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function (v) {
+ resolve({
+ value: v,
+ done: d
+ });
+ }, reject);
+ }
+ };
+
+ var __importDefault = this && this.__importDefault || function (mod) {
+ return mod && mod.__esModule ? mod : {
+ "default": mod
+ };
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const core_1 = __webpack_require__(1);
+
+ const core_2 = __webpack_require__(1);
+
+ const fslib_1 = __webpack_require__(6);
+
+ const tau_prolog_1 = __importDefault(__webpack_require__(7));
+
+ const tauModule_1 = __webpack_require__(14);
+
+ var DependencyType;
+
+ (function (DependencyType) {
+ DependencyType["Dependencies"] = "dependencies";
+ DependencyType["DevDependencies"] = "devDependencies";
+ DependencyType["PeerDependencies"] = "peerDependencies";
+ })(DependencyType = exports.DependencyType || (exports.DependencyType = {}));
+
+ const DEPENDENCY_TYPES = [DependencyType.Dependencies, DependencyType.DevDependencies, DependencyType.PeerDependencies];
+
+ function extractErrorImpl(value) {
+ if (value instanceof tau_prolog_1.default.type.Num) return value.value;
+
+ if (value instanceof tau_prolog_1.default.type.Term) {
+ if (value.args.length === 0) return value.id;
+
+ switch (value.indicator) {
+ case `throw/1`:
+ return extractErrorImpl(value.args[0]);
+
+ case `error/1`:
+ return extractErrorImpl(value.args[0]);
+
+ case `error/2`:
+ return Object.assign(extractErrorImpl(value.args[0]), ...extractErrorImpl(value.args[1]));
+
+ case `syntax_error/1`:
+ return new core_1.ReportError(core_1.MessageName.PROLOG_SYNTAX_ERROR, `Syntax error: ${extractErrorImpl(value.args[0])}`);
+
+ case `existence_error/2`:
+ return new core_1.ReportError(core_1.MessageName.PROLOG_EXISTENCE_ERROR, `Existence error: ${extractErrorImpl(value.args[0])} ${extractErrorImpl(value.args[1])} not found`);
+
+ case `line/1`:
+ return {
+ line: extractErrorImpl(value.args[0])
+ };
+
+ case `column/1`:
+ return {
+ column: extractErrorImpl(value.args[0])
+ };
+
+ case `found/1`:
+ return {
+ found: extractErrorImpl(value.args[0])
+ };
+
+ case `./2`:
+ return [extractErrorImpl(value.args[0])].concat(extractErrorImpl(value.args[1]));
+
+ case `//2`:
+ return `${extractErrorImpl(value.args[0])}/${extractErrorImpl(value.args[1])}`;
+ }
+ }
+
+ throw `couldn't pretty print because of unsupported node ${value}`;
+ }
+
+ function extractError(val) {
+ let err;
+
+ try {
+ err = extractErrorImpl(val);
+ } catch (caught) {
+ if (typeof caught === `string`) {
+ throw new core_1.ReportError(core_1.MessageName.PROLOG_UNKNOWN_ERROR, `Unknown error: ${val} (note: ${caught})`);
+ } else {
+ throw caught;
+ }
+ }
+
+ if (typeof err.line !== `undefined` && typeof err.column !== `undefined`) err.message += ` at line ${err.line}, column ${err.column}`;
+ return err;
+ } // Node 8 doesn't have Symbol.asyncIterator
+ // https://github.com/Microsoft/TypeScript/issues/14151#issuecomment-280812617
+
+
+ if (Symbol.asyncIterator == null) Symbol.asyncIterator = Symbol.for('Symbol.asyncIterator');
+
+ class Session {
+ constructor(project, source) {
+ this.session = tau_prolog_1.default.create();
+ tauModule_1.linkProjectToSession(this.session, project);
+ this.session.consult(source);
+ }
+
+ fetchNextAnswer() {
+ return new Promise(resolve => {
+ this.session.answer(result => {
+ resolve(result);
+ });
+ });
+ }
+
+ makeQuery(query) {
+ return __asyncGenerator(this, arguments, function* makeQuery_1() {
+ const parsed = this.session.query(query);
+ if (parsed !== true) throw extractError(parsed);
+
+ while (true) {
+ const answer = yield __await(this.fetchNextAnswer());
+ if (!answer) break;
+ if (answer.id === `throw`) throw extractError(answer);
+ yield yield __await(answer);
+ }
+ });
+ }
+
+ }
+
+ function parseLink(link) {
+ if (link.id === `null`) {
+ return null;
+ } else {
+ return `${link.toJavaScript()}`;
+ }
+ }
+
+ function parseLinkToJson(link) {
+ if (link.id === `null`) {
+ return null;
+ } else {
+ const val = link.toJavaScript();
+ if (typeof val !== `string`) return JSON.stringify(val);
+
+ try {
+ return JSON.stringify(JSON.parse(val));
+ } catch (_a) {
+ return JSON.stringify(val);
+ }
+ }
+ }
+
+ class Constraints {
+ constructor(project) {
+ this.source = ``;
+ this.project = project;
+ const constraintsPath = project.configuration.get(`constraintsPath`);
+
+ if (fslib_1.xfs.existsSync(constraintsPath)) {
+ this.source = fslib_1.xfs.readFileSync(constraintsPath, `utf8`);
+ }
+ }
+
+ static async find(project) {
+ return new Constraints(project);
+ }
+
+ getProjectDatabase() {
+ let database = ``;
+
+ for (const dependencyType of DEPENDENCY_TYPES) database += `dependency_type(${dependencyType}).\n`;
+
+ for (const workspace of this.project.workspacesByCwd.values()) {
+ const relativeCwd = workspace.relativeCwd;
+ database += `workspace(${escape(relativeCwd)}).\n`;
+ database += `workspace_ident(${escape(relativeCwd)}, ${escape(core_2.structUtils.stringifyIdent(workspace.locator))}).\n`;
+ database += `workspace_version(${escape(relativeCwd)}, ${escape(workspace.manifest.version)}).\n`;
+
+ for (const dependencyType of DEPENDENCY_TYPES) {
+ for (const dependency of workspace.manifest[dependencyType].values()) {
+ database += `workspace_has_dependency(${escape(relativeCwd)}, ${escape(core_2.structUtils.stringifyIdent(dependency))}, ${escape(dependency.range)}, ${dependencyType}).\n`;
+ }
+ }
+ } // Add default never matching predicates to prevent prolog instantiation errors
+ // when constraints run in an empty workspace
+
+
+ database += `workspace(_) :- false.\n`;
+ database += `workspace_ident(_, _) :- false.\n`;
+ database += `workspace_version(_, _) :- false.\n`; // Add a default never matching predicate to prevent prolog instantiation errors
+ // when constraints run in a workspace without dependencies
+
+ database += `workspace_has_dependency(_, _, _, _) :- false.\n`;
+ return database;
+ }
+
+ getDeclarations() {
+ let declarations = ``; // (Cwd, DependencyIdent, DependencyRange, DependencyType)
+
+ declarations += `gen_enforced_dependency(_, _, _, _) :- false.\n`; // (Cwd, Path, Value)
+
+ declarations += `gen_enforced_field(_, _, _) :- false.\n`;
+ return declarations;
+ }
+
+ get fullSource() {
+ return `${this.getProjectDatabase()}\n${this.source}\n${this.getDeclarations()}`;
+ }
+
+ createSession() {
+ return new Session(this.project, this.fullSource);
+ }
+
+ async process() {
+ const session = this.createSession();
+ return {
+ enforcedDependencies: await this.genEnforcedDependencies(session),
+ enforcedFields: await this.genEnforcedFields(session)
+ };
+ }
+
+ async genEnforcedDependencies(session) {
+ var e_1, _a;
+
+ let enforcedDependencies = [];
+
+ try {
+ for (var _b = __asyncValues(session.makeQuery(`workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).`)), _c; _c = await _b.next(), !_c.done;) {
+ const answer = _c.value;
+ const workspaceCwd = fslib_1.ppath.resolve(this.project.cwd, parseLink(answer.links.WorkspaceCwd));
+ const dependencyRawIdent = parseLink(answer.links.DependencyIdent);
+ const dependencyRange = parseLink(answer.links.DependencyRange);
+ const dependencyType = parseLink(answer.links.DependencyType);
+ if (workspaceCwd === null || dependencyRawIdent === null) throw new Error(`Invalid rule`);
+ const workspace = this.project.getWorkspaceByCwd(workspaceCwd);
+ const dependencyIdent = core_2.structUtils.parseIdent(dependencyRawIdent);
+ enforcedDependencies.push({
+ workspace,
+ dependencyIdent,
+ dependencyRange,
+ dependencyType
+ });
+ }
+ } catch (e_1_1) {
+ e_1 = {
+ error: e_1_1
+ };
+ } finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
+ } finally {
+ if (e_1) throw e_1.error;
+ }
+ }
+
+ return core_2.miscUtils.sortMap(enforcedDependencies, [({
+ dependencyRange
+ }) => dependencyRange !== null ? `0` : `1`, ({
+ workspace
+ }) => core_2.structUtils.stringifyIdent(workspace.locator), ({
+ dependencyIdent
+ }) => core_2.structUtils.stringifyIdent(dependencyIdent)]);
+ }
+
+ async genEnforcedFields(session) {
+ var e_2, _a;
+
+ let enforcedFields = [];
+
+ try {
+ for (var _b = __asyncValues(session.makeQuery(`workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).`)), _c; _c = await _b.next(), !_c.done;) {
+ const answer = _c.value;
+ const workspaceCwd = fslib_1.ppath.resolve(this.project.cwd, parseLink(answer.links.WorkspaceCwd));
+ const fieldPath = parseLink(answer.links.FieldPath);
+ let fieldValue = parseLinkToJson(answer.links.FieldValue);
+ if (workspaceCwd === null || fieldPath === null) throw new Error(`Invalid rule`);
+ const workspace = this.project.getWorkspaceByCwd(workspaceCwd);
+ enforcedFields.push({
+ workspace,
+ fieldPath,
+ fieldValue
+ });
+ }
+ } catch (e_2_1) {
+ e_2 = {
+ error: e_2_1
+ };
+ } finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
+ } finally {
+ if (e_2) throw e_2.error;
+ }
+ }
+
+ return core_2.miscUtils.sortMap(enforcedFields, [({
+ workspace
+ }) => core_2.structUtils.stringifyIdent(workspace.locator), ({
+ fieldPath
+ }) => fieldPath]);
+ }
+
+ query(query) {
+ return __asyncGenerator(this, arguments, function* query_1() {
+ var e_3, _a;
+
+ const session = this.createSession();
+
+ try {
+ for (var _b = __asyncValues(session.makeQuery(query)), _c; _c = yield __await(_b.next()), !_c.done;) {
+ const answer = _c.value;
+ const parsedLinks = {};
+
+ for (const [variable, value] of Object.entries(answer.links)) {
+ if (variable !== `_`) {
+ parsedLinks[variable] = parseLink(value);
+ }
+ }
+
+ yield yield __await(parsedLinks);
+ }
+ } catch (e_3_1) {
+ e_3 = {
+ error: e_3_1
+ };
+ } finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) yield __await(_a.call(_b));
+ } finally {
+ if (e_3) throw e_3.error;
+ }
+ }
+ });
+ }
+
+ }
+
+ exports.Constraints = Constraints;
+
+ function escape(what) {
+ if (typeof what === `string`) {
+ return `'${what}'`;
+ } else {
+ return `[]`;
+ }
+ }
+
+ /***/ }),
+ /* 6 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("@yarnpkg/fslib");
+
+ /***/ }),
+ /* 7 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ (function() {
+
+ // VERSION
+ var version = { major: 0, minor: 2, patch: 66, status: "beta" };
+
+
+
+ // IO FILE SYSTEM
+
+ // Virtual file system for browser
+ tau_file_system = {
+ // Current files
+ files: {},
+ // Open file
+ open: function( path, type, mode ) {
+ var file = tau_file_system.files[path];
+ if( !file ) {
+ if( mode === "read" )
+ return null;
+ file = {
+ path: path,
+ text: "",
+ type: type,
+ get: function( length, position ) {
+ if( position === this.text.length ) {
+ return "end_of_file";
+ } else if( position > this.text.length ) {
+ return "end_of_file";
+ } else {
+ return this.text.substring( position, position+length );
+ }
+ },
+ put: function( text, position ) {
+ if( position === "end_of_file" ) {
+ this.text += text;
+ return true;
+ } else if( position === "past_end_of_file" ) {
+ return null;
+ } else {
+ this.text = this.text.substring(0, position) + text + this.text.substring(position+text.length);
+ return true;
+ }
+ },
+ get_byte: function( position ) {
+ if( position === "end_of_stream" )
+ return -1;
+ var index = Math.floor(position/2);
+ if( this.text.length <= index )
+ return -1;
+ var code = codePointAt( this.text[Math.floor(position/2)], 0 );
+ if( position % 2 === 0 )
+ return code & 0xff;
+ else
+ return code / 256 >>> 0;
+ },
+ put_byte: function( byte, position ) {
+ var index = position === "end_of_stream" ? this.text.length : Math.floor(position/2);
+ if( this.text.length < index )
+ return null;
+ var code = this.text.length === index ? -1 : codePointAt( this.text[Math.floor(position/2)], 0 );
+ if( position % 2 === 0 ) {
+ code = code / 256 >>> 0;
+ code = ((code & 0xff) << 8) | (byte & 0xff);
+ } else {
+ code = code & 0xff;
+ code = ((byte & 0xff) << 8) | (code & 0xff);
+ }
+ if( this.text.length === index )
+ this.text += fromCodePoint( code );
+ else
+ this.text = this.text.substring( 0, index ) + fromCodePoint( code ) + this.text.substring( index+1 );
+ return true;
+ },
+ flush: function() {
+ return true;
+ },
+ close: function() {
+ var file = tau_file_system.files[this.path];
+ if( !file ) {
+ return null;
+ } else {
+ return true;
+ }
+ }
+ };
+ tau_file_system.files[path] = file;
+ }
+ if( mode === "write" )
+ file.text = "";
+ return file;
+ },
+ };
+
+ // User input for browser
+ tau_user_input = {
+ buffer: "",
+ get: function( length, _ ) {
+ var text;
+ while( tau_user_input.buffer.length < length ) {
+ text = window.prompt();
+ if( text ) {
+ tau_user_input.buffer += text;
+ }
+ }
+ text = tau_user_input.buffer.substr( 0, length );
+ tau_user_input.buffer = tau_user_input.buffer.substr( length );
+ return text;
+ }
+ };
+
+ // User output for browser
+ tau_user_output = {
+ put: function( text, _ ) {
+ console.log( text );
+ return true;
+ },
+ flush: function() {
+ return true;
+ }
+ };
+
+ // Virtual file system for Node.js
+ nodejs_file_system = {
+ // Open file
+ open: function( path, type, mode ) {
+ var fs = __webpack_require__(8);
+ var fd = fs.openSync( path, mode[0] );
+ if( mode === "read" && !fs.existsSync( path ) )
+ return null;
+ return {
+ get: function( length, position ) {
+ var buffer = new Buffer( length );
+ fs.readSync( fd, buffer, 0, length, position );
+ return buffer.toString();
+ },
+ put: function( text, position ) {
+ var buffer = Buffer.from( text );
+ if( position === "end_of_file" )
+ fs.writeSync( fd, buffer );
+ else if( position === "past_end_of_file" )
+ return null;
+ else
+ fs.writeSync( fd, buffer, 0, buffer.length, position );
+ return true;
+ },
+ get_byte: function( position ) {
+ return null;
+ },
+ put_byte: function( byte, position ) {
+ return null;
+ },
+ flush: function() {
+ return true;
+ },
+ close: function() {
+ fs.closeSync( fd );
+ return true;
+ }
+ };
+ }
+ };
+
+ // User input for Node.js
+ nodejs_user_input = {
+ buffer: "",
+ get: function( length, _ ) {
+ var text;
+ var readlineSync = __webpack_require__(9);
+ while( nodejs_user_input.buffer.length < length )
+ nodejs_user_input.buffer += readlineSync.question();
+ text = nodejs_user_input.buffer.substr( 0, length );
+ nodejs_user_input.buffer = nodejs_user_input.buffer.substr( length );
+ return text;
+ }
+ };
+
+ // User output for Node.js
+ nodejs_user_output = {
+ put: function( text, _ ) {
+ process.stdout.write( text );
+ return true;
+ },
+ flush: function() {
+ return true;
+ }
+ };
+
+
+
+ // PARSER
+
+ var indexOf;
+ if(!Array.prototype.indexOf) {
+ indexOf = function(array, elem) {
+ var len = array.length;
+ for(var i = 0; i < len; i++) {
+ if(elem === array[i]) return i;
+ }
+ return -1;
+ };
+ } else {
+ indexOf = function(array, elem) {
+ return array.indexOf(elem);
+ };
+ }
+
+ var reduce = function(array, fn) {
+ if(array.length === 0) return undefined;
+ var elem = array[0];
+ var len = array.length;
+ for(var i = 1; i < len; i++) {
+ elem = fn(elem, array[i]);
+ }
+ return elem;
+ };
+
+ var map;
+ if(!Array.prototype.map) {
+ map = function(array, fn) {
+ var a = [];
+ var len = array.length;
+ for(var i = 0; i < len; i++) {
+ a.push( fn(array[i]) );
+ }
+ return a;
+ };
+ } else {
+ map = function(array, fn) {
+ return array.map(fn);
+ };
+ }
+
+ var filter;
+ if(!Array.prototype.filter) {
+ filter = function(array, fn) {
+ var a = [];
+ var len = array.length;
+ for(var i = 0; i < len; i++) {
+ if(fn(array[i]))
+ a.push( array[i] );
+ }
+ return a;
+ };
+ } else {
+ filter = function(array, fn) {
+ return array.filter(fn);
+ };
+ }
+
+ var codePointAt;
+ if(!String.prototype.codePointAt) {
+ codePointAt = function(str, i) {
+ return str.charCodeAt(i);
+ };
+ } else {
+ codePointAt = function(str, i) {
+ return str.codePointAt(i);
+ };
+ }
+
+ var fromCodePoint;
+ if(!String.fromCodePoint) {
+ fromCodePoint = function() {
+ return String.fromCharCode.apply(null, arguments);
+ };
+ } else {
+ fromCodePoint = function() {
+ return String.fromCodePoint.apply(null, arguments);
+ };
+ }
+
+
+
+ var ERROR = 0;
+ var SUCCESS = 1;
+
+ var regex_escape = /(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g;
+ var escape_map = {"\\a": 7, "\\b": 8, "\\f": 12, "\\n": 10, "\\r": 13, "\\t": 9, "\\v": 11};
+ function escape(str) {
+ var s = [];
+ var _error = false;
+ str.replace(regex_escape, function(match, a, b, f, n, r, t, v, hex, octal, back, single, dsingle, double, backquote, error, char) {
+ switch(true) {
+ case hex !== undefined:
+ s.push( parseInt(hex, 16) );
+ return "";
+ case octal !== undefined:
+ s.push( parseInt(octal, 8) );
+ return "";
+ case back !== undefined:
+ case single !== undefined:
+ case dsingle !== undefined:
+ case double !== undefined:
+ case backquote !== undefined:
+ s.push( codePointAt(match.substr(1),0) );
+ return "";
+ case char !== undefined:
+ s.push( codePointAt(char,0) );
+ return "";
+ case error !== undefined:
+ _error = true;
+ default:
+ s.push(escape_map[match]);
+ return "";
+ }
+ });
+ if(_error)
+ return null;
+ return s;
+ }
+
+ // Escape atoms
+ function escapeAtom(str, quote) {
+ var atom = '';
+ if( str.length < 2 ) return str;
+ try {
+ str = str.replace(/\\([0-7]+)\\/g, function(match, g1) {
+ return fromCodePoint(parseInt(g1, 8));
+ });
+ str = str.replace(/\\x([0-9a-fA-F]+)\\/g, function(match, g1) {
+ return fromCodePoint(parseInt(g1, 16));
+ });
+ } catch(error) {
+ return null;
+ }
+ for( var i = 0; i < str.length; i++) {
+ var a = str.charAt(i);
+ var b = str.charAt(i+1);
+ if( a === quote && b === quote ) {
+ i++;
+ atom += quote;
+ } else if( a === '\\' ) {
+ if( ['a','b','f','n','r','t','v',"'",'"','\\','\a','\b','\f','\n','\r','\t','\v'].indexOf(b) !== -1 ) {
+ i += 1;
+ switch( b ) {
+ case 'a': atom += '\a'; break;
+ case 'b': atom += '\b'; break;
+ case 'f': atom += '\f'; break;
+ case 'n': atom += '\n'; break;
+ case 'r': atom += '\r'; break;
+ case 't': atom += '\t'; break;
+ case 'v': atom += '\v'; break;
+ case "'": atom += "'"; break;
+ case '"': atom += '"'; break;
+ case '\\': atom += '\\'; break;
+ }
+ } else {
+ return null;
+ }
+ } else {
+ atom += a;
+ }
+ }
+ return atom;
+ }
+
+ // Redo escape
+ function redoEscape(str) {
+ var atom = '';
+ for( var i = 0; i < str.length; i++) {
+ switch( str.charAt(i) ) {
+ case "'": atom += "\\'"; break;
+ case '\\': atom += '\\\\'; break;
+ //case '\a': atom += '\\a'; break;
+ case '\b': atom += '\\b'; break;
+ case '\f': atom += '\\f'; break;
+ case '\n': atom += '\\n'; break;
+ case '\r': atom += '\\r'; break;
+ case '\t': atom += '\\t'; break;
+ case '\v': atom += '\\v'; break;
+ default: atom += str.charAt(i); break;
+ }
+ }
+ return atom;
+ }
+
+ // String to num
+ function convertNum(num) {
+ var n = num.substr(2);
+ switch(num.substr(0,2).toLowerCase()) {
+ case "0x":
+ return parseInt(n, 16);
+ case "0b":
+ return parseInt(n, 2);
+ case "0o":
+ return parseInt(n, 8);
+ case "0'":
+ return escape(n)[0];
+ default:
+ return parseFloat(num);
+ }
+ }
+
+ // Regular expressions for tokens
+ var rules = {
+ whitespace: /^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,
+ variable: /^(?:[A-Z_][a-zA-Z0-9_]*)/,
+ atom: /^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,
+ number: /^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,
+ string: /^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,
+ l_brace: /^(?:\[)/,
+ r_brace: /^(?:\])/,
+ l_bracket: /^(?:\{)/,
+ r_bracket: /^(?:\})/,
+ bar: /^(?:\|)/,
+ l_paren: /^(?:\()/,
+ r_paren: /^(?:\))/
+ };
+
+ // Replace chars of char_conversion session
+ function replace( thread, text ) {
+ if( thread.get_flag( "char_conversion" ).id === "on" ) {
+ return text.replace(/./g, function(char) {
+ return thread.get_char_conversion( char );
+ });
+ }
+ return text;
+ }
+
+ // Tokenize strings
+ function Tokenizer(thread) {
+ this.thread = thread;
+ this.text = ""; // Current text to be analized
+ this.tokens = []; // Consumed tokens
+ }
+
+ Tokenizer.prototype.set_last_tokens = function(tokens) {
+ return this.tokens = tokens;
+ };
+
+ Tokenizer.prototype.new_text = function(text) {
+ this.text = text;
+ this.tokens = [];
+ };
+
+ Tokenizer.prototype.get_tokens = function(init) {
+ var text;
+ var len = 0; // Total length respect to text
+ var line = 0;
+ var start = 0;
+ var tokens = [];
+ var last_in_blank = false;
+
+ if(init) {
+ var token = this.tokens[init-1];
+ len = token.len;
+ text = replace( this.thread, this.text.substr(token.len) );
+ line = token.line;
+ start = token.start;
+ }
+ else
+ text = this.text;
+
+
+ // If there is nothing to be analized, return null
+ if(/^\s*$/.test(text))
+ return null;
+
+ while(text !== "") {
+ var matches = [];
+ var last_is_blank = false;
+
+ if(/^\n/.exec(text) !== null) {
+ line++;
+ start = 0;
+ len++;
+ text = text.replace(/\n/, "");
+ last_in_blank = true;
+ continue;
+ }
+
+ for(var rule in rules) {
+ if(rules.hasOwnProperty(rule)) {
+ var matchs = rules[rule].exec( text );
+ if(matchs) {
+ matches.push({
+ value: matchs[0],
+ name: rule,
+ matches: matchs
+ });
+ }
+ }
+ }
+
+ // Lexical error
+ if(!matches.length)
+ return this.set_last_tokens( [{ value: text, matches: [], name: "lexical", line: line, start: start }] );
+
+ var token = reduce( matches, function(a, b) {
+ return a.value.length >= b.value.length ? a : b;
+ } );
+
+ token.start = start;
+ token.line = line;
+
+ text = text.replace(token.value, "");
+ start += token.value.length;
+ len += token.value.length;
+
+ switch(token.name) {
+ case "atom":
+ token.raw = token.value;
+ if(token.value.charAt(0) === "'") {
+ token.value = escapeAtom( token.value.substr(1, token.value.length - 2), "'" );
+ if( token.value === null ) {
+ token.name = "lexical";
+ token.value = "unknown escape sequence";
+ }
+ }
+ break;
+ case "number":
+ token.float = token.value.substring(0,2) !== "0x" && token.value.match(/[.eE]/) !== null && token.value !== "0'.";
+ token.value = convertNum( token.value );
+ token.blank = last_is_blank;
+ break;
+ case "string":
+ var del = token.value.charAt(0);
+ token.value = escapeAtom( token.value.substr(1, token.value.length - 2), del );
+ if( token.value === null ) {
+ token.name = "lexical";
+ token.value = "unknown escape sequence";
+ }
+ break;
+ case "whitespace":
+ var last = tokens[tokens.length-1];
+ if(last) last.space = true;
+ last_is_blank = true;
+ continue;
+ case "r_bracket":
+ if( tokens.length > 0 && tokens[tokens.length-1].name === "l_bracket" ) {
+ token = tokens.pop();
+ token.name = "atom";
+ token.value = "{}";
+ token.raw = "{}";
+ token.space = false;
+ }
+ break;
+ case "r_brace":
+ if( tokens.length > 0 && tokens[tokens.length-1].name === "l_brace" ) {
+ token = tokens.pop();
+ token.name = "atom";
+ token.value = "[]";
+ token.raw = "[]";
+ token.space = false;
+ }
+ break;
+ }
+ token.len = len;
+ tokens.push( token );
+ last_is_blank = false;
+ }
+
+ var t = this.set_last_tokens( tokens );
+ return t.length === 0 ? null : t;
+ };
+
+ // Parse an expression
+ function parseExpr(thread, tokens, start, priority, toplevel) {
+ if(!tokens[start]) return {type: ERROR, value: pl.error.syntax(tokens[start-1], "expression expected", true)};
+ var error;
+
+ if(priority === "0") {
+ var token = tokens[start];
+ switch(token.name) {
+ case "number":
+ return {type: SUCCESS, len: start+1, value: new pl.type.Num(token.value, token.float)};
+ case "variable":
+ return {type: SUCCESS, len: start+1, value: new pl.type.Var(token.value)};
+ case "string":
+ var str;
+ switch( thread.get_flag( "double_quotes" ).id ) {
+ case "atom":;
+ str = new Term( token.value, [] );
+ break;
+ case "codes":
+ str = new Term( "[]", [] );
+ for(var i = token.value.length-1; i >= 0; i-- )
+ str = new Term( ".", [new pl.type.Num( codePointAt(token.value,i), false ), str] );
+ break;
+ case "chars":
+ str = new Term( "[]", [] );
+ for(var i = token.value.length-1; i >= 0; i-- )
+ str = new Term( ".", [new pl.type.Term( token.value.charAt(i), [] ), str] );
+ break;
+ }
+ return {type: SUCCESS, len: start+1, value: str};
+ case "l_paren":
+ var expr = parseExpr(thread, tokens, start+1, thread.__get_max_priority(), true);
+ if(expr.type !== SUCCESS) return expr;
+ if(tokens[expr.len] && tokens[expr.len].name === "r_paren") {
+ expr.len++;
+ return expr;
+ }
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[expr.len] ? tokens[expr.len] : tokens[expr.len-1], ") or operator expected", !tokens[expr.len])}
+ case "l_bracket":
+ var expr = parseExpr(thread, tokens, start+1, thread.__get_max_priority(), true);
+ if(expr.type !== SUCCESS) return expr;
+ if(tokens[expr.len] && tokens[expr.len].name === "r_bracket") {
+ expr.len++;
+ expr.value = new Term( "{}", [expr.value] );
+ return expr;
+ }
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[expr.len] ? tokens[expr.len] : tokens[expr.len-1], "} or operator expected", !tokens[expr.len])}
+ }
+ // Compound term
+ var result = parseTerm(thread, tokens, start, toplevel);
+ if(result.type === SUCCESS || result.derived)
+ return result;
+ // List
+ result = parseList(thread, tokens, start);
+ if(result.type === SUCCESS || result.derived)
+ return result;
+ // Unexpected
+ return {type: ERROR, derived: false, value: pl.error.syntax(tokens[start], "unexpected token")};
+ }
+
+ var max_priority = thread.__get_max_priority();
+ var next_priority = thread.__get_next_priority(priority);
+ var aux_start = start;
+
+ // Prefix operators
+ if(tokens[start].name === "atom" && tokens[start+1] && (tokens[start].space || tokens[start+1].name !== "l_paren")) {
+ var token = tokens[start++];
+ var classes = thread.__lookup_operator_classes(priority, token.value);
+
+ // Associative prefix operator
+ if(classes && classes.indexOf("fy") > -1) {
+ var expr = parseExpr(thread, tokens, start, priority, toplevel);
+ if(expr.type !== ERROR) {
+ if( token.value === "-" && !token.space && pl.type.is_number( expr.value ) ) {
+ return {
+ value: new pl.type.Num(-expr.value.value, expr.value.is_float),
+ len: expr.len,
+ type: SUCCESS
+ };
+ } else {
+ return {
+ value: new pl.type.Term(token.value, [expr.value]),
+ len: expr.len,
+ type: SUCCESS
+ };
+ }
+ } else {
+ error = expr;
+ }
+ // Non-associative prefix operator
+ } else if(classes && classes.indexOf("fx") > -1) {
+ var expr = parseExpr(thread, tokens, start, next_priority, toplevel);
+ if(expr.type !== ERROR) {
+ return {
+ value: new pl.type.Term(token.value, [expr.value]),
+ len: expr.len,
+ type: SUCCESS
+ };
+ } else {
+ error = expr;
+ }
+ }
+ }
+
+ start = aux_start;
+ var expr = parseExpr(thread, tokens, start, next_priority, toplevel);
+ if(expr.type === SUCCESS) {
+ start = expr.len;
+ var token = tokens[start];
+ if(tokens[start] && (
+ tokens[start].name === "atom" && thread.__lookup_operator_classes(priority, token.value) ||
+ tokens[start].name === "bar" && thread.__lookup_operator_classes(priority, "|")
+ ) ) {
+ var next_priority_lt = next_priority;
+ var next_priority_eq = priority;
+ var classes = thread.__lookup_operator_classes(priority, token.value);
+
+ if(classes.indexOf("xf") > -1) {
+ return {
+ value: new pl.type.Term(token.value, [expr.value]),
+ len: ++expr.len,
+ type: SUCCESS
+ };
+ } else if(classes.indexOf("xfx") > -1) {
+ var expr2 = parseExpr(thread, tokens, start + 1, next_priority_lt, toplevel);
+ if(expr2.type === SUCCESS) {
+ return {
+ value: new pl.type.Term(token.value, [expr.value, expr2.value]),
+ len: expr2.len,
+ type: SUCCESS
+ };
+ } else {
+ expr2.derived = true;
+ return expr2;
+ }
+ } else if(classes.indexOf("xfy") > -1) {
+ var expr2 = parseExpr(thread, tokens, start + 1, next_priority_eq, toplevel);
+ if(expr2.type === SUCCESS) {
+ return {
+ value: new pl.type.Term(token.value, [expr.value, expr2.value]),
+ len: expr2.len,
+ type: SUCCESS
+ };
+ } else {
+ expr2.derived = true;
+ return expr2;
+ }
+ } else if(expr.type !== ERROR) {
+ while(true) {
+ start = expr.len;
+ var token = tokens[start];
+ if(token && token.name === "atom" && thread.__lookup_operator_classes(priority, token.value)) {
+ var classes = thread.__lookup_operator_classes(priority, token.value);
+ if( classes.indexOf("yf") > -1 ) {
+ expr = {
+ value: new pl.type.Term(token.value, [expr.value]),
+ len: ++start,
+ type: SUCCESS
+ };
+ } else if( classes.indexOf("yfx") > -1 ) {
+ var expr2 = parseExpr(thread, tokens, ++start, next_priority_lt, toplevel);
+ if(expr2.type === ERROR) {
+ expr2.derived = true;
+ return expr2;
+ }
+ start = expr2.len;
+ expr = {
+ value: new pl.type.Term(token.value, [expr.value, expr2.value]),
+ len: start,
+ type: SUCCESS
+ };
+ } else { break; }
+ } else { break; }
+ }
+ }
+ } else {
+ error = {type: ERROR, value: pl.error.syntax(tokens[expr.len-1], "operator expected")};
+ }
+ return expr;
+ }
+ return expr;
+ }
+
+ // Parse a compound term
+ function parseTerm(thread, tokens, start, toplevel) {
+ if(!tokens[start] || (tokens[start].name === "atom" && tokens[start].raw === "." && !toplevel && (tokens[start].space || !tokens[start+1] || tokens[start+1].name !== "l_paren")))
+ return {type: ERROR, derived: false, value: pl.error.syntax(tokens[start-1], "unfounded token")};
+ var atom = tokens[start];
+ var exprs = [];
+ if(tokens[start].name === "atom" && tokens[start].raw !== ",") {
+ start++;
+ if(tokens[start-1].space) return {type: SUCCESS, len: start, value: new pl.type.Term(atom.value, exprs)};
+ if(tokens[start] && tokens[start].name === "l_paren") {
+ if(tokens[start+1] && tokens[start+1].name === "r_paren")
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start+1], "argument expected")};
+ var expr = parseExpr(thread, tokens, ++start, "999", true);
+ if(expr.type === ERROR) {
+ if( expr.derived )
+ return expr;
+ else
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start] ? tokens[start] : tokens[start-1], "argument expected", !tokens[start])};
+ }
+ exprs.push(expr.value);
+ start = expr.len;
+ while(tokens[start] && tokens[start].name === "atom" && tokens[start].value === ",") {
+ expr = parseExpr(thread, tokens, start+1, "999", true);
+ if(expr.type === ERROR) {
+ if( expr.derived )
+ return expr;
+ else
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start+1] ? tokens[start+1] : tokens[start], "argument expected", !tokens[start+1])};
+ }
+ exprs.push(expr.value);
+ start = expr.len;
+ }
+ if(tokens[start] && tokens[start].name === "r_paren") start++;
+ else return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start] ? tokens[start] : tokens[start-1], ", or ) expected", !tokens[start])};
+ }
+ return {type: SUCCESS, len: start, value: new pl.type.Term(atom.value, exprs)};
+ }
+ return {type: ERROR, derived: false, value: pl.error.syntax(tokens[start], "term expected")};
+ }
+
+ // Parse a list
+ function parseList(thread, tokens, start) {
+ if(!tokens[start])
+ return {type: ERROR, derived: false, value: pl.error.syntax(tokens[start-1], "[ expected")};
+ if(tokens[start] && tokens[start].name === "l_brace") {
+ var expr = parseExpr(thread, tokens, ++start, "999", true);
+ var exprs = [expr.value];
+ var cons = undefined;
+
+ if(expr.type === ERROR) {
+ if(tokens[start] && tokens[start].name === "r_brace") {
+ return {type: SUCCESS, len: start+1, value: new pl.type.Term("[]", [])};
+ }
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start], "] expected")};
+ }
+
+ start = expr.len;
+
+ while(tokens[start] && tokens[start].name === "atom" && tokens[start].value === ",") {
+ expr = parseExpr(thread, tokens, start+1, "999", true);
+ if(expr.type === ERROR) {
+ if( expr.derived )
+ return expr;
+ else
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start+1] ? tokens[start+1] : tokens[start], "argument expected", !tokens[start+1])};
+ }
+ exprs.push(expr.value);
+ start = expr.len;
+ }
+ var bar = false
+ if(tokens[start] && tokens[start].name === "bar") {
+ bar = true;
+ expr = parseExpr(thread, tokens, start+1, "999", true);
+ if(expr.type === ERROR) {
+ if( expr.derived )
+ return expr;
+ else
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start+1] ? tokens[start+1] : tokens[start], "argument expected", !tokens[start+1])};
+ }
+ cons = expr.value;
+ start = expr.len;
+ }
+ if(tokens[start] && tokens[start].name === "r_brace")
+ return {type: SUCCESS, len: start+1, value: arrayToList(exprs, cons) };
+ else
+ return {type: ERROR, derived: true, value: pl.error.syntax(tokens[start] ? tokens[start] : tokens[start-1], bar ? "] expected" : ", or | or ] expected", !tokens[start])};
+ }
+ return {type: ERROR, derived: false, value: pl.error.syntax(tokens[start], "list expected")};
+ }
+
+ // Parse a rule
+ function parseRule(thread, tokens, start) {
+ var line = tokens[start].line;
+ var expr = parseExpr(thread, tokens, start, thread.__get_max_priority(), false);
+ var rule = null;
+ var obj;
+ if(expr.type !== ERROR) {
+ start = expr.len;
+ if(tokens[start] && tokens[start].name === "atom" && tokens[start].raw === ".") {
+ start++;
+ if( pl.type.is_term(expr.value) ) {
+ if(expr.value.indicator === ":-/2") {
+ rule = new pl.type.Rule(expr.value.args[0], body_conversion(expr.value.args[1]))
+ obj = {
+ value: rule,
+ len: start,
+ type: SUCCESS
+ };
+ } else if(expr.value.indicator === "-->/2") {
+ rule = rule_to_dcg(new pl.type.Rule(expr.value.args[0], expr.value.args[1]), thread);
+ rule.body = body_conversion( rule.body );
+ obj = {
+ value: rule,
+ len: start,
+ type: pl.type.is_rule( rule ) ? SUCCESS : ERROR
+ };
+ } else {
+ rule = new pl.type.Rule(expr.value, null);
+ obj = {
+ value: rule,
+ len: start,
+ type: SUCCESS
+ };
+ }
+ if( rule ) {
+ var singleton = rule.singleton_variables();
+ if( singleton.length > 0 )
+ thread.throw_warning( pl.warning.singleton( singleton, rule.head.indicator, line ) );
+ }
+ return obj;
+ } else {
+ return { type: ERROR, value: pl.error.syntax(tokens[start], "callable expected") };
+ }
+ } else {
+ return { type: ERROR, value: pl.error.syntax(tokens[start] ? tokens[start] : tokens[start-1], ". or operator expected") };
+ }
+ }
+ return expr;
+ }
+
+ // Parse a program
+ function parseProgram(thread, string, options) {
+ options = options ? options : {};
+ options.from = options.from ? options.from : "$tau-js";
+ options.reconsult = options.reconsult !== undefined ? options.reconsult : true;
+ var tokenizer = new Tokenizer( thread );
+ var reconsulted = {};
+ var indicator;
+ tokenizer.new_text( string );
+ var n = 0;
+ var tokens = tokenizer.get_tokens( n );
+ do {
+ if( tokens === null || !tokens[n] ) break;
+ var expr = parseRule(thread, tokens, n);
+ if( expr.type === ERROR ) {
+ return new Term("throw", [expr.value]);
+ } else if(expr.value.body === null && expr.value.head.indicator === "?-/1") {
+ var n_thread = new Thread( thread.session );
+ n_thread.add_goal( expr.value.head.args[0] );
+ n_thread.answer( function( answer ) {
+ if( pl.type.is_error( answer ) ) {
+ thread.throw_warning( answer.args[0] );
+ } else if( answer === false || answer === null ) {
+ thread.throw_warning( pl.warning.failed_goal( expr.value.head.args[0], expr.len ) );
+ }
+ } );
+ n = expr.len;
+ var result = true;
+ } else if(expr.value.body === null && expr.value.head.indicator === ":-/1") {
+ var result = thread.run_directive(expr.value.head.args[0]);
+ n = expr.len;
+ if(expr.value.head.args[0].indicator === "char_conversion/2") {
+ tokens = tokenizer.get_tokens( n );
+ n = 0;
+ }
+ } else {
+ indicator = expr.value.head.indicator;
+ if( options.reconsult !== false && reconsulted[indicator] !== true && !thread.is_multifile_predicate( indicator ) ) {
+ thread.session.rules[indicator] = filter( thread.session.rules[indicator] || [], function( rule ) { return rule.dynamic; } );
+ reconsulted[indicator] = true;
+ }
+ var result = thread.add_rule(expr.value, options);
+ n = expr.len;
+ }
+ if(!result) {
+ return result;
+ }
+ } while( true );
+ return true;
+ }
+
+ // Parse a query
+ function parseQuery(thread, string) {
+ var tokenizer = new Tokenizer( thread );
+ tokenizer.new_text( string );
+ var n = 0;
+ do {
+ var tokens = tokenizer.get_tokens( n );
+ if( tokens === null ) break;
+ var expr = parseExpr(thread, tokens, 0, thread.__get_max_priority(), false);
+ if(expr.type !== ERROR) {
+ var expr_position = expr.len;
+ var tokens_pos = expr_position;
+ if(tokens[expr_position] && tokens[expr_position].name === "atom" && tokens[expr_position].raw === ".") {
+ thread.add_goal( body_conversion(expr.value) );
+ } else {
+ var token = tokens[expr_position];
+ return new Term("throw", [pl.error.syntax(token ? token : tokens[expr_position-1], ". or operator expected", !token)] );
+ }
+
+ n = expr.len + 1;
+ } else {
+ return new Term("throw", [expr.value]);
+ }
+ } while( true );
+ return true;
+ }
+
+
+
+ // UTILS
+
+ // Rule to DCG
+ function rule_to_dcg(rule, thread) {
+ rule = rule.rename( thread );
+ var begin = thread.next_free_variable();
+ var dcg = body_to_dcg( rule.body, begin, thread );
+ if( dcg.error ) return dcg.value;
+ rule.body = dcg.value;
+ rule.head.args = rule.head.args.concat([begin,dcg.variable]);
+ rule.head = new Term(rule.head.id, rule.head.args);
+ return rule;
+ }
+
+ // Body to DCG
+ function body_to_dcg(expr, last, thread) {
+ var free;
+ if( pl.type.is_term( expr ) && expr.indicator === "!/0" ) {
+ return {
+ value: expr,
+ variable: last,
+ error: false
+ };
+ } else if( pl.type.is_term( expr ) && expr.indicator === ",/2" ) {
+ var left = body_to_dcg(expr.args[0], last, thread);
+ if( left.error ) return left;
+ var right = body_to_dcg(expr.args[1], left.variable, thread);
+ if( right.error ) return right;
+ return {
+ value: new Term(',', [left.value, right.value]),
+ variable: right.variable,
+ error: false
+ };
+ } else if( pl.type.is_term( expr ) && expr.indicator === "{}/1" ) {
+ return {
+ value: expr.args[0],
+ variable: last,
+ error: false
+ };
+ } else if( pl.type.is_empty_list( expr ) ) {
+ return {
+ value: new Term("true", []),
+ variable: last,
+ error: false
+ };
+ } else if( pl.type.is_list( expr ) ) {
+ free = thread.next_free_variable();
+ var pointer = expr;
+ var prev;
+ while( pointer.indicator === "./2" ) {
+ prev = pointer;
+ pointer = pointer.args[1];
+ }
+ if( pl.type.is_variable( pointer ) ) {
+ return {
+ value: pl.error.instantiation("DCG"),
+ variable: last,
+ error: true
+ };
+ } else if( !pl.type.is_empty_list( pointer ) ) {
+ return {
+ value: pl.error.type("list", expr, "DCG"),
+ variable: last,
+ error: true
+ };
+ } else {
+ prev.args[1] = free;
+ return {
+ value: new Term("=", [last, expr]),
+ variable: free,
+ error: false
+ };
+ }
+ } else if( pl.type.is_callable( expr ) ) {
+ free = thread.next_free_variable();
+ expr.args = expr.args.concat([last,free]);
+ expr = new Term( expr.id, expr.args );
+ return {
+ value: expr,
+ variable: free,
+ error: false
+ };
+ } else {
+ return {
+ value: pl.error.type( "callable", expr, "DCG" ),
+ variable: last,
+ error: true
+ };
+ }
+ }
+
+ // Body conversion
+ function body_conversion( expr ) {
+ if( pl.type.is_variable( expr ) )
+ return new Term( "call", [expr] );
+ else if( pl.type.is_term( expr ) && [",/2", ";/2", "->/2"].indexOf(expr.indicator) !== -1 )
+ return new Term( expr.id, [body_conversion( expr.args[0] ), body_conversion( expr.args[1] )] );
+ return expr;
+ }
+
+ // List to Prolog list
+ function arrayToList( array, cons ) {
+ var list = cons ? cons : new pl.type.Term( "[]", [] );
+ for(var i = array.length-1; i >= 0; i-- )
+ list = new pl.type.Term( ".", [array[i], list] );
+ return list;
+ }
+
+ // Remove element from array
+ function remove( array, element ) {
+ for( var i = array.length - 1; i >= 0; i-- ) {
+ if( array[i] === element ) {
+ array.splice(i, 1);
+ }
+ }
+ }
+
+ // Remove duplicate elements
+ function nub( array ) {
+ var seen = {};
+ var unique = [];
+ for( var i = 0; i < array.length; i++ ) {
+ if( !(array[i] in seen) ) {
+ unique.push( array[i] );
+ seen[array[i]] = true;
+ }
+ }
+ return unique;
+ }
+
+ // Retract a rule
+ function retract( thread, point, indicator, rule ) {
+ if( thread.session.rules[indicator] !== null ) {
+ for( var i = 0; i < thread.session.rules[indicator].length; i++ ) {
+ if( thread.session.rules[indicator][i] === rule ) {
+ thread.session.rules[indicator].splice( i, 1 );
+ thread.success( point );
+ break;
+ }
+ }
+ }
+ }
+
+ // call/n
+ function callN( n ) {
+ return function ( thread, point, atom ) {
+ var closure = atom.args[0], args = atom.args.slice(1, n);
+ if( pl.type.is_variable( closure ) ) {
+ thread.throw_error( pl.error.instantiation( thread.level ) );
+ } else if( !pl.type.is_callable( closure ) ) {
+ thread.throw_error( pl.error.type( "callable", closure, thread.level ) );
+ } else {
+ var goal = new Term( closure.id, closure.args.concat( args ) );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ }
+ };
+ }
+
+ // String to indicator
+ function str_indicator( str ) {
+ for( var i = str.length - 1; i >= 0; i-- )
+ if( str.charAt(i) === "/" )
+ return new Term( "/", [new Term( str.substring(0, i) ), new Num( parseInt(str.substring(i+1)), false )] );
+ }
+
+
+
+ // PROLOG OBJECTS
+
+ // Variables
+ function Var( id ) {
+ this.id = id;
+ }
+
+ // Numbers
+ function Num( value, is_float ) {
+ this.is_float = is_float !== undefined ? is_float : parseInt( value ) !== value;
+ this.value = this.is_float ? value : parseInt( value );
+ }
+
+ // Terms
+ var term_ref = 0;
+ function Term( id, args, ref ) {
+ this.ref = ref || ++term_ref;
+ this.id = id;
+ this.args = args || [];
+ this.indicator = id + "/" + this.args.length;
+ }
+
+ // Streams
+ var stream_ref = 0;
+ function Stream( stream, mode, alias, type, reposition, eof_action ) {
+ this.id = stream_ref++;
+ this.stream = stream;
+ this.mode = mode; // "read" or "write" or "append"
+ this.alias = alias;
+ this.type = type !== undefined ? type : "text"; // "text" or "binary"
+ this.reposition = reposition !== undefined ? reposition : true; // true or false
+ this.eof_action = eof_action !== undefined ? eof_action : "eof_code"; // "error" or "eof_code" or "reset"
+ this.position = this.mode === "append" ? "end_of_stream" : 0;
+ this.output = this.mode === "write" || this.mode === "append";
+ this.input = this.mode === "read";
+ }
+
+ // Substitutions
+ function Substitution( links ) {
+ links = links || {};
+ this.links = links;
+ }
+
+ // States
+ function State( goal, subs, parent ) {
+ subs = subs || new Substitution();
+ parent = parent || null;
+ this.goal = goal;
+ this.substitution = subs;
+ this.parent = parent;
+ }
+
+ // Rules
+ function Rule( head, body, dynamic ) {
+ this.head = head;
+ this.body = body;
+ this.dynamic = dynamic ? dynamic : false;
+ }
+
+ // Session
+ function Session( limit ) {
+ limit = limit === undefined || limit <= 0 ? 1000 : limit;
+ this.rules = {};
+ this.src_predicates = {};
+ this.rename = 0;
+ this.modules = [];
+ this.thread = new Thread( this );
+ this.total_threads = 1;
+ this.renamed_variables = {};
+ this.public_predicates = {};
+ this.multifile_predicates = {};
+ this.limit = limit;
+ this.streams = {
+ "user_input": new Stream(
+ true && module.exports ? nodejs_user_input : tau_user_input,
+ "read", "user_input", "text", false, "reset" ),
+ "user_output": new Stream(
+ true && module.exports ? nodejs_user_output : tau_user_output,
+ "write", "user_output", "text", false, "eof_code" )
+ };
+ this.file_system = true && module.exports ? nodejs_file_system : tau_file_system;
+ this.standard_input = this.streams["user_input"];
+ this.standard_output = this.streams["user_output"];
+ this.current_input = this.streams["user_input"];
+ this.current_output = this.streams["user_output"];
+ this.format_success = function( state ) { return state.substitution; };
+ this.format_error = function( state ) { return state.goal; };
+ this.flag = {
+ bounded: pl.flag.bounded.value,
+ max_integer: pl.flag.max_integer.value,
+ min_integer: pl.flag.min_integer.value,
+ integer_rounding_function: pl.flag.integer_rounding_function.value,
+ char_conversion: pl.flag.char_conversion.value,
+ debug: pl.flag.debug.value,
+ max_arity: pl.flag.max_arity.value,
+ unknown: pl.flag.unknown.value,
+ double_quotes: pl.flag.double_quotes.value,
+ occurs_check: pl.flag.occurs_check.value,
+ dialect: pl.flag.dialect.value,
+ version_data: pl.flag.version_data.value,
+ nodejs: pl.flag.nodejs.value
+ };
+ this.__loaded_modules = [];
+ this.__char_conversion = {};
+ this.__operators = {
+ 1200: { ":-": ["fx", "xfx"], "-->": ["xfx"], "?-": ["fx"] },
+ 1100: { ";": ["xfy"] },
+ 1050: { "->": ["xfy"] },
+ 1000: { ",": ["xfy"] },
+ 900: { "\\+": ["fy"] },
+ 700: {
+ "=": ["xfx"], "\\=": ["xfx"], "==": ["xfx"], "\\==": ["xfx"],
+ "@<": ["xfx"], "@=<": ["xfx"], "@>": ["xfx"], "@>=": ["xfx"],
+ "=..": ["xfx"], "is": ["xfx"], "=:=": ["xfx"], "=\\=": ["xfx"],
+ "<": ["xfx"], "=<": ["xfx"], ">": ["xfx"], ">=": ["xfx"]
+ },
+ 600: { ":": ["xfy"] },
+ 500: { "+": ["yfx"], "-": ["yfx"], "/\\": ["yfx"], "\\/": ["yfx"] },
+ 400: {
+ "*": ["yfx"], "/": ["yfx"], "//": ["yfx"], "rem": ["yfx"],
+ "mod": ["yfx"], "<<": ["yfx"], ">>": ["yfx"]
+ },
+ 200: { "**": ["xfx"], "^": ["xfy"], "-": ["fy"], "+": ["fy"], "\\": ["fy"] }
+ };
+ }
+
+ // Threads
+ function Thread( session ) {
+ this.epoch = Date.now();
+ this.session = session;
+ this.session.total_threads++;
+ this.total_steps = 0;
+ this.cpu_time = 0;
+ this.cpu_time_last = 0;
+ this.points = [];
+ this.debugger = false;
+ this.debugger_states = [];
+ this.level = "top_level/0";
+ this.__calls = [];
+ this.current_limit = this.session.limit;
+ this.warnings = [];
+ }
+
+ // Modules
+ function Module( id, rules, exports ) {
+ this.id = id;
+ this.rules = rules;
+ this.exports = exports;
+ pl.module[id] = this;
+ }
+
+ Module.prototype.exports_predicate = function( indicator ) {
+ return this.exports.indexOf( indicator ) !== -1;
+ };
+
+
+
+ // UNIFY PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.unify = function( obj, occurs_check ) {
+ if( occurs_check && indexOf( obj.variables(), this.id ) !== -1 && !pl.type.is_variable( obj ) ) {
+ return null;
+ }
+ var links = {};
+ links[this.id] = obj;
+ return new Substitution( links );
+ };
+
+ // Numbers
+ Num.prototype.unify = function( obj, _ ) {
+ if( pl.type.is_number( obj ) && this.value === obj.value && this.is_float === obj.is_float ) {
+ return new Substitution();
+ }
+ return null;
+ };
+
+ // Terms
+ Term.prototype.unify = function( obj, occurs_check ) {
+ if( pl.type.is_term( obj ) && this.indicator === obj.indicator ) {
+ var subs = new Substitution();
+ for( var i = 0; i < this.args.length; i++ ) {
+ var mgu = pl.unify( this.args[i].apply( subs ), obj.args[i].apply( subs ), occurs_check );
+ if( mgu === null )
+ return null;
+ for( var x in mgu.links )
+ subs.links[x] = mgu.links[x];
+ subs = subs.apply( mgu );
+ }
+ return subs;
+ }
+ return null;
+ };
+
+ // Streams
+ Stream.prototype.unify = function( obj, occurs_check ) {
+ if( pl.type.is_stream( obj ) && this.id === obj.id ) {
+ return new Substitution();
+ }
+ return null;
+ };
+
+
+
+ // PROLOG OBJECTS TO STRING
+
+ // Variables
+ Var.prototype.toString = function( _ ) {
+ return this.id;
+ };
+
+ // Numbers
+ Num.prototype.toString = function( _ ) {
+ return this.is_float && indexOf(this.value.toString(), ".") === -1 ? this.value + ".0" : this.value.toString();
+ };
+
+ // Terms
+ Term.prototype.toString = function( options, priority, from ) {
+ options = !options ? {} : options;
+ options.quoted = options.quoted === undefined ? true: options.quoted;
+ options.ignore_ops = options.ignore_ops === undefined ? false : options.ignore_ops;
+ options.numbervars = options.numbervars === undefined ? false : options.numbervars;
+ priority = priority === undefined ? 1200 : priority;
+ from = from === undefined ? "" : from;
+ if( options.numbervars && this.indicator === "$VAR/1" && pl.type.is_integer( this.args[0] ) && this.args[0].value >= 0 ) {
+ var i = this.args[0].value;
+ var number = Math.floor( i/26 );
+ var letter = i % 26;
+ return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[letter] + (number !== 0 ? number : "");
+ }
+ switch( this.indicator ){
+ case "[]/0":
+ case "{}/0":
+ case "!/0":
+ return this.id;
+ case "{}/1":
+ return "{" + this.args[0].toString( options ) + "}";
+ case "./2":
+ var list = "[" + this.args[0].toString( options );
+ var pointer = this.args[1];
+ while( pointer.indicator === "./2" ) {
+ list += ", " + pointer.args[0].toString( options );
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator !== "[]/0" ) {
+ list += "|" + pointer.toString( options );
+ }
+ list += "]";
+ return list;
+ case ",/2":
+ return "(" + this.args[0].toString( options ) + ", " + this.args[1].toString( options ) + ")";
+ default:
+ var id = this.id;
+ var operator = options.session ? options.session.lookup_operator( this.id, this.args.length ) : null;
+ if( options.session === undefined || options.ignore_ops || operator === null ) {
+ if( options.quoted && ! /^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test( id ) && id !== "{}" && id !== "[]" )
+ id = "'" + redoEscape(id) + "'";
+ return id + (this.args.length ? "(" + map( this.args,
+ function(x) { return x.toString( options); }
+ ).join(", ") + ")" : "");
+ } else {
+ var cond = operator.priority > priority.priority || operator.priority === priority.priority && (
+ operator.class === "xfy" && this.indicator !== priority.indicator ||
+ operator.class === "yfx" && this.indicator !== priority.indicator ||
+ this.indicator === priority.indicator && operator.class === "yfx" && from === "right" ||
+ this.indicator === priority.indicator && operator.class === "xfy" && from === "left");
+ operator.indicator = this.indicator;
+ var lpar = cond ? "(" : "";
+ var rpar = cond ? ")" : "";
+ if( this.args.length === 0 ) {
+ return "(" + this.id + ")";
+ } else if( ["fy","fx"].indexOf( operator.class) !== -1 ) {
+ return lpar + id + " " + this.args[0].toString( options, operator ) + rpar;
+ } else if( ["yf","xf"].indexOf( operator.class) !== -1 ) {
+ return lpar + this.args[0].toString( options, operator ) + " " + id + rpar;
+ } else {
+ return lpar + this.args[0].toString( options, operator, "left" ) + " " + this.id + " " + this.args[1].toString( options, operator, "right" ) + rpar;
+ }
+ }
+ }
+ };
+
+ // Streams
+ Stream.prototype.toString = function( _ ) {
+ return "(" + this.id + ")";
+ };
+
+ // Substitutions
+ Substitution.prototype.toString = function( options ) {
+ var str = "{";
+ for( var link in this.links ) {
+ if(!this.links.hasOwnProperty(link)) continue;
+ if( str !== "{" ) {
+ str += ", ";
+ }
+ str += link + "/" + this.links[link].toString( options );
+ }
+ str += "}";
+ return str;
+ };
+
+ // States
+ State.prototype.toString = function( options ) {
+ if( this.goal === null ) {
+ return "<" + this.substitution.toString( options ) + ">";
+ } else {
+ return "<" + this.goal.toString( options ) + ", " + this.substitution.toString( options ) + ">";
+ }
+ };
+
+ // Rules
+ Rule.prototype.toString = function( options ) {
+ if( !this.body ) {
+ return this.head.toString( options ) + ".";
+ } else {
+ return this.head.toString( options ) + " :- " + this.body.toString( options ) + ".";
+ }
+ };
+
+ // Session
+ Session.prototype.toString = function( options ) {
+ var str = "";
+ for(var i = 0; i < this.modules.length; i++) {
+ str += ":- use_module(library(" + this.modules[i] + ")).\n";
+ }
+ str += "\n";
+ for(key in this.rules) {
+ for(i = 0; i < this.rules[key].length; i++) {
+ str += this.rules[key][i].toString( options );
+ str += "\n";
+ }
+ }
+ return str;
+ };
+
+
+
+ // CLONE PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.clone = function() {
+ return new Var( this.id );
+ };
+
+ // Numbers
+ Num.prototype.clone = function() {
+ return new Num( this.value, this.is_float );
+ };
+
+ // Terms
+ Term.prototype.clone = function() {
+ return new Term( this.id, map( this.args, function( arg ) {
+ return arg.clone();
+ } ) );
+ };
+
+ // Streams
+ Stream.prototype.clone = function() {
+ return new Stram( this.stream, this.mode, this.alias, this.type, this.reposition, this.eof_action );
+ };
+
+ // Substitutions
+ Substitution.prototype.clone = function() {
+ var links = {};
+ for( var link in this.links ) {
+ if(!this.links.hasOwnProperty(link)) continue;
+ links[link] = this.links[link].clone();
+ }
+ return new Substitution( links );
+ };
+
+ // States
+ State.prototype.clone = function() {
+ return new State( this.goal.clone(), this.substitution.clone(), this.parent );
+ };
+
+ // Rules
+ Rule.prototype.clone = function() {
+ return new Rule( this.head.clone(), this.body !== null ? this.body.clone() : null );
+ };
+
+
+
+ // COMPARE PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.equals = function( obj ) {
+ return pl.type.is_variable( obj ) && this.id === obj.id;
+ };
+
+ // Numbers
+ Num.prototype.equals = function( obj ) {
+ return pl.type.is_number( obj ) && this.value === obj.value && this.is_float === obj.is_float;
+ };
+
+ // Terms
+ Term.prototype.equals = function( obj ) {
+ if( !pl.type.is_term( obj ) || this.indicator !== obj.indicator ) {
+ return false;
+ }
+ for( var i = 0; i < this.args.length; i++ ) {
+ if( !this.args[i].equals( obj.args[i] ) ) {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ // Streams
+ Stream.prototype.equals = function( obj ) {
+ return pl.type.is_stream( obj ) && this.id === obj.id;
+ };
+
+ // Substitutions
+ Substitution.prototype.equals = function( obj ) {
+ var link;
+ if( !pl.type.is_substitution( obj ) ) {
+ return false;
+ }
+ for( link in this.links ) {
+ if(!this.links.hasOwnProperty(link)) continue;
+ if( !obj.links[link] || !this.links[link].equals( obj.links[link] ) ) {
+ return false;
+ }
+ }
+ for( link in obj.links ) {
+ if(!obj.links.hasOwnProperty(link)) continue;
+ if( !this.links[link] ) {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ // States
+ State.prototype.equals = function( obj ) {
+ return pl.type.is_state( obj ) && this.goal.equals( obj.goal ) && this.substitution.equals( obj.substitution ) && this.parent === obj.parent;
+ };
+
+ // Rules
+ Rule.prototype.equals = function( obj ) {
+ return pl.type.is_rule( obj ) && this.head.equals( obj.head ) && (this.body === null && obj.body === null || this.body !== null && this.body.equals( obj.body ));
+ };
+
+
+
+ // RENAME VARIABLES OF PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.rename = function( thread ) {
+ return thread.get_free_variable( this );
+ };
+
+ // Numbers
+ Num.prototype.rename = function( _ ) {
+ return this;
+ };
+
+ // Terms
+ Term.prototype.rename = function( thread ) {
+ return new Term( this.id, map( this.args, function( arg ) {
+ return arg.rename( thread );
+ } ) );
+ };
+
+ // Streams
+ Stream.prototype.rename = function( thread ) {
+ return this;
+ };
+
+ // Rules
+ Rule.prototype.rename = function( thread ) {
+ return new Rule( this.head.rename( thread ), this.body !== null ? this.body.rename( thread ) : null );
+ };
+
+
+
+ // GET VARIABLES FROM PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.variables = function() {
+ return [this.id];
+ };
+
+ // Numbers
+ Num.prototype.variables = function() {
+ return [];
+ };
+
+ // Terms
+ Term.prototype.variables = function() {
+ return [].concat.apply( [], map( this.args, function( arg ) {
+ return arg.variables();
+ } ) );
+ };
+
+ // Streams
+ Stream.prototype.variables = function() {
+ return [];
+ };
+
+ // Rules
+ Rule.prototype.variables = function() {
+ if( this.body === null ) {
+ return this.head.variables();
+ } else {
+ return this.head.variables().concat( this.body.variables() );
+ }
+ };
+
+
+
+ // APPLY SUBSTITUTIONS TO PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.apply = function( subs ) {
+ if( subs.lookup( this.id ) ) {
+ return subs.lookup( this.id );
+ }
+ return this;
+ };
+
+ // Numbers
+ Num.prototype.apply = function( _ ) {
+ return this;
+ };
+
+ // Terms
+ Term.prototype.apply = function( subs ) {
+ if( this.indicator === "./2" ) {
+ var arr = [];
+ var pointer = this;
+ while( pointer.indicator === "./2" ) {
+ arr.push( pointer.args[0].apply( subs ) );
+ pointer = pointer.args[1];
+ }
+ var list = pointer.apply( subs );
+ for(var i = arr.length-1; i >= 0; i--) {
+ list = new Term( ".", [arr[i], list] );
+ }
+ return list;
+ }
+ return new Term( this.id, map( this.args, function( arg ) {
+ return arg.apply( subs );
+ } ), this.ref );
+ };
+
+ // Streams
+ Stream.prototype.apply = function( _ ) {
+ return this;
+ };
+
+ // Rules
+ Rule.prototype.apply = function( subs ) {
+ return new Rule( this.head.apply( subs ), this.body !== null ? this.body.apply( subs ) : null );
+ };
+
+ // Substitutions
+ Substitution.prototype.apply = function( subs ) {
+ var link, links = {};
+ for( link in this.links ) {
+ if(!this.links.hasOwnProperty(link)) continue;
+ links[link] = this.links[link].apply(subs);
+ }
+ return new Substitution( links );
+ };
+
+
+
+ // SELECTION FUNCTION
+
+ // Select term
+ Term.prototype.select = function() {
+ var pointer = this;
+ while( pointer.indicator === ",/2" )
+ pointer = pointer.args[0];
+ return pointer;
+ };
+
+ // Replace term
+ Term.prototype.replace = function( expr ) {
+ if( this.indicator === ",/2" ) {
+ if( this.args[0].indicator === ",/2" ) {
+ return new Term( ",", [this.args[0].replace( expr ), this.args[1]] );
+ } else {
+ return expr === null ? this.args[1] : new Term( ",", [expr, this.args[1]] );
+ }
+ } else {
+ return expr;
+ }
+ };
+
+ // Search term
+ Term.prototype.search = function( expr ) {
+ if( pl.type.is_term( expr ) && expr.ref !== undefined && this.ref === expr.ref )
+ return true;
+ for( var i = 0; i < this.args.length; i++ )
+ if( pl.type.is_term( this.args[i] ) && this.args[i].search( expr ) )
+ return true;
+ return false;
+ };
+
+
+
+ // PROLOG SESSIONS AND THREADS
+
+ // Get current input
+ Session.prototype.get_current_input = function() {
+ return this.current_input;
+ };
+ Thread.prototype.get_current_input = function() {
+ return this.session.get_current_input();
+ };
+
+ // Get current output
+ Session.prototype.get_current_output = function() {
+ return this.current_output;
+ };
+ Thread.prototype.get_current_output = function() {
+ return this.session.get_current_output();
+ };
+
+ // Set current input
+ Session.prototype.set_current_input = function( input ) {
+ this.current_input = input;
+ };
+ Thread.prototype.set_current_input = function( input ) {
+ return this.session.set_current_input( input );
+ };
+
+ // Set current output
+ Session.prototype.set_current_output = function( output ) {
+ this.current_input = output;
+ };
+ Thread.prototype.set_current_output = function( output ) {
+ return this.session.set_current_output( output);
+ };
+
+ // Get stream by alias
+ Session.prototype.get_stream_by_alias = function( alias ) {
+ return this.streams[alias];
+ };
+ Thread.prototype.get_stream_by_alias = function( alias ) {
+ return this.session.get_stream_by_alias( alias );
+ };
+
+ // Open file
+ Session.prototype.file_system_open = function( path, type, mode ) {
+ return this.file_system.open( path, type, mode );
+ };
+ Thread.prototype.file_system_open = function( path, type, mode ) {
+ return this.session.file_system_open( path, type, mode );
+ };
+
+ // Get conversion of the char
+ Session.prototype.get_char_conversion = function( char ) {
+ return this.__char_conversion[char] || char;
+ };
+ Thread.prototype.get_char_conversion = function( char ) {
+ return this.session.get_char_conversion( char );
+ };
+
+ // Parse an expression
+ Session.prototype.parse = function( string ) {
+ return this.thread.parse( string );
+ };
+ Thread.prototype.parse = function( string ) {
+ var tokenizer = new Tokenizer( this );
+ tokenizer.new_text( string );
+ var tokens = tokenizer.get_tokens();
+ if( tokens === null )
+ return false;
+ var expr = parseExpr(this, tokens, 0, this.__get_max_priority(), false);
+ if( expr.len !== tokens.length )
+ return false;
+ return { value: expr.value, expr: expr, tokens: tokens };
+ };
+
+ // Get flag value
+ Session.prototype.get_flag = function( flag ) {
+ return this.flag[flag];
+ };
+ Thread.prototype.get_flag = function( flag ) {
+ return this.session.get_flag( flag );
+ };
+
+ // Add a rule
+ Session.prototype.add_rule = function( rule, options ) {
+ options = options ? options : {};
+ options.from = options.from ? options.from : "$tau-js";
+ this.src_predicates[rule.head.indicator] = options.from;
+ if(!this.rules[rule.head.indicator]) {
+ this.rules[rule.head.indicator] = [];
+ }
+ this.rules[rule.head.indicator].push(rule);
+ if( !this.public_predicates.hasOwnProperty( rule.head.indicator ) )
+ this.public_predicates[rule.head.indicator] = false;
+ return true;
+ };
+ Thread.prototype.add_rule = function( rule, options ) {
+ return this.session.add_rule( rule, options );
+ };
+
+ // Run a directive
+ Session.prototype.run_directive = function( directive ) {
+ this.thread.run_directive( directive );
+ };
+ Thread.prototype.run_directive = function( directive ) {
+ if( pl.type.is_directive( directive ) ) {
+ pl.directive[directive.indicator]( this, directive );
+ return true;
+ }
+ return false;
+ };
+
+ // Get maximum priority of the operators
+ Session.prototype.__get_max_priority = function() {
+ return "1200";
+ };
+ Thread.prototype.__get_max_priority = function() {
+ return this.session.__get_max_priority();
+ };
+
+ // Get next priority of the operators
+ Session.prototype.__get_next_priority = function( priority ) {
+ var max = 0;
+ priority = parseInt( priority );
+ for( var key in this.__operators ) {
+ if( !this.__operators.hasOwnProperty(key) ) continue;
+ var n = parseInt(key);
+ if( n > max && n < priority ) max = n;
+ }
+ return max.toString();
+ };
+ Thread.prototype.__get_next_priority = function( priority ) {
+ return this.session.__get_next_priority( priority );
+ };
+
+ // Get classes of an operator
+ Session.prototype.__lookup_operator_classes = function( priority, operator ) {
+ if( this.__operators.hasOwnProperty( priority ) && this.__operators[priority][operator] instanceof Array ) {
+ return this.__operators[priority][operator] || false;
+ }
+ return false;
+ };
+ Thread.prototype.__lookup_operator_classes = function( priority, operator ) {
+ return this.session.__lookup_operator_classes( priority, operator );
+ };
+
+ // Get operator
+ Session.prototype.lookup_operator = function( name, arity ) {
+ for(var p in this.__operators)
+ if(this.__operators[p][name])
+ for(var i = 0; i < this.__operators[p][name].length; i++)
+ if( arity === 0 || this.__operators[p][name][i].length === arity+1 )
+ return {priority: p, class: this.__operators[p][name][i]};
+ return null;
+ }
+ Thread.prototype.lookup_operator = function( name, arity ) {
+ return this.session.lookup_operator( name, arity );
+ }
+
+ // Throw a warning
+ Session.prototype.throw_warning = function( warning ) {
+ this.thread.throw_warning( warning );
+ };
+ Thread.prototype.throw_warning = function( warning ) {
+ this.warnings.push( warning );
+ };
+
+ // Get warnings
+ Session.prototype.get_warnings = function() {
+ return this.thread.get_warnings();
+ };
+ Thread.prototype.get_warnings = function() {
+ return this.warnings;
+ };
+
+ // Add a goal
+ Session.prototype.add_goal = function( goal, unique ) {
+ this.thread.add_goal( goal, unique );
+ };
+ Thread.prototype.add_goal = function( goal, unique, parent ) {
+ parent = parent ? parent : null;
+ if( unique === true )
+ this.points = [];
+ var vars = goal.variables();
+ var links = {};
+ for( var i = 0; i < vars.length; i++ )
+ links[vars[i]] = new Var(vars[i]);
+ this.points.push( new State( goal, new Substitution(links), parent ) );
+ };
+
+ // Consult a program from a string
+ Session.prototype.consult = function( program, options ) {
+ return this.thread.consult( program, options );
+ };
+ Thread.prototype.consult = function( program, options ) {
+ var string = "";
+ if( typeof program === "string" ) {
+ string = program;
+ var len = string.length;
+ if( string.substring( len-3, len ) === ".pl" && document.getElementById( string ) ) {
+ var script = document.getElementById( string );
+ var type = script.getAttribute( "type" );
+ if( type !== null && type.replace( / /g, "" ).toLowerCase() === "text/prolog" ) {
+ string = script.text;
+ }
+ }
+ } else if( program.nodeName ) {
+ switch( program.nodeName.toLowerCase() ) {
+ case "input":
+ case "textarea":
+ string = program.value;
+ break;
+ default:
+ string = program.innerHTML;
+ break;
+ }
+ } else {
+ return false;
+ }
+ this.warnings = [];
+ return parseProgram( this, string, options );
+ };
+
+ // Query goal from a string (without ?-)
+ Session.prototype.query = function( string ) {
+ return this.thread.query( string );
+ };
+ Thread.prototype.query = function( string ) {
+ this.points = [];
+ this.debugger_points = [];
+ return parseQuery( this, string );
+ };
+
+ // Get first choice point
+ Session.prototype.head_point = function() {
+ return this.thread.head_point();
+ };
+ Thread.prototype.head_point = function() {
+ return this.points[this.points.length-1];
+ };
+
+ // Get free variable
+ Session.prototype.get_free_variable = function( variable ) {
+ return this.thread.get_free_variable( variable );
+ };
+ Thread.prototype.get_free_variable = function( variable ) {
+ var variables = [];
+ if( variable.id === "_" || this.session.renamed_variables[variable.id] === undefined ) {
+ this.session.rename++;
+ if( this.points.length > 0 )
+ variables = this.head_point().substitution.domain();
+ while( indexOf( variables, pl.format_variable( this.session.rename ) ) !== -1 ) {
+ this.session.rename++;
+ }
+ if( variable.id === "_" ) {
+ return new Var( pl.format_variable( this.session.rename ) );
+ } else {
+ this.session.renamed_variables[variable.id] = pl.format_variable( this.session.rename );
+ }
+ }
+ return new Var( this.session.renamed_variables[variable.id] );
+ };
+
+ // Get next free variable
+ Session.prototype.next_free_variable = function() {
+ return this.thread.next_free_variable();
+ };
+ Thread.prototype.next_free_variable = function() {
+ this.session.rename++;
+ var variables = [];
+ if( this.points.length > 0 )
+ variables = this.head_point().substitution.domain();
+ while( indexOf( variables, pl.format_variable( this.session.rename ) ) !== -1 ) {
+ this.session.rename++;
+ }
+ return new Var( pl.format_variable( this.session.rename ) );
+ };
+
+ // Check if a predicate is public
+ Session.prototype.is_public_predicate = function( indicator ) {
+ return !this.public_predicates.hasOwnProperty( indicator ) || this.public_predicates[indicator] === true;
+ };
+ Thread.prototype.is_public_predicate = function( indicator ) {
+ return this.session.is_public_predicate( indicator );
+ };
+
+ // Check if a predicate is multifile
+ Session.prototype.is_multifile_predicate = function( indicator ) {
+ return this.multifile_predicates.hasOwnProperty( indicator ) && this.multifile_predicates[indicator] === true;
+ };
+ Thread.prototype.is_multifile_predicate = function( indicator ) {
+ return this.session.is_multifile_predicate( indicator );
+ };
+
+ // Insert states at the beginning
+ Session.prototype.prepend = function( states ) {
+ return this.thread.prepend( states );
+ };
+ Thread.prototype.prepend = function( states ) {
+ for(var i = states.length-1; i >= 0; i--)
+ this.points.push( states[i] );
+ };
+
+ // Remove the selected term and prepend the current state
+ Session.prototype.success = function( point, parent ) {
+ return this.thread.success( point, parent );
+ }
+ Thread.prototype.success = function( point, parent ) {
+ var parent = typeof parent === "undefined" ? point : parent;
+ this.prepend( [new State( point.goal.replace( null ), point.substitution, parent ) ] );
+ };
+
+ // Throw error
+ Session.prototype.throw_error = function( error ) {
+ return this.thread.throw_error( error );
+ };
+ Thread.prototype.throw_error = function( error ) {
+ this.prepend( [new State( new Term( "throw", [error] ), new Substitution(), null, null )] );
+ };
+
+ // Selection rule
+ Session.prototype.step_rule = function( mod, atom ) {
+ return this.thread.step_rule( mod, atom );
+ }
+ Thread.prototype.step_rule = function( mod, atom ) {
+ var name = atom.indicator;
+ if( mod === "user" )
+ mod = null;
+ if( mod === null && this.session.rules.hasOwnProperty(name) )
+ return this.session.rules[name];
+ var modules = mod === null ? this.session.modules : (indexOf(this.session.modules, mod) === -1 ? [] : [mod]);
+ for( var i = 0; i < modules.length; i++ ) {
+ var module = pl.module[modules[i]];
+ if( module.rules.hasOwnProperty(name) && (module.rules.hasOwnProperty(this.level) || module.exports_predicate(name)) )
+ return pl.module[modules[i]].rules[name];
+ }
+ return null;
+ };
+
+ // Resolution step
+ Session.prototype.step = function() {
+ return this.thread.step();
+ }
+ Thread.prototype.step = function() {
+ if( this.points.length === 0 ) {
+ return;
+ }
+ var asyn = false;
+ var point = this.points.pop();
+
+ if( this.debugger )
+ this.debugger_states.push( point );
+
+ if( pl.type.is_term( point.goal ) ) {
+
+ var atom = point.goal.select();
+ var mod = null;
+ var states = [];
+ if( atom !== null ) {
+
+ this.total_steps++;
+ var level = point;
+ while( level.parent !== null && level.parent.goal.search( atom ) )
+ level = level.parent;
+ this.level = level.parent === null ? "top_level/0" : level.parent.goal.select().indicator;
+
+ if( pl.type.is_term( atom ) && atom.indicator === ":/2" ) {
+ mod = atom.args[0].id;
+ atom = atom.args[1];
+ }
+
+ if( mod === null && pl.type.is_builtin( atom ) ) {
+ this.__call_indicator = atom.indicator;
+ asyn = pl.predicate[atom.indicator]( this, point, atom );
+ } else {
+ var srule = this.step_rule(mod, atom);
+ if( srule === null ) {
+ if( !this.session.rules.hasOwnProperty( atom.indicator ) ) {
+ if( this.get_flag( "unknown" ).id === "error" ) {
+ this.throw_error( pl.error.existence( "procedure", atom.indicator, this.level ) );
+ } else if( this.get_flag( "unknown" ).id === "warning" ) {
+ this.throw_warning( "unknown procedure " + atom.indicator + " (from " + this.level + ")" );
+ }
+ }
+ } else if( srule instanceof Function ) {
+ asyn = srule( this, point, atom );
+ } else {
+ for( var _rule in srule ) {
+ if(!srule.hasOwnProperty(_rule)) continue;
+ var rule = srule[_rule];
+ this.session.renamed_variables = {};
+ rule = rule.rename( this );
+ var occurs_check = this.get_flag( "occurs_check" ).indicator === "true/0";
+ var state = new State();
+ var mgu = pl.unify( atom, rule.head, occurs_check );
+ if( mgu !== null ) {
+ state.goal = point.goal.replace( rule.body );
+ if( state.goal !== null ) {
+ state.goal = state.goal.apply( mgu );
+ }
+ state.substitution = point.substitution.apply( mgu );
+ state.parent = point;
+ states.push( state );
+ }
+ }
+ this.prepend( states );
+ }
+ }
+ }
+ } else if( pl.type.is_variable( point.goal ) ) {
+ this.throw_error( pl.error.instantiation( this.level ) );
+ } else {
+ this.throw_error( pl.error.type( "callable", point.goal, this.level ) );
+ }
+ return asyn;
+ };
+
+ // Find next computed answer
+ Session.prototype.answer = function( success ) {
+ return this.thread.answer( success );
+ }
+ Thread.prototype.answer = function( success ) {
+ success = success || function( _ ) { };
+ this.__calls.push( success );
+ if( this.__calls.length > 1 ) {
+ return;
+ }
+ this.again();
+ };
+
+ // Find all computed answers
+ Session.prototype.answers = function( callback, max, after ) {
+ return this.thread.answers( callback, max, after );
+ }
+ Thread.prototype.answers = function( callback, max, after ) {
+ var answers = max || 1000;
+ var thread = this;
+ if( max <= 0 ) {
+ if(after)
+ after();
+ return;
+ }
+ this.answer( function( answer ) {
+ callback( answer );
+ if( answer !== false ) {
+ setTimeout( function() {
+ thread.answers( callback, max-1, after );
+ }, 1 );
+ } else if(after) {
+ after();
+ }
+ } );
+ };
+
+ // Again finding next computed answer
+ Session.prototype.again = function( reset_limit ) {
+ return this.thread.again( reset_limit );
+ };
+ Thread.prototype.again = function( reset_limit ) {
+ var answer;
+ var t0 = Date.now();
+ while( this.__calls.length > 0 ) {
+ this.warnings = [];
+ if( reset_limit !== false )
+ this.current_limit = this.session.limit;
+ while( this.current_limit > 0 && this.points.length > 0 && this.head_point().goal !== null && !pl.type.is_error( this.head_point().goal ) ) {
+ this.current_limit--;
+ if( this.step() === true ) {
+ return;
+ }
+ }
+ var t1 = Date.now();
+ this.cpu_time_last = t1-t0;
+ this.cpu_time += this.cpu_time_last;
+ var success = this.__calls.shift();
+ if( this.current_limit <= 0 ) {
+ success( null );
+ } else if( this.points.length === 0 ) {
+ success( false );
+ } else if( pl.type.is_error( this.head_point().goal ) ) {
+ answer = this.session.format_error( this.points.pop() );
+ this.points = [];
+ success( answer );
+ } else {
+ if( this.debugger )
+ this.debugger_states.push( this.head_point() );
+ answer = this.session.format_success( this.points.pop() );
+ success( answer );
+ }
+ }
+ };
+
+ // Unfolding transformation
+ Session.prototype.unfold = function( rule ) {
+ if(rule.body === null)
+ return false;
+ var head = rule.head;
+ var body = rule.body;
+ var atom = body.select();
+ var thread = new Thread( this );
+ var unfolded = [];
+ thread.add_goal( atom );
+ thread.step();
+ for( var i = thread.points.length-1; i >= 0; i-- ) {
+ var point = thread.points[i];
+ var head2 = head.apply( point.substitution );
+ var body2 = body.replace( point.goal );
+ if( body2 !== null )
+ body2 = body2.apply( point.substitution );
+ unfolded.push( new Rule( head2, body2 ) );
+ }
+ var rules = this.rules[head.indicator];
+ var index = indexOf( rules, rule );
+ if( unfolded.length > 0 && index !== -1 ) {
+ rules.splice.apply( rules, [index, 1].concat(unfolded) );
+ return true;
+ }
+ return false;
+ };
+ Thread.prototype.unfold = function(rule) {
+ return this.session.unfold(rule);
+ };
+
+
+
+ // INTERPRET EXPRESSIONS
+
+ // Variables
+ Var.prototype.interpret = function( thread ) {
+ return pl.error.instantiation( thread.level );
+ };
+
+ // Numbers
+ Num.prototype.interpret = function( thread ) {
+ return this;
+ };
+
+ // Terms
+ Term.prototype.interpret = function( thread ) {
+ if( pl.type.is_unitary_list( this ) ) {
+ return this.args[0].interpret( thread );
+ } else {
+ return pl.operate( thread, this );
+ }
+ };
+
+
+
+ // COMPARE PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.compare = function( obj ) {
+ if( this.id < obj.id ) {
+ return -1;
+ } else if( this.id > obj.id ) {
+ return 1;
+ } else {
+ return 0;
+ }
+ };
+
+ // Numbers
+ Num.prototype.compare = function( obj ) {
+ if( this.value === obj.value && this.is_float === obj.is_float ) {
+ return 0;
+ } else if( this.value < obj.value || this.value === obj.value && this.is_float && !obj.is_float ) {
+ return -1;
+ } else if( this.value > obj.value ) {
+ return 1;
+ }
+ };
+
+ // Terms
+ Term.prototype.compare = function( obj ) {
+ if( this.args.length < obj.args.length || this.args.length === obj.args.length && this.id < obj.id ) {
+ return -1;
+ } else if( this.args.length > obj.args.length || this.args.length === obj.args.length && this.id > obj.id ) {
+ return 1;
+ } else {
+ for( var i = 0; i < this.args.length; i++ ) {
+ var arg = pl.compare( this.args[i], obj.args[i] );
+ if( arg !== 0 ) {
+ return arg;
+ }
+ }
+ return 0;
+ }
+ };
+
+
+
+ // SUBSTITUTIONS
+
+ // Lookup variable
+ Substitution.prototype.lookup = function( variable ) {
+ if( this.links[variable] ) {
+ return this.links[variable];
+ } else {
+ return null;
+ }
+ };
+
+ // Filter variables
+ Substitution.prototype.filter = function( predicate ) {
+ var links = {};
+ for( var id in this.links ) {
+ if(!this.links.hasOwnProperty(id)) continue;
+ var value = this.links[id];
+ if( predicate( id, value ) ) {
+ links[id] = value;
+ }
+ }
+ return new Substitution( links );
+ };
+
+ // Exclude variables
+ Substitution.prototype.exclude = function( variables ) {
+ var links = {};
+ for( var variable in this.links ) {
+ if(!this.links.hasOwnProperty(variable)) continue;
+ if( indexOf( variables, variable ) === -1 ) {
+ links[variable] = this.links[variable];
+ }
+ }
+ return new Substitution( links );
+ };
+
+ // Add link
+ Substitution.prototype.add = function( variable, value ) {
+ this.links[variable] = value;
+ };
+
+ // Get domain
+ Substitution.prototype.domain = function( plain ) {
+ var f = plain === true ? function(x){return x;} : function(x){return new Var(x);};
+ var vars = [];
+ for( var x in this.links )
+ vars.push( f(x) );
+ return vars;
+ };
+
+
+
+ // GENERATE JAVASCRIPT CODE FROM PROLOG OBJECTS
+
+ // Variables
+ Var.prototype.compile = function() {
+ return 'new pl.type.Var("' + this.id.toString() + '")';
+ };
+
+ // Numbers
+ Num.prototype.compile = function() {
+ return 'new pl.type.Num(' + this.value.toString() + ', ' + this.is_float.toString() + ')';
+ };
+
+ // Terms
+ Term.prototype.compile = function() {
+ return 'new pl.type.Term("' + this.id.replace(/"/g, '\\"') + '", [' + map( this.args, function( arg ) {
+ return arg.compile();
+ } ) + '])';
+ };
+
+ // Rules
+ Rule.prototype.compile = function() {
+ return 'new pl.type.Rule(' + this.head.compile() + ', ' + (this.body === null ? 'null' : this.body.compile()) + ')';
+ };
+
+ // Sessions
+ Session.prototype.compile = function() {
+ var str, obj = [], rules;
+ for( var _indicator in this.rules ) {
+ if(!this.rules.hasOwnProperty(_indicator)) continue;
+ var indicator = this.rules[_indicator];
+ rules = [];
+ str = "\"" + _indicator + "\": [";
+ for( var i = 0; i < indicator.length; i++ ) {
+ rules.push( indicator[i].compile() );
+ }
+ str += rules.join();
+ str += "]";
+ obj.push( str );
+ }
+ return "{" + obj.join() + "};";
+ };
+
+
+
+ // PROLOG TO JAVASCRIPT
+ Var.prototype.toJavaScript = function() {
+ return undefined;
+ };
+
+ // Numbers
+ Num.prototype.toJavaScript = function() {
+ return this.value;
+ };
+
+ // Terms
+ Term.prototype.toJavaScript = function() {
+ if( this.args.length === 0 && this.indicator !== "[]/0" ) {
+ return this.id;
+ } else if( pl.type.is_list( this ) ) {
+ var arr = [];
+ var pointer = this;
+ var value;
+ while( pointer.indicator === "./2" ) {
+ value = pointer.args[0].toJavaScript();
+ if( value === undefined )
+ return undefined;
+ arr.push( value );
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator === "[]/0" )
+ return arr;
+ }
+ return undefined;
+ };
+
+
+
+ // RULES
+
+ // Return singleton variables in the session
+ Rule.prototype.singleton_variables = function() {
+ var variables = this.head.variables();
+ var count = {};
+ var singleton = [];
+ if( this.body !== null )
+ variables = variables.concat( this.body.variables() );
+ for( var i = 0; i < variables.length; i++ ) {
+ if( count[variables[i]] === undefined )
+ count[variables[i]] = 0;
+ count[variables[i]]++;
+ }
+ for( var key in count )
+ if( key !== "_" && count[key] === 1 )
+ singleton.push( key );
+ return singleton;
+ };
+
+
+
+ // PROLOG
+
+ var pl = {
+
+ // Environment
+ __env: true && module.exports ? global : window,
+
+ // Modules
+ module: {},
+
+ // Version
+ version: version,
+
+ // Parser
+ parser: {
+ tokenizer: Tokenizer,
+ expression: parseExpr
+ },
+
+ // Utils
+ utils: {
+
+ // String to indicator
+ str_indicator: str_indicator,
+ // Code point at
+ codePointAt: codePointAt,
+ // From code point
+ fromCodePoint: fromCodePoint
+
+ },
+
+ // Statistics
+ statistics: {
+
+ // Number of created terms
+ getCountTerms: function() {
+ return term_ref;
+ }
+
+ },
+
+ // JavaScript to Prolog
+ fromJavaScript: {
+
+ // Type testing
+ test: {
+
+ // Boolean
+ boolean: function( obj ) {
+ return obj === true || obj === false;
+ },
+
+ // Number
+ number: function( obj ) {
+ return typeof obj === "number";
+ },
+
+ // String
+ string: function( obj ) {
+ return typeof obj === "string";
+ },
+
+ // List
+ list: function( obj ) {
+ return obj instanceof Array;
+ },
+
+ // Variable
+ variable: function( obj ) {
+ return obj === undefined;
+ },
+
+ // Any
+ any: function( _ ) {
+ return true;
+ }
+
+ },
+
+ // Function conversion
+ conversion: {
+
+ // Bolean
+ boolean: function( obj ) {
+ return new Term( obj ? "true" : "false", [] );
+ },
+
+ // Number
+ number: function( obj ) {
+ return new Num( obj, obj % 1 !== 0 );
+ },
+
+ // String
+ string: function( obj ) {
+ return new Term( obj, [] );
+ },
+
+ // List
+ list: function( obj ) {
+ var arr = [];
+ var elem;
+ for( var i = 0; i < obj.length; i++ ) {
+ elem = pl.fromJavaScript.apply( obj[i] );
+ if( elem === undefined )
+ return undefined;
+ arr.push( elem );
+ }
+ return arrayToList( arr );
+ },
+
+ // Variable
+ variable: function( obj ) {
+ return new Var( "_" );
+ },
+
+ // Any
+ any: function( obj ) {
+ return undefined;
+ }
+
+ },
+
+ // Transform object
+ apply: function( obj ) {
+ for( var i in pl.fromJavaScript.test )
+ if( i !== "any" && pl.fromJavaScript.test[i]( obj ) )
+ return pl.fromJavaScript.conversion[i]( obj );
+ return pl.fromJavaScript.conversion.any( obj );
+ }
+ },
+
+ // Types
+ type: {
+
+ // Objects
+ Var: Var,
+ Num: Num,
+ Term: Term,
+ Rule: Rule,
+ State: State,
+ Stream: Stream,
+ Module: Module,
+ Thread: Thread,
+ Session: Session,
+ Substitution: Substitution,
+
+ // Order
+ order: [Var, Num, Term, Stream],
+
+ // Compare types
+ compare: function( x, y ) {
+ var ord_x = indexOf( pl.type.order, x.constructor );
+ var ord_y = indexOf( pl.type.order, y.constructor );
+ if( ord_x < ord_y ) {
+ return -1;
+ } else if( ord_x > ord_y ) {
+ return 1;
+ } else {
+ if( x.constructor === Num )
+ if( x.is_float && y.is_float )
+ return 0;
+ else if( x.is_float )
+ return -1;
+ else if( y.is_float )
+ return 1;
+ return 0;
+ }
+ },
+
+ // Is a substitution
+ is_substitution: function( obj ) {
+ return obj instanceof Substitution;
+ },
+
+ // Is a state
+ is_state: function( obj ) {
+ return obj instanceof State;
+ },
+
+ // Is a rule
+ is_rule: function( obj ) {
+ return obj instanceof Rule;
+ },
+
+ // Is a variable
+ is_variable: function( obj ) {
+ return obj instanceof Var;
+ },
+
+ // Is a stream
+ is_stream: function( obj ) {
+ return obj instanceof Stream;
+ },
+
+ // Is an anonymous variable
+ is_anonymous_var: function( obj ) {
+ return obj instanceof Var && obj.id === "_";
+ },
+
+ // Is a callable term
+ is_callable: function( obj ) {
+ return obj instanceof Term;
+ },
+
+ // Is a number
+ is_number: function( obj ) {
+ return obj instanceof Num;
+ },
+
+ // Is an integer
+ is_integer: function( obj ) {
+ return obj instanceof Num && !obj.is_float;
+ },
+
+ // Is a float
+ is_float: function( obj ) {
+ return obj instanceof Num && obj.is_float;
+ },
+
+ // Is a term
+ is_term: function( obj ) {
+ return obj instanceof Term;
+ },
+
+ // Is an atom
+ is_atom: function( obj ) {
+ return obj instanceof Term && obj.args.length === 0;
+ },
+
+ // Is a ground term
+ is_ground: function( obj ) {
+ if( obj instanceof Var ) return false;
+ if( obj instanceof Term )
+ for( var i = 0; i < obj.args.length; i++ )
+ if( !pl.type.is_ground( obj.args[i] ) )
+ return false;
+ return true;
+ },
+
+ // Is atomic
+ is_atomic: function( obj ) {
+ return obj instanceof Term && obj.args.length === 0 || obj instanceof Num;
+ },
+
+ // Is compound
+ is_compound: function( obj ) {
+ return obj instanceof Term && obj.args.length > 0;
+ },
+
+ // Is a list
+ is_list: function( obj ) {
+ return obj instanceof Term && (obj.indicator === "[]/0" || obj.indicator === "./2");
+ },
+
+ // Is an empty list
+ is_empty_list: function( obj ) {
+ return obj instanceof Term && obj.indicator === "[]/0";
+ },
+
+ // Is a non empty list
+ is_non_empty_list: function( obj ) {
+ return obj instanceof Term && obj.indicator === "./2";
+ },
+
+ // Is a fully list
+ is_fully_list: function( obj ) {
+ while( obj instanceof Term && obj.indicator === "./2" ) {
+ obj = obj.args[1];
+ }
+ return obj instanceof Var || obj instanceof Term && obj.indicator === "[]/0";
+ },
+
+ // Is a instantiated list
+ is_instantiated_list: function( obj ) {
+ while( obj instanceof Term && obj.indicator === "./2" ) {
+ obj = obj.args[1];
+ }
+ return obj instanceof Term && obj.indicator === "[]/0";
+ },
+
+ // Is an unitary list
+ is_unitary_list: function( obj ) {
+ return obj instanceof Term && obj.indicator === "./2" && obj.args[1] instanceof Term && obj.args[1].indicator === "[]/0";
+ },
+
+ // Is a character
+ is_character: function( obj ) {
+ return obj instanceof Term && (obj.id.length === 1 || obj.id.length > 0 && obj.id.length <= 2 && codePointAt( obj.id, 0 ) >= 65536);
+ },
+
+ // Is a character
+ is_character_code: function( obj ) {
+ return obj instanceof Num && !obj.is_float && obj.value >= 0 && obj.value <= 1114111;
+ },
+
+ // Is a byte
+ is_byte: function( obj ) {
+ return obj instanceof Num && !obj.is_float && obj.value >= 0 && obj.value <= 255;
+ },
+
+ // Is an operator
+ is_operator: function( obj ) {
+ return obj instanceof Term && pl.arithmetic.evaluation[obj.indicator];
+ },
+
+ // Is a directive
+ is_directive: function( obj ) {
+ return obj instanceof Term && pl.directive[obj.indicator] !== undefined;
+ },
+
+ // Is a built-in predicate
+ is_builtin: function( obj ) {
+ return obj instanceof Term && pl.predicate[obj.indicator] !== undefined;
+ },
+
+ // Is an error
+ is_error: function( obj ) {
+ return obj instanceof Term && obj.indicator === "throw/1";
+ },
+
+ // Is a predicate indicator
+ is_predicate_indicator: function( obj ) {
+ return obj instanceof Term && obj.indicator === "//2" && obj.args[0] instanceof Term && obj.args[0].args.length === 0 && obj.args[1] instanceof Num && obj.args[1].is_float === false;
+ },
+
+ // Is a flag
+ is_flag: function( obj ) {
+ return obj instanceof Term && obj.args.length === 0 && pl.flag[obj.id] !== undefined;
+ },
+
+ // Is a valid value for a flag
+ is_value_flag: function( flag, obj ) {
+ if( !pl.type.is_flag( flag ) ) return false;
+ for( var value in pl.flag[flag.id].allowed ) {
+ if(!pl.flag[flag.id].allowed.hasOwnProperty(value)) continue;
+ if( pl.flag[flag.id].allowed[value].equals( obj ) ) return true;
+ }
+ return false;
+ },
+
+ // Is a io mode
+ is_io_mode: function( obj ) {
+ return pl.type.is_atom( obj ) && ["read","write","append"].indexOf( obj.id ) !== -1;
+ },
+
+ // Is a stream option
+ is_stream_option: function( obj ) {
+ return pl.type.is_term( obj ) && (
+ obj.indicator === "alias/1" && pl.type.is_atom(obj.args[0]) ||
+ obj.indicator === "reposition/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "true" || obj.args[0].id === "false") ||
+ obj.indicator === "type/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "text" || obj.args[0].id === "binary") ||
+ obj.indicator === "eof_action/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "error" || obj.args[0].id === "eof_code" || obj.args[0].id === "reset")
+ );
+ },
+
+ // Is a stream position
+ is_stream_position: function( obj ) {
+ return pl.type.is_integer( obj ) && obj.value >= 0 || pl.type.is_atom( obj ) && (obj.id === "end_of_stream" || obj.id === "past_end_of_stream");
+ },
+
+ // Is a stream property
+ is_stream_property: function( obj ) {
+ return pl.type.is_term( obj ) && (
+ obj.indicator === "input/0" ||
+ obj.indicator === "output/0" ||
+ obj.indicator === "alias/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom( obj.args[0] )) ||
+ obj.indicator === "file_name/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom( obj.args[0] )) ||
+ obj.indicator === "position/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_stream_position( obj.args[0] )) ||
+ obj.indicator === "reposition/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "true" || obj.args[0].id === "false")) ||
+ obj.indicator === "type/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "text" || obj.args[0].id === "binary")) ||
+ obj.indicator === "mode/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "read" || obj.args[0].id === "write" || obj.args[0].id === "append")) ||
+ obj.indicator === "eof_action/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "error" || obj.args[0].id === "eof_code" || obj.args[0].id === "reset")) ||
+ obj.indicator === "end_of_stream/1" && (pl.type.is_variable( obj.args[0] ) || pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "at" || obj.args[0].id === "past" || obj.args[0].id === "not"))
+ );
+ },
+
+ // Is a streamable term
+ is_streamable: function( obj ) {
+ return obj.__proto__.stream !== undefined;
+ },
+
+ // Is a read option
+ is_read_option: function( obj ) {
+ return pl.type.is_term( obj ) && ["variables/1","variable_names/1","singletons/1"].indexOf( obj.indicator ) !== -1;
+ },
+
+ // Is a write option
+ is_write_option: function( obj ) {
+ return pl.type.is_term( obj ) && (
+ obj.indicator === "quoted/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "true" || obj.args[0].id === "false") ||
+ obj.indicator === "ignore_ops/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "true" || obj.args[0].id === "false") ||
+ obj.indicator === "numbervars/1" && pl.type.is_atom(obj.args[0]) && (obj.args[0].id === "true" || obj.args[0].id === "false")
+ );
+ },
+
+ // Is a close option
+ is_close_option: function( obj ) {
+ return pl.type.is_term( obj ) &&
+ obj.indicator === "force/1" &&
+ pl.type.is_atom(obj.args[0]) &&
+ (obj.args[0].id === "true" || obj.args[0].id === "false");
+ },
+
+ // Is a modifiable flag
+ is_modifiable_flag: function( obj ) {
+ return pl.type.is_flag( obj ) && pl.flag[obj.id].changeable;
+ },
+
+ // Is an existing module
+ is_module: function( obj ) {
+ return obj instanceof Term && obj.indicator === "library/1" && obj.args[0] instanceof Term && obj.args[0].args.length === 0 && pl.module[obj.args[0].id] !== undefined;
+ }
+
+ },
+
+ // Arithmetic functions
+ arithmetic: {
+
+ // Evaluation
+ evaluation: {
+ "e/0": {
+ type_args: null,
+ type_result: true,
+ fn: function( _ ) { return Math.E; }
+ },
+ "pi/0": {
+ type_args: null,
+ type_result: true,
+ fn: function( _ ) { return Math.PI; }
+ },
+ "tau/0": {
+ type_args: null,
+ type_result: true,
+ fn: function( _ ) { return 2*Math.PI; }
+ },
+ "epsilon/0": {
+ type_args: null,
+ type_result: true,
+ fn: function( _ ) { return Number.EPSILON; }
+ },
+ "+/1": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, _ ) { return x; }
+ },
+ "-/1": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, _ ) { return -x; }
+ },
+ "\\/1": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, _ ) { return ~x; }
+ },
+ "abs/1": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, _ ) { return Math.abs( x ); }
+ },
+ "sign/1": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, _ ) { return Math.sign( x ); }
+ },
+ "float_integer_part/1": {
+ type_args: true,
+ type_result: false,
+ fn: function( x, _ ) { return parseInt( x ); }
+ },
+ "float_fractional_part/1": {
+ type_args: true,
+ type_result: true,
+ fn: function( x, _ ) { return x - parseInt( x ); }
+ },
+ "float/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return parseFloat( x ); }
+ },
+ "floor/1": {
+ type_args: true,
+ type_result: false,
+ fn: function( x, _ ) { return Math.floor( x ); }
+ },
+ "truncate/1": {
+ type_args: true,
+ type_result: false,
+ fn: function( x, _ ) { return parseInt( x ); }
+ },
+ "round/1": {
+ type_args: true,
+ type_result: false,
+ fn: function( x, _ ) { return Math.round( x ); }
+ },
+ "ceiling/1": {
+ type_args: true,
+ type_result: false,
+ fn: function( x, _ ) { return Math.ceil( x ); }
+ },
+ "sin/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.sin( x ); }
+ },
+ "cos/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.cos( x ); }
+ },
+ "tan/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.tan( x ); }
+ },
+ "asin/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.asin( x ); }
+ },
+ "acos/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.acos( x ); }
+ },
+ "atan/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.atan( x ); }
+ },
+ "atan2/2": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, y, _ ) { return Math.atan2( x, y ); }
+ },
+ "exp/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.exp( x ); }
+ },
+ "sqrt/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, _ ) { return Math.sqrt( x ); }
+ },
+ "log/1": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, thread ) { return x > 0 ? Math.log( x ) : pl.error.evaluation( "undefined", thread.__call_indicator ); }
+ },
+ "+/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return x + y; }
+ },
+ "-/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return x - y; }
+ },
+ "*/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return x * y; }
+ },
+ "//2": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, y, thread ) { return y ? x / y : pl.error.evaluation( "zero_division", thread.__call_indicator ); }
+ },
+ "///2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, thread ) { return y ? parseInt( x / y ) : pl.error.evaluation( "zero_division", thread.__call_indicator ); }
+ },
+ "**/2": {
+ type_args: null,
+ type_result: true,
+ fn: function( x, y, _ ) { return Math.pow(x, y); }
+ },
+ "^/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return Math.pow(x, y); }
+ },
+ "<2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, _ ) { return x << y; }
+ },
+ ">>/2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, _ ) { return x >> y; }
+ },
+ "/\\/2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, _ ) { return x & y; }
+ },
+ "\\//2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, _ ) { return x | y; }
+ },
+ "xor/2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, _ ) { return x ^ y; }
+ },
+ "rem/2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, thread ) { return y ? x % y : pl.error.evaluation( "zero_division", thread.__call_indicator ); }
+ },
+ "mod/2": {
+ type_args: false,
+ type_result: false,
+ fn: function( x, y, thread ) { return y ? x - parseInt( x / y ) * y : pl.error.evaluation( "zero_division", thread.__call_indicator ); }
+ },
+ "max/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return Math.max( x, y ); }
+ },
+ "min/2": {
+ type_args: null,
+ type_result: null,
+ fn: function( x, y, _ ) { return Math.min( x, y ); }
+ }
+
+ }
+
+ },
+
+ // Directives
+ directive: {
+
+ // dynamic/1
+ "dynamic/1": function( thread, atom ) {
+ var indicator = atom.args[0];
+ if( pl.type.is_variable( indicator ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_compound( indicator ) || indicator.indicator !== "//2" ) {
+ thread.throw_error( pl.error.type( "predicate_indicator", indicator, atom.indicator ) );
+ } else if( pl.type.is_variable( indicator.args[0] ) || pl.type.is_variable( indicator.args[1] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( indicator.args[0] ) ) {
+ thread.throw_error( pl.error.type( "atom", indicator.args[0], atom.indicator ) );
+ } else if( !pl.type.is_integer( indicator.args[1] ) ) {
+ thread.throw_error( pl.error.type( "integer", indicator.args[1], atom.indicator ) );
+ } else {
+ var key = atom.args[0].args[0].id + "/" + atom.args[0].args[1].value;
+ thread.session.public_predicates[key] = true;
+ if( !thread.session.rules[key] )
+ thread.session.rules[key] = [];
+ }
+ },
+
+ // multifile/1
+ "multifile/1": function( thread, atom ) {
+ var indicator = atom.args[0];
+ if( pl.type.is_variable( indicator ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_compound( indicator ) || indicator.indicator !== "//2" ) {
+ thread.throw_error( pl.error.type( "predicate_indicator", indicator, atom.indicator ) );
+ } else if( pl.type.is_variable( indicator.args[0] ) || pl.type.is_variable( indicator.args[1] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( indicator.args[0] ) ) {
+ thread.throw_error( pl.error.type( "atom", indicator.args[0], atom.indicator ) );
+ } else if( !pl.type.is_integer( indicator.args[1] ) ) {
+ thread.throw_error( pl.error.type( "integer", indicator.args[1], atom.indicator ) );
+ } else {
+ thread.session.multifile_predicates[atom.args[0].args[0].id + "/" + atom.args[0].args[1].value] = true;
+ }
+ },
+
+ // set_prolog_flag
+ "set_prolog_flag/2": function( thread, atom ) {
+ var flag = atom.args[0], value = atom.args[1];
+ if( pl.type.is_variable( flag ) || pl.type.is_variable( value ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( flag ) ) {
+ thread.throw_error( pl.error.type( "atom", flag, atom.indicator ) );
+ } else if( !pl.type.is_flag( flag ) ) {
+ thread.throw_error( pl.error.domain( "prolog_flag", flag, atom.indicator ) );
+ } else if( !pl.type.is_value_flag( flag, value ) ) {
+ thread.throw_error( pl.error.domain( "flag_value", new Term( "+", [flag, value] ), atom.indicator ) );
+ } else if( !pl.type.is_modifiable_flag( flag ) ) {
+ thread.throw_error( pl.error.permission( "modify", "flag", flag ) );
+ } else {
+ thread.session.flag[flag.id] = value;
+ }
+ },
+
+ // use_module/1
+ "use_module/1": function( thread, atom ) {
+ var module = atom.args[0];
+ if( pl.type.is_variable( module ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_term( module ) ) {
+ thread.throw_error( pl.error.type( "term", module, atom.indicator ) );
+ } else {
+ if( pl.type.is_module( module ) ) {
+ var name = module.args[0].id;
+ if( indexOf(thread.session.modules, name) === -1 )
+ thread.session.modules.push( name );
+ } else {
+ // TODO
+ // error no existe modulo
+ }
+ }
+ },
+
+ // char_conversion/2
+ "char_conversion/2": function( thread, atom ) {
+ var inchar = atom.args[0], outchar = atom.args[1];
+ if( pl.type.is_variable( inchar ) || pl.type.is_variable( outchar ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_character( inchar ) ) {
+ thread.throw_error( pl.error.type( "character", inchar, atom.indicator ) );
+ } else if( !pl.type.is_character( outchar ) ) {
+ thread.throw_error( pl.error.type( "character", outchar, atom.indicator ) );
+ } else {
+ if( inchar.id === outchar.id ) {
+ delete thread.session.__char_conversion[inchar.id];
+ } else {
+ thread.session.__char_conversion[inchar.id] = outchar.id;
+ }
+ }
+ },
+
+ // op/3
+ "op/3": function( thread, atom ) {
+ var priority = atom.args[0], type = atom.args[1], operator = atom.args[2];
+ if( pl.type.is_variable( priority ) || pl.type.is_variable( type ) || pl.type.is_variable( operator ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_integer( priority ) ) {
+ thread.throw_error( pl.error.type( "integer", priority, atom.indicator ) );
+ } else if( !pl.type.is_atom( type ) ) {
+ thread.throw_error( pl.error.type( "atom", type, atom.indicator ) );
+ } else if( !pl.type.is_atom( operator ) ) {
+ thread.throw_error( pl.error.type( "atom", operator, atom.indicator ) );
+ } else if( priority.value < 0 || priority.value > 1200 ) {
+ thread.throw_error( pl.error.domain( "operator_priority", priority, atom.indicator ) );
+ } else if( operator.id === "," ) {
+ thread.throw_error( pl.error.permission( "modify", "operator", operator, atom.indicator ) );
+ } else if( operator.id === "|" && (priority.value < 1001 || type.id.length !== 3 ) ) {
+ thread.throw_error( pl.error.permission( "modify", "operator", operator, atom.indicator ) );
+ } else if( ["fy", "fx", "yf", "xf", "xfx", "yfx", "xfy"].indexOf( type.id ) === -1 ) {
+ thread.throw_error( pl.error.domain( "operator_specifier", type, atom.indicator ) );
+ } else {
+ var fix = { prefix: null, infix: null, postfix: null };
+ for( var p in thread.session.__operators ) {
+ if(!thread.session.__operators.hasOwnProperty(p)) continue;
+ var classes = thread.session.__operators[p][operator.id];
+ if( classes ) {
+ if( indexOf( classes, "fx" ) !== -1 ) { fix.prefix = { priority: p, type: "fx" }; }
+ if( indexOf( classes, "fy" ) !== -1 ) { fix.prefix = { priority: p, type: "fy" }; }
+ if( indexOf( classes, "xf" ) !== -1 ) { fix.postfix = { priority: p, type: "xf" }; }
+ if( indexOf( classes, "yf" ) !== -1 ) { fix.postfix = { priority: p, type: "yf" }; }
+ if( indexOf( classes, "xfx" ) !== -1 ) { fix.infix = { priority: p, type: "xfx" }; }
+ if( indexOf( classes, "xfy" ) !== -1 ) { fix.infix = { priority: p, type: "xfy" }; }
+ if( indexOf( classes, "yfx" ) !== -1 ) { fix.infix = { priority: p, type: "yfx" }; }
+ }
+ }
+ var current_class;
+ switch( type.id ) {
+ case "fy": case "fx": current_class = "prefix"; break;
+ case "yf": case "xf": current_class = "postfix"; break;
+ default: current_class = "infix"; break;
+ }
+ if( ((fix.prefix && current_class === "prefix" || fix.postfix && current_class === "postfix" || fix.infix && current_class === "infix")
+ && fix[current_class].type !== type.id || fix.infix && current_class === "postfix" || fix.postfix && current_class === "infix") && priority.value !== 0 ) {
+ thread.throw_error( pl.error.permission( "create", "operator", operator, atom.indicator ) );
+ } else {
+ if( fix[current_class] ) {
+ remove( thread.session.__operators[fix[current_class].priority][operator.id], type.id );
+ if( thread.session.__operators[fix[current_class].priority][operator.id].length === 0 ) {
+ delete thread.session.__operators[fix[current_class].priority][operator.id];
+ }
+ }
+ if( priority.value > 0 ) {
+ if( !thread.session.__operators[priority.value] ) thread.session.__operators[priority.value.toString()] = {};
+ if( !thread.session.__operators[priority.value][operator.id] ) thread.session.__operators[priority.value][operator.id] = [];
+ thread.session.__operators[priority.value][operator.id].push( type.id );
+ }
+ return true;
+ }
+ }
+ }
+
+ },
+
+ // Built-in predicates
+ predicate: {
+
+ // INPUT AND OUTPUT
+
+ // op/3
+ "op/3": function( thread, point, atom ) {
+ if( pl.directive["op/3"]( thread, atom ) )
+ thread.success( point );
+ },
+
+ // current_op/3
+ "current_op/3": function( thread, point, atom ) {
+ var priority = atom.args[0], specifier = atom.args[1], operator = atom.args[2];
+ var points = [];
+ for( var p in thread.session.__operators )
+ for( var o in thread.session.__operators[p] )
+ for( var i = 0; i < thread.session.__operators[p][o].length; i++ )
+ points.push( new State(
+ point.goal.replace(
+ new Term( ",", [
+ new Term( "=", [new Num( p, false ), priority] ),
+ new Term( ",", [
+ new Term( "=", [new Term( thread.session.__operators[p][o][i], [] ), specifier] ),
+ new Term( "=", [new Term( o, [] ), operator] )
+ ] )
+ ] )
+ ),
+ point.substitution,
+ point
+ ) );
+ thread.prepend( points );
+ },
+
+ // LOGIC AND CONTROL STRUCTURES
+
+ // ;/2 (disjunction)
+ ";/2": function( thread, point, atom ) {
+ if( pl.type.is_term( atom.args[0] ) && atom.args[0].indicator === "->/2" ) {
+ var points = thread.points;
+ var format_success = thread.session.format_success;
+ var format_error = thread.session.format_error;
+ thread.session.format_success = function(x) { return x.substitution; };
+ thread.session.format_error = function(x) { return x.goal; };
+ thread.points = [new State( atom.args[0].args[0], point.substitution, point )];
+ var callback = function( answer ) {
+ thread.points = points;
+ thread.session.format_success = format_success;
+ thread.session.format_error = format_error;
+ if( answer === false ) {
+ thread.prepend( [new State( point.goal.replace( atom.args[1] ), point.substitution, point )] );
+ } else if( pl.type.is_error( answer ) )
+ thread.throw_error( answer.args[0] );
+ else if( answer === null ) {
+ thread.prepend( [point] );
+ thread.__calls.shift()( null );
+ } else {
+ thread.prepend( [new State( point.goal.replace( atom.args[0].args[1] ).apply( answer ), point.substitution.apply( answer ), point )] );
+ }
+ };
+ thread.__calls.unshift( callback );
+ } else {
+ var left = new State( point.goal.replace( atom.args[0] ), point.substitution, point );
+ var right = new State( point.goal.replace( atom.args[1] ), point.substitution, point );
+ thread.prepend( [left, right] );
+ }
+ },
+
+ // !/0 (cut)
+ "!/0": function( thread, point, atom ) {
+ var parent_cut, last_cut, states = [];
+ parent_cut = point;
+ last_cut = null;
+ while( parent_cut.parent !== null && parent_cut.parent.goal.search( atom ) ) {
+ last_cut = parent_cut;
+ parent_cut = parent_cut.parent;
+ if(parent_cut.goal !== null) {
+ var selected = parent_cut.goal.select();
+ if( selected && selected.id === "call" && selected.search(atom) ) {
+ parent_cut = last_cut;
+ break;
+ }
+ }
+ }
+ for( var i = thread.points.length-1; i >= 0; i-- ) {
+ var state = thread.points[i];
+ var node = state.parent;
+ while( node !== null && node !== parent_cut.parent ) {
+ node = node.parent;
+ }
+ if( node === null && node !== parent_cut.parent )
+ states.push( state );
+ }
+ thread.points = states.reverse();
+ thread.success( point );
+ },
+
+ // \+ (negation)
+ "\\+/1": function( thread, point, atom ) {
+ var goal = atom.args[0];
+ if( pl.type.is_variable( goal ) ) {
+ thread.throw_error( pl.error.instantiation( thread.level ) );
+ } else if( !pl.type.is_callable( goal ) ) {
+ thread.throw_error( pl.error.type( "callable", goal, thread.level ) );
+ } else {
+ // TRANSPARENT VERSION OF THE NEGATION
+ /*var neg_thread;
+ if(point.negation_thread) {
+ neg_thread = point.negation_thread;
+ } else {
+ neg_thread = new Thread( thread.session );
+ neg_thread.add_goal( goal );
+ point.negation_thread = neg_thread;
+ }
+ neg_thread.answer( function( answer ) {
+ if(answer === false) {
+ thread.success( point );
+ } else if(pl.type.is_error( answer )) {
+ thread.throw_error( answer.args[0] );
+ } else if(answer === null) {
+ thread.prepend( [point] );
+ thread.current_limit = 0;
+ }
+ thread.again( answer !== null );
+ } );
+ return true;*/
+
+ // '\+'(X) :- call(X), !, fail.
+ // '\+'(_).
+ thread.prepend( [
+ new State( point.goal.replace( new Term( ",", [new Term( ",", [ new Term( "call", [goal] ), new Term( "!", [] ) ] ), new Term( "fail", [] ) ] ) ), point.substitution, point ),
+ new State( point.goal.replace( null ), point.substitution, point )
+ ] );
+ }
+ },
+
+ // ->/2 (implication)
+ "->/2": function( thread, point, atom ) {
+ var goal = point.goal.replace( new Term( ",", [atom.args[0], new Term( ",", [new Term( "!" ), atom.args[1]] )] ) );
+ thread.prepend( [new State( goal, point.substitution, point )] );
+ },
+
+ // fail/0
+ "fail/0": function( _1, _2, _3 ) {},
+
+ // false/0
+ "false/0": function( _1, _2, _3 ) {},
+
+ // true/0
+ "true/0": function( thread, point, _ ) {
+ thread.success( point );
+ },
+
+ // call/1..8
+ "call/1": callN(1),
+ "call/2": callN(2),
+ "call/3": callN(3),
+ "call/4": callN(4),
+ "call/5": callN(5),
+ "call/6": callN(6),
+ "call/7": callN(7),
+ "call/8": callN(8),
+
+ // once/1
+ "once/1": function( thread, point, atom ) {
+ var goal = atom.args[0];
+ thread.prepend( [new State( point.goal.replace( new Term( ",", [new Term( "call", [goal] ), new Term( "!", [] )] ) ), point.substitution, point )] );
+ },
+
+ // forall/2
+ "forall/2": function( thread, point, atom ) {
+ var generate = atom.args[0], test = atom.args[1];
+ thread.prepend( [new State( point.goal.replace( new Term( "\\+", [new Term( ",", [new Term( "call", [generate] ), new Term( "\\+", [new Term( "call", [test] )] )] )] ) ), point.substitution, point )] );
+ },
+
+ // repeat/0
+ "repeat/0": function( thread, point, _ ) {
+ thread.prepend( [new State( point.goal.replace( null ), point.substitution, point ), point] );
+ },
+
+ // EXCEPTIONS
+
+ // throw/1
+ "throw/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( thread.level ) );
+ } else {
+ thread.throw_error( atom.args[0] );
+ }
+ },
+
+ // catch/3
+ "catch/3": function( thread, point, atom ) {
+ var points = thread.points;
+ thread.points = [];
+ thread.prepend( [new State( atom.args[0], point.substitution, point )] );
+ var format_success = thread.session.format_success;
+ var format_error = thread.session.format_error;
+ thread.session.format_success = function(x) { return x.substitution; };
+ thread.session.format_error = function(x) { return x.goal; };
+ var callback = function( answer ) {
+ var call_points = thread.points;
+ thread.points = points;
+ thread.session.format_success = format_success;
+ thread.session.format_error = format_error;
+ if( pl.type.is_error( answer ) ) {
+ var states = [];
+ for( var i = thread.points.length-1 ; i >= 0; i-- ) {
+ var state = thread.points[i];
+ var node = state.parent;
+ while( node !== null && node !== point.parent ) {
+ node = node.parent;
+ }
+ if( node === null && node !== point.parent )
+ states.push( state );
+ }
+ thread.points = states;
+ var occurs_check = thread.get_flag( "occurs_check" ).indicator === "true/0";
+ var state = new State();
+ var mgu = pl.unify( answer.args[0], atom.args[1], occurs_check );
+ if( mgu !== null ) {
+ state.substitution = point.substitution.apply( mgu );
+ state.goal = point.goal.replace( atom.args[2] ).apply( mgu );
+ state.parent = point;
+ thread.prepend( [state] );
+ } else {
+ thread.throw_error( answer.args[0] );
+ }
+ } else if( answer !== false ) {
+ var answer_state = answer === null ? [] : [new State(
+ point.goal.apply( answer ).replace( null ),
+ point.substitution.apply( answer ),
+ point
+ )];
+ var filter_points = [];
+ for( var i = call_points.length-1; i >= 0; i-- ) {
+ filter_points.push( call_points[i] );
+ var selected = call_points[i].goal !== null ? call_points[i].goal.select() : null;
+ if( pl.type.is_term( selected ) && selected.indicator === "!/0" )
+ break;
+ }
+ var catch_points = map( filter_points, function( state ) {
+ if( state.goal === null )
+ state.goal = new Term( "true", [] );
+ state = new State(
+ point.goal.replace( new Term( "catch", [state.goal, atom.args[1], atom.args[2]] ) ),
+ point.substitution.apply( state.substitution ),
+ state.parent
+ );
+ state.exclude = atom.args[0].variables();
+ return state;
+ } ).reverse();
+ thread.prepend( catch_points );
+ thread.prepend( answer_state );
+ if( answer === null ) {
+ this.current_limit = 0;
+ thread.__calls.shift()( null );
+ }
+ }
+ };
+ thread.__calls.unshift( callback );
+ },
+
+ // UNIFICATION
+
+ // =/2 (unification)
+ "=/2": function( thread, point, atom ) {
+ var occurs_check = thread.get_flag( "occurs_check" ).indicator === "true/0";
+ var state = new State();
+ var mgu = pl.unify( atom.args[0], atom.args[1], occurs_check );
+ if( mgu !== null ) {
+ state.goal = point.goal.apply( mgu ).replace( null );
+ state.substitution = point.substitution.apply( mgu );
+ state.parent = point;
+ thread.prepend( [state] );
+ }
+ },
+
+ // unify_with_occurs_check/2
+ "unify_with_occurs_check/2": function( thread, point, atom ) {
+ var state = new State();
+ var mgu = pl.unify( atom.args[0], atom.args[1], true );
+ if( mgu !== null ) {
+ state.goal = point.goal.apply( mgu ).replace( null );
+ state.substitution = point.substitution.apply( mgu );
+ state.parent = point;
+ thread.prepend( [state] );
+ }
+ },
+
+ // \=/2
+ "\\=/2": function( thread, point, atom ) {
+ var occurs_check = thread.get_flag( "occurs_check" ).indicator === "true/0";
+ var mgu = pl.unify( atom.args[0], atom.args[1], occurs_check );
+ if( mgu === null ) {
+ thread.success( point );
+ }
+ },
+
+ // subsumes_term/2
+ "subsumes_term/2": function( thread, point, atom ) {
+ var occurs_check = thread.get_flag( "occurs_check" ).indicator === "true/0";
+ var mgu = pl.unify( atom.args[1], atom.args[0], occurs_check );
+ if( mgu !== null && atom.args[1].apply( mgu ).equals( atom.args[1] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // ALL SOLUTIONS
+
+ // findall/3
+ "findall/3": function( thread, point, atom ) {
+ var template = atom.args[0], goal = atom.args[1], instances = atom.args[2];
+ if( pl.type.is_variable( goal ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( goal ) ) {
+ thread.throw_error( pl.error.type( "callable", goal, atom.indicator ) );
+ } else if( !pl.type.is_variable( instances ) && !pl.type.is_list( instances ) ) {
+ thread.throw_error( pl.error.type( "list", instances, atom.indicator ) );
+ } else {
+ var variable = thread.next_free_variable();
+ var newGoal = new Term( ",", [goal, new Term( "=", [variable, template] )] );
+ var points = thread.points;
+ var limit = thread.session.limit;
+ var format_success = thread.session.format_success;
+ thread.session.format_success = function(x) { return x.substitution; };
+ thread.add_goal( newGoal, true, point );
+ var answers = [];
+ var callback = function( answer ) {
+ if( answer !== false && answer !== null && !pl.type.is_error( answer ) ) {
+ thread.__calls.unshift( callback );
+ answers.push( answer.links[variable.id] );
+ thread.session.limit = thread.current_limit;
+ } else {
+ thread.points = points;
+ thread.session.limit = limit;
+ thread.session.format_success = format_success;
+ if( pl.type.is_error( answer ) ) {
+ thread.throw_error( answer.args[0] );
+ } else if( thread.current_limit > 0 ) {
+ var list = new Term( "[]" );
+ for( var i = answers.length - 1; i >= 0; i-- ) {
+ list = new Term( ".", [answers[i], list] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [instances, list] ) ), point.substitution, point )] );
+ }
+ }
+ };
+ thread.__calls.unshift( callback );
+ }
+ },
+
+ // bagof/3
+ "bagof/3": function( thread, point, atom ) {
+ var answer, template = atom.args[0], goal = atom.args[1], instances = atom.args[2];
+ if( pl.type.is_variable( goal ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( goal ) ) {
+ thread.throw_error( pl.error.type( "callable", goal, atom.indicator ) );
+ } else if( !pl.type.is_variable( instances ) && !pl.type.is_list( instances ) ) {
+ thread.throw_error( pl.error.type( "list", instances, atom.indicator ) );
+ } else {
+ var variable = thread.next_free_variable();
+ var template_vars;
+ if( goal.indicator === "^/2" ) {
+ template_vars = goal.args[0].variables();
+ goal = goal.args[1];
+ } else {
+ template_vars = [];
+ }
+ template_vars = template_vars.concat( template.variables() );
+ var free_vars = goal.variables().filter( function( v ){
+ return indexOf( template_vars, v ) === -1;
+ } );
+ var list_vars = new Term( "[]" );
+ for( var i = free_vars.length - 1; i >= 0; i-- ) {
+ list_vars = new Term( ".", [ new Var( free_vars[i] ), list_vars ] );
+ }
+ var newGoal = new Term( ",", [goal, new Term( "=", [variable, new Term( ",", [list_vars, template] )] )] );
+ var points = thread.points;
+ var limit = thread.session.limit;
+ var format_success = thread.session.format_success;
+ thread.session.format_success = function(x) { return x.substitution; };
+ thread.add_goal( newGoal, true, point );
+ var answers = [];
+ var callback = function( answer ) {
+ if( answer !== false && answer !== null && !pl.type.is_error( answer ) ) {
+ thread.__calls.unshift( callback );
+ var match = false;
+ var arg_vars = answer.links[variable.id].args[0];
+ var arg_template = answer.links[variable.id].args[1];
+ for( var _elem in answers ) {
+ if(!answers.hasOwnProperty(_elem)) continue;
+ var elem = answers[_elem];
+ if( elem.variables.equals( arg_vars ) ) {
+ elem.answers.push( arg_template );
+ match = true;
+ break;
+ }
+ }
+ if( !match ) {
+ answers.push( {variables: arg_vars, answers: [arg_template]} );
+ }
+ thread.session.limit = thread.current_limit;
+ } else {
+ thread.points = points;
+ thread.session.limit = limit;
+ thread.session.format_success = format_success;
+ if( pl.type.is_error( answer ) ) {
+ thread.throw_error( answer.args[0] );
+ } else if( thread.current_limit > 0 ) {
+ var states = [];
+ for( var i = 0; i < answers.length; i++ ) {
+ answer = answers[i].answers;
+ var list = new Term( "[]" );
+ for( var j = answer.length - 1; j >= 0; j-- ) {
+ list = new Term( ".", [answer[j], list] );
+ }
+ states.push( new State(
+ point.goal.replace( new Term( ",", [new Term( "=", [list_vars, answers[i].variables] ), new Term( "=", [instances, list] )] ) ),
+ point.substitution, point
+ ) );
+ }
+ thread.prepend( states );
+ }
+ }
+ };
+ thread.__calls.unshift( callback );
+ }
+ },
+
+ // setof/3
+ "setof/3": function( thread, point, atom ) {
+ var answer, template = atom.args[0], goal = atom.args[1], instances = atom.args[2];
+ if( pl.type.is_variable( goal ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( goal ) ) {
+ thread.throw_error( pl.error.type( "callable", goal, atom.indicator ) );
+ } else if( !pl.type.is_variable( instances ) && !pl.type.is_list( instances ) ) {
+ thread.throw_error( pl.error.type( "list", instances, atom.indicator ) );
+ } else {
+ var variable = thread.next_free_variable();
+ var template_vars;
+ if( goal.indicator === "^/2" ) {
+ template_vars = goal.args[0].variables();
+ goal = goal.args[1];
+ } else {
+ template_vars = [];
+ }
+ template_vars = template_vars.concat( template.variables() );
+ var free_vars = goal.variables().filter( function( v ){
+ return indexOf( template_vars, v ) === -1;
+ } );
+ var list_vars = new Term( "[]" );
+ for( var i = free_vars.length - 1; i >= 0; i-- ) {
+ list_vars = new Term( ".", [ new Var( free_vars[i] ), list_vars ] );
+ }
+ var newGoal = new Term( ",", [goal, new Term( "=", [variable, new Term( ",", [list_vars, template] )] )] );
+ var points = thread.points;
+ var limit = thread.session.limit;
+ var format_success = thread.session.format_success;
+ thread.session.format_success = function(x) { return x.substitution; };
+ thread.add_goal( newGoal, true, point );
+ var answers = [];
+ var callback = function( answer ) {
+ if( answer !== false && answer !== null && !pl.type.is_error( answer ) ) {
+ thread.__calls.unshift( callback );
+ var match = false;
+ var arg_vars = answer.links[variable.id].args[0];
+ var arg_template = answer.links[variable.id].args[1];
+ for( var _elem in answers ) {
+ if(!answers.hasOwnProperty(_elem)) continue;
+ var elem = answers[_elem];
+ if( elem.variables.equals( arg_vars ) ) {
+ elem.answers.push( arg_template );
+ match = true;
+ break;
+ }
+ }
+ if( !match ) {
+ answers.push( {variables: arg_vars, answers: [arg_template]} );
+ }
+ thread.session.limit = thread.current_limit;
+ } else {
+ thread.points = points;
+ thread.session.limit = limit;
+ thread.session.format_success = format_success;
+ if( pl.type.is_error( answer ) ) {
+ thread.throw_error( answer.args[0] );
+ } else if( thread.current_limit > 0 ) {
+ var states = [];
+ for( var i = 0; i < answers.length; i++ ) {
+ answer = answers[i].answers.sort( pl.compare );
+ var list = new Term( "[]" );
+ for( var j = answer.length - 1; j >= 0; j-- ) {
+ list = new Term( ".", [answer[j], list] );
+ }
+ states.push( new State(
+ point.goal.replace( new Term( ",", [new Term( "=", [list_vars, answers[i].variables] ), new Term( "=", [instances, list] )] ) ),
+ point.substitution, point
+ ) );
+ }
+ thread.prepend( states );
+ }
+ }
+ };
+ thread.__calls.unshift( callback );
+ }
+ },
+
+ // TERM CREATION AND DECOMPOSITION
+
+ // functor/3
+ "functor/3": function( thread, point, atom ) {
+ var subs;
+ var term = atom.args[0], name = atom.args[1], arity = atom.args[2];
+ if( pl.type.is_variable( term ) && (pl.type.is_variable( name ) || pl.type.is_variable( arity )) ) {
+ thread.throw_error( pl.error.instantiation( "functor/3" ) );
+ } else if( !pl.type.is_variable( arity ) && !pl.type.is_integer( arity ) ) {
+ thread.throw_error( pl.error.type( "integer", atom.args[2], "functor/3" ) );
+ } else if( !pl.type.is_variable( name ) && !pl.type.is_atomic( name ) ) {
+ thread.throw_error( pl.error.type( "atomic", atom.args[1], "functor/3" ) );
+ } else if( pl.type.is_integer( name ) && pl.type.is_integer( arity ) && arity.value !== 0 ) {
+ thread.throw_error( pl.error.type( "atom", atom.args[1], "functor/3" ) );
+ } else if( pl.type.is_variable( term ) ) {
+ if( atom.args[2].value >= 0 ) {
+ var args = [];
+ for( var i = 0; i < arity.value; i++ )
+ args.push( thread.next_free_variable() );
+ var functor = pl.type.is_integer( name ) ? name : new Term( name.id, args );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [term, functor] ) ), point.substitution, point )] );
+ }
+ } else {
+ var id = pl.type.is_integer( term ) ? term : new Term( term.id, [] );
+ var length = pl.type.is_integer( term ) ? new Num( 0, false ) : new Num( term.args.length, false );
+ var goal = new Term( ",", [new Term( "=", [id, name] ), new Term( "=", [length, arity] )] );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ }
+ },
+
+ // arg/3
+ "arg/3": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) || pl.type.is_variable( atom.args[1] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( atom.args[0].value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", atom.args[0], atom.indicator ) );
+ } else if( !pl.type.is_compound( atom.args[1] ) ) {
+ thread.throw_error( pl.error.type( "compound", atom.args[1], atom.indicator ) );
+ } else {
+ var n = atom.args[0].value;
+ if( n > 0 && n <= atom.args[1].args.length ) {
+ var goal = new Term( "=", [atom.args[1].args[n-1], atom.args[2]] );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ }
+ }
+ },
+
+ // =../2 (univ)
+ "=../2": function( thread, point, atom ) {
+ var list;
+ if( pl.type.is_variable( atom.args[0] ) && (pl.type.is_variable( atom.args[1] )
+ || pl.type.is_non_empty_list( atom.args[1] ) && pl.type.is_variable( atom.args[1].args[0] )) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_fully_list( atom.args[1] ) ) {
+ thread.throw_error( pl.error.type( "list", atom.args[1], atom.indicator ) );
+ } else if( !pl.type.is_variable( atom.args[0] ) ) {
+ if( pl.type.is_atomic( atom.args[0] ) ) {
+ list = new Term( ".", [atom.args[0], new Term( "[]" )] );
+ } else {
+ list = new Term( "[]" );
+ for( var i = atom.args[0].args.length - 1; i >= 0; i-- ) {
+ list = new Term( ".", [atom.args[0].args[i], list] );
+ }
+ list = new Term( ".", [new Term( atom.args[0].id ), list] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [list, atom.args[1]] ) ), point.substitution, point )] );
+ } else if( !pl.type.is_variable( atom.args[1] ) ) {
+ var args = [];
+ list = atom.args[1].args[1];
+ while( list.indicator === "./2" ) {
+ args.push( list.args[0] );
+ list = list.args[1];
+ }
+ if( pl.type.is_variable( atom.args[0] ) && pl.type.is_variable( list ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( args.length === 0 && pl.type.is_compound( atom.args[1].args[0] ) ) {
+ thread.throw_error( pl.error.type( "atomic", atom.args[1].args[0], atom.indicator ) );
+ } else if( args.length > 0 && (pl.type.is_compound( atom.args[1].args[0] ) || pl.type.is_number( atom.args[1].args[0] )) ) {
+ thread.throw_error( pl.error.type( "atom", atom.args[1].args[0], atom.indicator ) );
+ } else {
+ if( args.length === 0 ) {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [atom.args[1].args[0], atom.args[0]], point ) ), point.substitution, point )] );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [new Term( atom.args[1].args[0].id, args ), atom.args[0]] ) ), point.substitution, point )] );
+ }
+ }
+ }
+ },
+
+ // copy_term/2
+ "copy_term/2": function( thread, point, atom ) {
+ var renamed = atom.args[0].rename( thread );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [renamed, atom.args[1]] ) ), point.substitution, point.parent )] );
+ },
+
+ // term_variables/2
+ "term_variables/2": function( thread, point, atom ) {
+ var term = atom.args[0], vars = atom.args[1];
+ if( !pl.type.is_fully_list( vars ) ) {
+ thread.throw_error( pl.error.type( "list", vars, atom.indicator ) );
+ } else {
+ var list = arrayToList( map( nub( term.variables() ), function(v) {
+ return new Var(v);
+ } ) );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [vars, list] ) ), point.substitution, point )] );
+ }
+ },
+
+ // CLAUSE RETRIEVAL AND INFORMATION
+
+ // clause/2
+ "clause/2": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.type( "callable", atom.args[0], atom.indicator ) );
+ } else if( !pl.type.is_variable( atom.args[1] ) && !pl.type.is_callable( atom.args[1] ) ) {
+ thread.throw_error( pl.error.type( "callable", atom.args[1], atom.indicator ) );
+ } else if( thread.session.rules[atom.args[0].indicator] !== undefined ) {
+ if( thread.is_public_predicate( atom.args[0].indicator ) ) {
+ var states = [];
+ for( var _rule in thread.session.rules[atom.args[0].indicator] ) {
+ if(!thread.session.rules[atom.args[0].indicator].hasOwnProperty(_rule)) continue;
+ var rule = thread.session.rules[atom.args[0].indicator][_rule];
+ thread.session.renamed_variables = {};
+ rule = rule.rename( thread );
+ if( rule.body === null ) {
+ rule.body = new Term( "true" );
+ }
+ var goal = new Term( ",", [new Term( "=", [rule.head, atom.args[0]] ), new Term( "=", [rule.body, atom.args[1]] )] );
+ states.push( new State( point.goal.replace( goal ), point.substitution, point ) );
+ }
+ thread.prepend( states );
+ } else {
+ thread.throw_error( pl.error.permission( "access", "private_procedure", atom.args[0].indicator, atom.indicator ) );
+ }
+ }
+ },
+
+ // current_predicate/1
+ "current_predicate/1": function( thread, point, atom ) {
+ var indicator = atom.args[0];
+ if( !pl.type.is_variable( indicator ) && (!pl.type.is_compound( indicator ) || indicator.indicator !== "//2") ) {
+ thread.throw_error( pl.error.type( "predicate_indicator", indicator, atom.indicator ) );
+ } else if( !pl.type.is_variable( indicator ) && !pl.type.is_variable( indicator.args[0] ) && !pl.type.is_atom( indicator.args[0] ) ) {
+ thread.throw_error( pl.error.type( "atom", indicator.args[0], atom.indicator ) );
+ } else if( !pl.type.is_variable( indicator ) && !pl.type.is_variable( indicator.args[1] ) && !pl.type.is_integer( indicator.args[1] ) ) {
+ thread.throw_error( pl.error.type( "integer", indicator.args[1], atom.indicator ) );
+ } else {
+ var states = [];
+ for( var i in thread.session.rules ) {
+ if(!thread.session.rules.hasOwnProperty(i)) continue;
+ var index = i.lastIndexOf( "/" );
+ var name = i.substr( 0, index );
+ var arity = parseInt( i.substr( index+1, i.length-(index+1) ) );
+ var predicate = new Term( "/", [new Term( name ), new Num( arity, false )] );
+ var goal = new Term( "=", [predicate, indicator] );
+ states.push( new State( point.goal.replace( goal ), point.substitution, point ) );
+ }
+ thread.prepend( states );
+ }
+ },
+
+ // CLAUSE CREATION AND DESTRUCTION
+
+ // asserta/1
+ "asserta/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.type( "callable", atom.args[0], atom.indicator ) );
+ } else {
+ var head, body;
+ if( atom.args[0].indicator === ":-/2" ) {
+ head = atom.args[0].args[0];
+ body = body_conversion( atom.args[0].args[1] );
+ } else {
+ head = atom.args[0];
+ body = null;
+ }
+ if( !pl.type.is_callable( head ) ) {
+ thread.throw_error( pl.error.type( "callable", head, atom.indicator ) );
+ } else if( body !== null && !pl.type.is_callable( body ) ) {
+ thread.throw_error( pl.error.type( "callable", body, atom.indicator ) );
+ } else if( thread.is_public_predicate( head.indicator ) ) {
+ if( thread.session.rules[head.indicator] === undefined ) {
+ thread.session.rules[head.indicator] = [];
+ }
+ thread.session.public_predicates[head.indicator] = true;
+ thread.session.rules[head.indicator] = [new Rule( head, body, true )].concat( thread.session.rules[head.indicator] );
+ thread.success( point );
+ } else {
+ thread.throw_error( pl.error.permission( "modify", "static_procedure", head.indicator, atom.indicator ) );
+ }
+ }
+ },
+
+ // assertz/1
+ "assertz/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.type( "callable", atom.args[0], atom.indicator ) );
+ } else {
+ var head, body;
+ if( atom.args[0].indicator === ":-/2" ) {
+ head = atom.args[0].args[0];
+ body = body_conversion( atom.args[0].args[1] );
+ } else {
+ head = atom.args[0];
+ body = null;
+ }
+ if( !pl.type.is_callable( head ) ) {
+ thread.throw_error( pl.error.type( "callable", head, atom.indicator ) );
+ } else if( body !== null && !pl.type.is_callable( body ) ) {
+ thread.throw_error( pl.error.type( "callable", body, atom.indicator ) );
+ } else if( thread.is_public_predicate( head.indicator ) ) {
+ if( thread.session.rules[head.indicator] === undefined ) {
+ thread.session.rules[head.indicator] = [];
+ }
+ thread.session.public_predicates[head.indicator] = true;
+ thread.session.rules[head.indicator].push( new Rule( head, body, true ) );
+ thread.success( point );
+ } else {
+ thread.throw_error( pl.error.permission( "modify", "static_procedure", head.indicator, atom.indicator ) );
+ }
+ }
+ },
+
+ // retract/1
+ "retract/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.type( "callable", atom.args[0], atom.indicator ) );
+ } else {
+ var head, body;
+ if( atom.args[0].indicator === ":-/2" ) {
+ head = atom.args[0].args[0];
+ body = atom.args[0].args[1];
+ } else {
+ head = atom.args[0];
+ body = new Term( "true" );
+ }
+ if( typeof point.retract === "undefined" ) {
+ if( thread.is_public_predicate( head.indicator ) ) {
+ if( thread.session.rules[head.indicator] !== undefined ) {
+ var states = [];
+ for( var i = 0; i < thread.session.rules[head.indicator].length; i++ ) {
+ thread.session.renamed_variables = {};
+ var orule = thread.session.rules[head.indicator][i];
+ var rule = orule.rename( thread );
+ if( rule.body === null )
+ rule.body = new Term( "true", [] );
+ var occurs_check = thread.get_flag( "occurs_check" ).indicator === "true/0";
+ var mgu = pl.unify( new Term( ",", [head, body] ), new Term( ",", [rule.head, rule.body] ), occurs_check );
+ if( mgu !== null ) {
+ var state = new State( point.goal.replace( new Term(",", [
+ new Term( "retract", [ new Term( ":-", [head, body] ) ] ),
+ new Term( ",", [
+ new Term( "=", [head, rule.head] ),
+ new Term( "=", [body, rule.body] )
+ ] )
+ ] ) ), point.substitution, point );
+ state.retract = orule;
+ states.push( state );
+ }
+ }
+ thread.prepend( states );
+ }
+ } else {
+ thread.throw_error( pl.error.permission( "modify", "static_procedure", head.indicator, atom.indicator ) );
+ }
+ } else {
+ retract( thread, point, head.indicator, point.retract );
+ }
+ }
+ },
+
+ // retractall/1
+ "retractall/1": function( thread, point, atom ) {
+ var head = atom.args[0];
+ if( pl.type.is_variable( head ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_callable( head ) ) {
+ thread.throw_error( pl.error.type( "callable", head, atom.indicator ) );
+ } else {
+ thread.prepend( [
+ new State( point.goal.replace( new Term( ",", [
+ new Term( "retract", [new pl.type.Term( ":-", [head, new Var( "_" )] )] ),
+ new Term( "fail", [] )
+ ] ) ), point.substitution, point ),
+ new State( point.goal.replace( null ), point.substitution, point )
+ ] );
+ }
+ },
+
+ // abolish/1
+ "abolish/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) || pl.type.is_term( atom.args[0] ) && atom.args[0].indicator === "//2"
+ && (pl.type.is_variable( atom.args[0].args[0] ) || pl.type.is_variable( atom.args[0].args[1] )) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_term( atom.args[0] ) || atom.args[0].indicator !== "//2" ) {
+ thread.throw_error( pl.error.type( "predicate_indicator", atom.args[0], atom.indicator ) );
+ } else if( !pl.type.is_atom( atom.args[0].args[0] ) ) {
+ thread.throw_error( pl.error.type( "atom", atom.args[0].args[0], atom.indicator ) );
+ } else if( !pl.type.is_integer( atom.args[0].args[1] ) ) {
+ thread.throw_error( pl.error.type( "integer", atom.args[0].args[1], atom.indicator ) );
+ } else if( atom.args[0].args[1].value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", atom.args[0].args[1], atom.indicator ) );
+ } else if( pl.type.is_number(thread.get_flag( "max_arity" )) && atom.args[0].args[1].value > thread.get_flag( "max_arity" ).value ) {
+ thread.throw_error( pl.error.representation( "max_arity", atom.indicator ) );
+ } else {
+ var indicator = atom.args[0].args[0].id + "/" + atom.args[0].args[1].value;
+ if( thread.is_public_predicate( indicator ) ) {
+ delete thread.session.rules[indicator];
+ thread.success( point );
+ } else {
+ thread.throw_error( pl.error.permission( "modify", "static_procedure", indicator, atom.indicator ) );
+ }
+ }
+ },
+
+ // ATOM PROCESSING
+
+ // atom_length/2
+ "atom_length/2": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( atom.args[0] ) ) {
+ thread.throw_error( pl.error.type( "atom", atom.args[0], atom.indicator ) );
+ } else if( !pl.type.is_variable( atom.args[1] ) && !pl.type.is_integer( atom.args[1] ) ) {
+ thread.throw_error( pl.error.type( "integer", atom.args[1], atom.indicator ) );
+ } else if( pl.type.is_integer( atom.args[1] ) && atom.args[1].value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", atom.args[1], atom.indicator ) );
+ } else {
+ var length = new Num( atom.args[0].id.length, false );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [length, atom.args[1]] ) ), point.substitution, point )] );
+ }
+ },
+
+ // atom_concat/3
+ "atom_concat/3": function( thread, point, atom ) {
+ var str, goal, start = atom.args[0], end = atom.args[1], whole = atom.args[2];
+ if( pl.type.is_variable( whole ) && (pl.type.is_variable( start ) || pl.type.is_variable( end )) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( start ) && !pl.type.is_atom( start ) ) {
+ thread.throw_error( pl.error.type( "atom", start, atom.indicator ) );
+ } else if( !pl.type.is_variable( end ) && !pl.type.is_atom( end ) ) {
+ thread.throw_error( pl.error.type( "atom", end, atom.indicator ) );
+ } else if( !pl.type.is_variable( whole ) && !pl.type.is_atom( whole ) ) {
+ thread.throw_error( pl.error.type( "atom", whole, atom.indicator ) );
+ } else {
+ var v1 = pl.type.is_variable( start );
+ var v2 = pl.type.is_variable( end );
+ //var v3 = pl.type.is_variable( whole );
+ if( !v1 && !v2 ) {
+ goal = new Term( "=", [whole, new Term( start.id + end.id )] );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ } else if( v1 && !v2 ) {
+ str = whole.id.substr( 0, whole.id.length - end.id.length );
+ if( str + end.id === whole.id ) {
+ goal = new Term( "=", [start, new Term( str )] );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ }
+ } else if( v2 && !v1 ) {
+ str = whole.id.substr( start.id.length );
+ if( start.id + str === whole.id ) {
+ goal = new Term( "=", [end, new Term( str )] );
+ thread.prepend( [new State( point.goal.replace( goal ), point.substitution, point )] );
+ }
+ } else {
+ var states = [];
+ for( var i = 0; i <= whole.id.length; i++ ) {
+ var atom1 = new Term( whole.id.substr( 0, i ) );
+ var atom2 = new Term( whole.id.substr( i ) );
+ goal = new Term( ",", [new Term( "=", [atom1, start] ), new Term( "=", [atom2, end] )] );
+ states.push( new State( point.goal.replace( goal ), point.substitution, point ) );
+ }
+ thread.prepend( states );
+ }
+ }
+ },
+
+ // sub_atom/5
+ "sub_atom/5": function( thread, point, atom ) {
+ var i, atom1 = atom.args[0], before = atom.args[1], length = atom.args[2], after = atom.args[3], subatom = atom.args[4];
+ if( pl.type.is_variable( atom1 ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( before ) && !pl.type.is_integer( before ) ) {
+ thread.throw_error( pl.error.type( "integer", before, atom.indicator ) );
+ } else if( !pl.type.is_variable( length ) && !pl.type.is_integer( length ) ) {
+ thread.throw_error( pl.error.type( "integer", length, atom.indicator ) );
+ } else if( !pl.type.is_variable( after ) && !pl.type.is_integer( after ) ) {
+ thread.throw_error( pl.error.type( "integer", after, atom.indicator ) );
+ } else if( pl.type.is_integer( before ) && before.value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", before, atom.indicator ) );
+ } else if( pl.type.is_integer( length ) && length.value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", length, atom.indicator ) );
+ } else if( pl.type.is_integer( after ) && after.value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", after, atom.indicator ) );
+ } else {
+ var bs = [], ls = [], as = [];
+ if( pl.type.is_variable( before ) ) {
+ for( i = 0; i <= atom1.id.length; i++ ) {
+ bs.push( i );
+ }
+ } else {
+ bs.push( before.value );
+ }
+ if( pl.type.is_variable( length ) ) {
+ for( i = 0; i <= atom1.id.length; i++ ) {
+ ls.push( i );
+ }
+ } else {
+ ls.push( length.value );
+ }
+ if( pl.type.is_variable( after ) ) {
+ for( i = 0; i <= atom1.id.length; i++ ) {
+ as.push( i );
+ }
+ } else {
+ as.push( after.value );
+ }
+ var states = [];
+ for( var _i in bs ) {
+ if(!bs.hasOwnProperty(_i)) continue;
+ i = bs[_i];
+ for( var _j in ls ) {
+ if(!ls.hasOwnProperty(_j)) continue;
+ var j = ls[_j];
+ var k = atom1.id.length - i - j;
+ if( indexOf( as, k ) !== -1 ) {
+ if( i+j+k === atom1.id.length ) {
+ var str = atom1.id.substr( i, j );
+ if( atom1.id === atom1.id.substr( 0, i ) + str + atom1.id.substr( i+j, k ) ) {
+ var pl1 = new Term( "=", [new Term( str ), subatom] );
+ var pl2 = new Term( "=", [before, new Num( i )] );
+ var pl3 = new Term( "=", [length, new Num( j )] );
+ var pl4 = new Term( "=", [after, new Num( k )] );
+ var goal = new Term( ",", [ new Term( ",", [ new Term( ",", [pl2, pl3] ), pl4] ), pl1] );
+ states.push( new State( point.goal.replace( goal ), point.substitution, point ) );
+ }
+ }
+ }
+ }
+ }
+ thread.prepend( states );
+ }
+ },
+
+ // atom_chars/2
+ "atom_chars/2": function( thread, point, atom ) {
+ var atom1 = atom.args[0], list = atom.args[1];
+ if( pl.type.is_variable( atom1 ) && pl.type.is_variable( list ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( atom1 ) && !pl.type.is_atom( atom1 ) ) {
+ thread.throw_error( pl.error.type( "atom", atom1, atom.indicator ) );
+ } else {
+ if( !pl.type.is_variable( atom1 ) ) {
+ var list1 = new Term( "[]" );
+ for( var i = atom1.id.length-1; i >= 0; i-- ) {
+ list1 = new Term( ".", [new Term( atom1.id.charAt( i ) ), list1] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [list, list1] ) ), point.substitution, point )] );
+ } else {
+ var pointer = list;
+ var v = pl.type.is_variable( atom1 );
+ var str = "";
+ while( pointer.indicator === "./2" ) {
+ if( !pl.type.is_character( pointer.args[0] ) ) {
+ if( pl.type.is_variable( pointer.args[0] ) && v ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_variable( pointer.args[0] ) ) {
+ thread.throw_error( pl.error.type( "character", pointer.args[0], atom.indicator ) );
+ return;
+ }
+ } else {
+ str += pointer.args[0].id;
+ }
+ pointer = pointer.args[1];
+ }
+ if( pl.type.is_variable( pointer ) && v ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_empty_list( pointer ) && !pl.type.is_variable( pointer ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [new Term( str ), atom1] ) ), point.substitution, point )] );
+ }
+ }
+ }
+ },
+
+ // atom_codes/2
+ "atom_codes/2": function( thread, point, atom ) {
+ var atom1 = atom.args[0], list = atom.args[1];
+ if( pl.type.is_variable( atom1 ) && pl.type.is_variable( list ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( atom1 ) && !pl.type.is_atom( atom1 ) ) {
+ thread.throw_error( pl.error.type( "atom", atom1, atom.indicator ) );
+ } else {
+ if( !pl.type.is_variable( atom1 ) ) {
+ var list1 = new Term( "[]" );
+ for( var i = atom1.id.length-1; i >= 0; i-- ) {
+ list1 = new Term( ".", [new Num( codePointAt(atom1.id,i), false ), list1] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [list, list1] ) ), point.substitution, point )] );
+ } else {
+ var pointer = list;
+ var v = pl.type.is_variable( atom1 );
+ var str = "";
+ while( pointer.indicator === "./2" ) {
+ if( !pl.type.is_character_code( pointer.args[0] ) ) {
+ if( pl.type.is_variable( pointer.args[0] ) && v ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_variable( pointer.args[0] ) ) {
+ thread.throw_error( pl.error.representation( "character_code", atom.indicator ) );
+ return;
+ }
+ } else {
+ str += fromCodePoint( pointer.args[0].value );
+ }
+ pointer = pointer.args[1];
+ }
+ if( pl.type.is_variable( pointer ) && v ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_empty_list( pointer ) && !pl.type.is_variable( pointer ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [new Term( str ), atom1] ) ), point.substitution, point )] );
+ }
+ }
+ }
+ },
+
+ // char_code/2
+ "char_code/2": function( thread, point, atom ) {
+ var char = atom.args[0], code = atom.args[1];
+ if( pl.type.is_variable( char ) && pl.type.is_variable( code ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( char ) && !pl.type.is_character( char ) ) {
+ thread.throw_error( pl.error.type( "character", char, atom.indicator ) );
+ } else if( !pl.type.is_variable( code ) && !pl.type.is_integer( code ) ) {
+ thread.throw_error( pl.error.type( "integer", code, atom.indicator ) );
+ } else if( !pl.type.is_variable( code ) && !pl.type.is_character_code( code ) ) {
+ thread.throw_error( pl.error.representation( "character_code", atom.indicator ) );
+ } else {
+ if( pl.type.is_variable( code ) ) {
+ var code1 = new Num( codePointAt(char.id,0 ), false );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [code1, code] ) ), point.substitution, point )] );
+ } else {
+ var char1 = new Term( fromCodePoint( code.value ) );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [char1, char] ) ), point.substitution, point )] );
+ }
+ }
+ },
+
+ // number_chars/2
+ "number_chars/2": function( thread, point, atom ) {
+ var str, num = atom.args[0], list = atom.args[1];
+ if( pl.type.is_variable( num ) && pl.type.is_variable( list ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( num ) && !pl.type.is_number( num ) ) {
+ thread.throw_error( pl.error.type( "number", num, atom.indicator ) );
+ } else if( !pl.type.is_variable( list ) && !pl.type.is_list( list ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else {
+ var isvar = pl.type.is_variable( num );
+ if( !pl.type.is_variable( list ) ) {
+ var pointer = list;
+ var total = true;
+ str = "";
+ while( pointer.indicator === "./2" ) {
+ if( !pl.type.is_character( pointer.args[0] ) ) {
+ if( pl.type.is_variable( pointer.args[0] ) ) {
+ total = false;
+ } else if( !pl.type.is_variable( pointer.args[0] ) ) {
+ thread.throw_error( pl.error.type( "character", pointer.args[0], atom.indicator ) );
+ return;
+ }
+ } else {
+ str += pointer.args[0].id;
+ }
+ pointer = pointer.args[1];
+ }
+ total = total && pl.type.is_empty_list( pointer );
+ if( !pl.type.is_empty_list( pointer ) && !pl.type.is_variable( pointer ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ return;
+ }
+ if( !total && isvar ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( total ) {
+ if( pl.type.is_variable( pointer ) && isvar ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else {
+ var expr = thread.parse( str );
+ var num2 = expr.value;
+ if( !pl.type.is_number( num2 ) || expr.tokens[expr.tokens.length-1].space ) {
+ thread.throw_error( pl.error.syntax_by_predicate( "parseable_number", atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [num, num2] ) ), point.substitution, point )] );
+ }
+ return;
+ }
+ }
+ }
+ if( !isvar ) {
+ str = num.toString();
+ var list2 = new Term( "[]" );
+ for( var i = str.length - 1; i >= 0; i-- ) {
+ list2 = new Term( ".", [ new Term( str.charAt( i ) ), list2 ] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [list, list2] ) ), point.substitution, point )] );
+ }
+ }
+ },
+
+ // number_codes/2
+ "number_codes/2": function( thread, point, atom ) {
+ var str, num = atom.args[0], list = atom.args[1];
+ if( pl.type.is_variable( num ) && pl.type.is_variable( list ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( num ) && !pl.type.is_number( num ) ) {
+ thread.throw_error( pl.error.type( "number", num, atom.indicator ) );
+ } else if( !pl.type.is_variable( list ) && !pl.type.is_list( list ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else {
+ var isvar = pl.type.is_variable( num );
+ if( !pl.type.is_variable( list ) ) {
+ var pointer = list;
+ var total = true;
+ str = "";
+ while( pointer.indicator === "./2" ) {
+ if( !pl.type.is_character_code( pointer.args[0] ) ) {
+ if( pl.type.is_variable( pointer.args[0] ) ) {
+ total = false;
+ } else if( !pl.type.is_variable( pointer.args[0] ) ) {
+ thread.throw_error( pl.error.type( "character_code", pointer.args[0], atom.indicator ) );
+ return;
+ }
+ } else {
+ str += fromCodePoint( pointer.args[0].value );
+ }
+ pointer = pointer.args[1];
+ }
+ total = total && pl.type.is_empty_list( pointer );
+ if( !pl.type.is_empty_list( pointer ) && !pl.type.is_variable( pointer ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ return;
+ }
+ if( !total && isvar ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( total ) {
+ if( pl.type.is_variable( pointer ) && isvar ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else {
+ var expr = thread.parse( str );
+ var num2 = expr.value;
+ if( !pl.type.is_number( num2 ) || expr.tokens[expr.tokens.length-1].space ) {
+ thread.throw_error( pl.error.syntax_by_predicate( "parseable_number", atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [num, num2] ) ), point.substitution, point )] );
+ }
+ return;
+ }
+ }
+ }
+ if( !isvar ) {
+ str = num.toString();
+ var list2 = new Term( "[]" );
+ for( var i = str.length - 1; i >= 0; i-- ) {
+ list2 = new Term( ".", [ new Num( codePointAt(str,i), false ), list2 ] );
+ }
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [list, list2] ) ), point.substitution, point )] );
+ }
+ }
+ },
+
+ // upcase_atom/2
+ "upcase_atom/2": function( thread, point, atom ) {
+ var original = atom.args[0], upcase = atom.args[1];
+ if( pl.type.is_variable( original ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( original ) ) {
+ thread.throw_error( pl.error.type( "atom", original, atom.indicator ) );
+ } else if( !pl.type.is_variable( upcase ) && !pl.type.is_atom( upcase ) ) {
+ thread.throw_error( pl.error.type( "atom", upcase, atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [upcase, new Term( original.id.toUpperCase(), [] )] ) ), point.substitution, point )] );
+ }
+ },
+
+ // downcase_atom/2
+ "downcase_atom/2": function( thread, point, atom ) {
+ var original = atom.args[0], downcase = atom.args[1];
+ if( pl.type.is_variable( original ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( original ) ) {
+ thread.throw_error( pl.error.type( "atom", original, atom.indicator ) );
+ } else if( !pl.type.is_variable( downcase ) && !pl.type.is_atom( downcase ) ) {
+ thread.throw_error( pl.error.type( "atom", downcase, atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [downcase, new Term( original.id.toLowerCase(), [] )] ) ), point.substitution, point )] );
+ }
+ },
+
+ // atomic_list_concat/2
+ "atomic_list_concat/2": function( thread, point, atom ) {
+ var list = atom.args[0], concat = atom.args[1];
+ thread.prepend( [new State( point.goal.replace( new Term( "atomic_list_concat", [list, new Term( "", [] ), concat] ) ), point.substitution, point )] );
+ },
+
+ // atomic_list_concat/3
+ "atomic_list_concat/3": function( thread, point, atom ) {
+ var list = atom.args[0], separator = atom.args[1], concat = atom.args[2];
+ if( pl.type.is_variable( separator ) || pl.type.is_variable( list ) && pl.type.is_variable( concat ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( list ) && !pl.type.is_list( list ) ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else if( !pl.type.is_variable( concat ) && !pl.type.is_atom( concat ) ) {
+ thread.throw_error( pl.error.type( "atom", concat, atom.indicator ) );
+ } else {
+ if( !pl.type.is_variable( concat ) ) {
+ var atomic = arrayToList( map(
+ concat.id.split( separator.id ),
+ function( id ) {
+ return new Term( id, [] );
+ }
+ ) );
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [atomic, list] ) ), point.substitution, point )] );
+ } else {
+ var id = "";
+ var pointer = list;
+ while( pl.type.is_term( pointer ) && pointer.indicator === "./2" ) {
+ if( !pl.type.is_atom( pointer.args[0] ) && !pl.type.is_number( pointer.args[0] ) ) {
+ thread.throw_error( pl.error.type( "atomic", pointer.args[0], atom.indicator ) );
+ return;
+ }
+ if( id !== "" )
+ id += separator.id;
+ if( pl.type.is_atom( pointer.args[0] ) )
+ id += pointer.args[0].id;
+ else
+ id += "" + pointer.args[0].value;
+ pointer = pointer.args[1];
+ }
+ id = new Term( id, [] );
+ if( pl.type.is_variable( pointer ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_term( pointer ) || pointer.indicator !== "[]/0" ) {
+ thread.throw_error( pl.error.type( "list", list, atom.indicator ) );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [id, concat] ) ), point.substitution, point )] );
+ }
+ }
+ }
+ },
+
+ // TERM COMPARISON
+
+ "@=2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) <= 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "==/2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) === 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "\\==/2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) !== 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "@2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) < 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "@>/2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) > 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "@>=/2": function( thread, point, atom ) {
+ if( pl.compare( atom.args[0], atom.args[1] ) >= 0 ) {
+ thread.success( point );
+ }
+ },
+
+ "compare/3": function( thread, point, atom ) {
+ var order = atom.args[0], left = atom.args[1], right = atom.args[2];
+ if( !pl.type.is_variable( order ) && !pl.type.is_atom( order ) ) {
+ thread.throw_error( pl.error.type( "atom", order, atom.indicator ) );
+ } else if( pl.type.is_atom( order ) && ["<", ">", "="].indexOf( order.id ) === -1 ) {
+ thread.throw_error( pl.type.domain( "order", order, atom.indicator ) );
+ } else {
+ var compare = pl.compare( left, right );
+ compare = compare === 0 ? "=" : (compare === -1 ? "<" : ">");
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [order, new Term( compare, [] )] ) ), point.substitution, point )] );
+ }
+ },
+
+ // EVALUATION
+
+ // is/2
+ "is/2": function( thread, point, atom ) {
+ var op = atom.args[1].interpret( thread );
+ if( !pl.type.is_number( op ) ) {
+ thread.throw_error( op );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [atom.args[0], op], thread.level ) ), point.substitution, point )] );
+ }
+ },
+
+ // between/3
+ "between/3": function( thread, point, atom ) {
+ var lower = atom.args[0], upper = atom.args[1], bet = atom.args[2];
+ if( pl.type.is_variable( lower ) || pl.type.is_variable( upper ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_integer( lower ) ) {
+ thread.throw_error( pl.error.type( "integer", lower, atom.indicator ) );
+ } else if( !pl.type.is_integer( upper ) ) {
+ thread.throw_error( pl.error.type( "integer", upper, atom.indicator ) );
+ } else if( !pl.type.is_variable( bet ) && !pl.type.is_integer( bet ) ) {
+ thread.throw_error( pl.error.type( "integer", bet, atom.indicator ) );
+ } else {
+ if( pl.type.is_variable( bet ) ) {
+ var states = [new State( point.goal.replace( new Term( "=", [bet, lower] ) ), point.substitution, point )];
+ if( lower.value < upper.value )
+ states.push( new State( point.goal.replace( new Term( "between", [new Num( lower.value+1, false ), upper, bet] ) ), point.substitution, point ) );
+ thread.prepend( states );
+ } else if( lower.value <= bet.value && upper.value >= bet.value ) {
+ thread.success( point );
+ }
+ }
+ },
+
+ // succ/2
+ "succ/2": function( thread, point, atom ) {
+ var n = atom.args[0], m = atom.args[1];
+ if( pl.type.is_variable( n ) && pl.type.is_variable( m ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( n ) && !pl.type.is_integer( n ) ) {
+ thread.throw_error( pl.error.type( "integer", n, atom.indicator ) );
+ } else if( !pl.type.is_variable( m ) && !pl.type.is_integer( m ) ) {
+ thread.throw_error( pl.error.type( "integer", m, atom.indicator ) );
+ } else if( !pl.type.is_variable( n ) && n.value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", n, atom.indicator ) );
+ } else if( !pl.type.is_variable( m ) && m.value < 0 ) {
+ thread.throw_error( pl.error.domain( "not_less_than_zero", m, atom.indicator ) );
+ } else {
+ if( pl.type.is_variable( m ) || m.value > 0 ) {
+ if( pl.type.is_variable( n ) ) {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [n, new Num( m.value-1, false )] ) ), point.substitution, point )] );
+ } else {
+ thread.prepend( [new State( point.goal.replace( new Term( "=", [m, new Num( n.value+1, false )] ) ), point.substitution, point )] );
+ }
+ }
+ }
+ },
+
+ // =:=/2
+ "=:=/2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp === 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // =\=/2
+ "=\\=/2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp !== 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // 2
+ "2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp < 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // =2
+ "=2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp <= 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // >/2
+ ">/2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp > 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // >=/2
+ ">=/2": function( thread, point, atom ) {
+ var cmp = pl.arithmetic_compare( thread, atom.args[0], atom.args[1] );
+ if( pl.type.is_term( cmp ) ) {
+ thread.throw_error( cmp );
+ } else if( cmp >= 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // TYPE TEST
+
+ // var/1
+ "var/1": function( thread, point, atom ) {
+ if( pl.type.is_variable( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // atom/1
+ "atom/1": function( thread, point, atom ) {
+ if( pl.type.is_atom( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // atomic/1
+ "atomic/1": function( thread, point, atom ) {
+ if( pl.type.is_atomic( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // compound/1
+ "compound/1": function( thread, point, atom ) {
+ if( pl.type.is_compound( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // integer/1
+ "integer/1": function( thread, point, atom ) {
+ if( pl.type.is_integer( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // float/1
+ "float/1": function( thread, point, atom ) {
+ if( pl.type.is_float( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // number/1
+ "number/1": function( thread, point, atom ) {
+ if( pl.type.is_number( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // nonvar/1
+ "nonvar/1": function( thread, point, atom ) {
+ if( !pl.type.is_variable( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // ground/1
+ "ground/1": function( thread, point, atom ) {
+ if( atom.variables().length === 0 ) {
+ thread.success( point );
+ }
+ },
+
+ // acyclic_term/1
+ "acyclic_term/1": function( thread, point, atom ) {
+ var test = point.substitution.apply( point.substitution );
+ var variables = atom.args[0].variables();
+ for( var i = 0; i < variables.length; i++ )
+ if( point.substitution.links[variables[i]] !== undefined && !point.substitution.links[variables[i]].equals( test.links[variables[i]] ) )
+ return;
+ thread.success( point );
+ },
+
+ // callable/1
+ "callable/1": function( thread, point, atom ) {
+ if( pl.type.is_callable( atom.args[0] ) ) {
+ thread.success( point );
+ }
+ },
+
+ // is_list/1
+ "is_list/1": function( thread, point, atom ) {
+ var list = atom.args[0];
+ while( pl.type.is_term( list ) && list.indicator === "./2" )
+ list = list.args[1];
+ if( pl.type.is_term( list ) && list.indicator === "[]/0" )
+ thread.success( point );
+ },
+
+
+
+ // STREAM SELECTION AND CONTROL
+
+ // current_input/1
+ "current_input/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain("stream", stream, atom.indicator) );
+ } else {
+ if( pl.type.is_atom( stream ) && thread.get_stream_by_alias( stream.id ) )
+ stream = thread.get_stream_by_alias( stream.id );
+ thread.prepend( [new State(
+ point.goal.replace(new Term("=", [stream, thread.get_current_input()])),
+ point.substitution,
+ point)
+ ] );
+ }
+ },
+
+ // current_output/1
+ "current_output/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain("stream_or_alias", stream, atom.indicator) );
+ } else {
+ if( pl.type.is_atom( stream ) && thread.get_stream_by_alias( stream.id ) )
+ stream = thread.get_stream_by_alias( stream.id );
+ thread.prepend( [new State(
+ point.goal.replace(new Term("=", [stream, thread.get_current_output()])),
+ point.substitution,
+ point)
+ ] );
+ }
+ },
+
+ // set_input/1
+ "set_input/1": function( thread, point, atom ) {
+ var input = atom.args[0];
+ var stream = pl.type.is_stream( input ) ? input : thread.get_stream_by_alias( input.id );
+ if( pl.type.is_variable( input ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( input ) && !pl.type.is_stream( input ) && !pl.type.is_atom( input ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", input, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) ) {
+ thread.throw_error( pl.error.existence( "stream", input, atom.indicator ) );
+ } else if( stream.output === true ) {
+ thread.throw_error( pl.error.permission( "input", "stream", input, atom.indicator ) );
+ } else {
+ thread.set_current_input( stream );
+ thread.success( point );
+ }
+ },
+
+ // set_output/1
+ "set_output/1": function( thread, point, atom ) {
+ var output = atom.args[0];
+ var stream = pl.type.is_stream( output ) ? output : thread.get_stream_by_alias( output.id );
+ if( pl.type.is_variable( output ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( output ) && !pl.type.is_stream( output ) && !pl.type.is_atom( output ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", output, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) ) {
+ thread.throw_error( pl.error.existence( "stream", output, atom.indicator ) );
+ } else if( stream.input === true ) {
+ thread.throw_error( pl.error.permission( "output", "stream", output, atom.indicator ) );
+ } else {
+ thread.set_current_output( stream );
+ thread.success( point );
+ }
+ },
+
+ // open/3
+ "open/3": function( thread, point, atom ) {
+ var dest = atom.args[0], mode = atom.args[1], stream = atom.args[2];
+ thread.prepend( [new State(
+ point.goal.replace(new Term("open", [dest, mode, stream, new Term("[]", [])])),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // open/4
+ "open/4": function( thread, point, atom ) {
+ var dest = atom.args[0], mode = atom.args[1], stream = atom.args[2], options = atom.args[3];
+ if( pl.type.is_variable( dest ) || pl.type.is_variable( mode ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( mode ) && !pl.type.is_atom( mode ) ) {
+ thread.throw_error( pl.error.type( "atom", mode, atom.indicator ) );
+ } else if( !pl.type.is_list( options ) ) {
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.type( "variable", stream, atom.indicator ) );
+ } else if( !pl.type.is_atom( dest ) && !pl.type.is_streamable( dest ) ) {
+ thread.throw_error( pl.error.domain( "source_sink", dest, atom.indicator ) );
+ } else if( !pl.type.is_io_mode( mode ) ) {
+ thread.throw_error( pl.error.domain( "io_mode", mode, atom.indicator ) );
+ } else {
+ var obj_options = {};
+ var pointer = options;
+ var property;
+ while( pl.type.is_term(pointer) && pointer.indicator === "./2" ) {
+ property = pointer.args[0];
+ if( pl.type.is_variable( property ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_stream_option( property ) ) {
+ thread.throw_error( pl.error.domain( "stream_option", property, atom.indicator ) );
+ return;
+ }
+ obj_options[property.id] = property.args[0].id;
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator !== "[]/0" ) {
+ if( pl.type.is_variable( pointer ) )
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ else
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ return;
+ } else {
+ var alias = obj_options["alias"];
+ if( alias && thread.get_stream_by_alias(alias) ) {
+ thread.throw_error( pl.error.permission( "open", "source_sink", new Term("alias", [new Term(alias, [])]), atom.indicator ) );
+ return;
+ }
+ if( !obj_options["type"] )
+ obj_options["type"] = "text";
+ var file;
+ if( pl.type.is_atom( dest ) )
+ file = thread.file_system_open( dest.id, obj_options["type"], mode.id );
+ else
+ file = dest.stream( obj_options["type"], mode.id );
+ if( file === false ) {
+ thread.throw_error( pl.error.permission( "open", "source_sink", dest, atom.indicator ) );
+ return;
+ } else if( file === null ) {
+ thread.throw_error( pl.error.existence( "source_sink", dest, atom.indicator ) );
+ return;
+ }
+ var newstream = new Stream(
+ file, mode.id,
+ obj_options["alias"],
+ obj_options["type"],
+ obj_options["reposition"] === "true",
+ obj_options["eof_action"] );
+ if( alias )
+ thread.session.streams[alias] = newstream;
+ else
+ thread.session.streams[newstream.id] = newstream;
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [stream, newstream] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ }
+ },
+
+ // close/1
+ "close/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace(new Term("close", [stream, new Term("[]", [])])),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // close/2
+ "close/2": function( thread, point, atom ) {
+ var stream = atom.args[0], options = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( options ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_list( options ) ) {
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else {
+ // Get options
+ var obj_options = {};
+ var pointer = options;
+ var property;
+ while( pl.type.is_term(pointer) && pointer.indicator === "./2" ) {
+ property = pointer.args[0];
+ if( pl.type.is_variable( property ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_close_option( property ) ) {
+ thread.throw_error( pl.error.domain( "close_option", property, atom.indicator ) );
+ return;
+ }
+ obj_options[property.id] = property.args[0].id === "true";
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator !== "[]/0" ) {
+ if( pl.type.is_variable( pointer ) )
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ else
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ return;
+ } else {
+ if( stream2 === thread.session.standard_input || stream2 === thread.session.standard_output ) {
+ thread.success( point );
+ return;
+ } else if( stream2 === thread.session.current_input ) {
+ thread.session.current_input = thread.session.standard_input;
+ } else if( stream2 === thread.session.current_output ) {
+ thread.session.current_output = thread.session.current_output;
+ }
+ if( stream2.alias !== null )
+ delete thread.session.streams[stream2.alias];
+ else
+ delete thread.session.streams[stream2.id];
+ if( stream2.output )
+ stream2.stream.flush();
+ var closed = stream2.stream.close();
+ stream2.stream = null;
+ if( obj_options.force === true || closed === true ) {
+ thread.success( point );
+ }
+ }
+ }
+ },
+
+ // flush_output/0
+ "flush_output/0": function( thread, point, atom ) {
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("flush_output", [new Var("S")])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // flush_output/1
+ "flush_output/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream.input === true ) {
+ thread.throw_error( pl.error.permission( "output", "stream", output, atom.indicator ) );
+ } else {
+ stream2.stream.flush();
+ thread.success( point );
+ }
+ },
+
+ // stream_property/2
+ "stream_property/2": function( thread, point, atom ) {
+ var stream = atom.args[0], property = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && (!pl.type.is_stream( stream2 ) || stream2.stream === null) ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( !pl.type.is_variable( property ) && !pl.type.is_stream_property( property ) ) {
+ thread.throw_error( pl.error.domain( "stream_property", property, atom.indicator ) );
+ } else {
+ var streams = [];
+ var states = [];
+ if( !pl.type.is_variable( stream ) )
+ streams.push( stream2 );
+ else
+ for( var key in thread.session.streams )
+ streams.push( thread.session.streams[key] );
+ for( var i = 0; i < streams.length; i++ ) {
+ var properties = [];
+ if( streams[i].filename )
+ properties.push( new Term( "file_name", [new Term(streams[i].file_name, [])] ) );
+ properties.push( new Term( "mode", [new Term(streams[i].mode, [])] ) );
+ properties.push( new Term( streams[i].input ? "input" : "output", [] ) );
+ if( streams[i].alias )
+ properties.push( new Term( "alias", [new Term(streams[i].alias, [])] ) );
+ properties.push( new Term( "position", [
+ typeof streams[i].position === "number" ?
+ new Num( streams[i].position, false ) :
+ new Term( streams[i].position, [] )
+ ] ) );
+ properties.push( new Term( "end_of_stream", [new Term(
+ streams[i].position === "end_of_stream" ? "at" :
+ streams[i].position === "past_end_of_stream" ? "past" :
+ "not", [])] ) );
+ properties.push( new Term( "eof_action", [new Term(streams[i].eof_action, [])] ) );
+ properties.push( new Term( "reposition", [new Term(streams[i].reposition ? "true" : "false", [])] ) );
+ properties.push( new Term( "type", [new Term(streams[i].type, [])] ) );
+ for( var j = 0; j < properties.length; j++ ) {
+ states.push( new State(
+ point.goal.replace( new Term( ",", [
+ new Term("=", [pl.type.is_variable( stream ) ? stream : stream2, streams[i]]),
+ new Term("=", [property, properties[j]])]) ),
+ point.substitution,
+ point
+ ) );
+ }
+ }
+ thread.prepend( states );
+ }
+ },
+
+ // at_end_of_stream/0
+ "at_end_of_stream/0": function( thread, point, atom ) {
+ thread.prepend( [new State(
+ point.goal.replace(
+ new Term(",", [new Term("current_input", [new Var("S")]),new Term(",", [
+ new Term("stream_property", [new Var("S"),new Term("end_of_stream", [new Var("E")])]),
+ new Term(",", [new Term("!", []),new Term(";", [new Term("=", [new Var("E"),
+ new Term("at", [])]),new Term("=", [new Var("E"),new Term("past", [])])])])])])
+ ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // at_end_of_stream/1
+ "at_end_of_stream/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace(
+ new Term(",", [new Term("stream_property", [stream,new Term("end_of_stream", [new Var("E")])]),
+ new Term(",", [new Term("!", []),new Term(";", [new Term("=", [new Var("E"),new Term("at", [])]),
+ new Term("=", [new Var("E"),new Term("past", [])])])])])
+ ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // set_stream_position/2
+ "set_stream_position/2": function( thread, point, atom ) {
+ var stream = atom.args[0], position = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( position ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream_position( position ) ) {
+ thread.throw_error( pl.error.domain( "stream_position", position, atom.indicator ) );
+ } else if( stream2.reposition === false ) {
+ thread.throw_error( pl.error.permission( "reposition", "stream", stream, atom.indicator ) );
+ } else {
+ if( pl.type.is_integer( position ) )
+ stream2.position = position.value;
+ else
+ stream2.position = position.id;
+ thread.success( point );
+ }
+ },
+
+
+
+ // CHARACTER INPUT OUTPUT
+
+ // get_char/1
+ "get_char/1": function( thread, point, atom ) {
+ var char = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("get_char", [new Var("S"),char])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // get_char/2
+ "get_char/2": function( thread, point, atom ) {
+ var stream = atom.args[0], char = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( char ) && !pl.type.is_character( char ) ) {
+ thread.throw_error( pl.error.type( "in_character", char, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "input", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_char;
+ if( stream2.position === "end_of_stream" ) {
+ stream_char = "end_of_file";
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_char = stream2.stream.get( 1, stream2.position );
+ if( stream_char === null ) {
+ thread.throw_error( pl.error.representation( "character", atom.indicator ) );
+ return;
+ }
+ stream2.position++;
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Term(stream_char,[]), char] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // get_code/1
+ "get_code/1": function( thread, point, atom ) {
+ var code = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("get_code", [new Var("S"),code])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // get_code/2
+ "get_code/2": function( thread, point, atom ) {
+ var stream = atom.args[0], code = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( code ) && !pl.type.is_integer( code ) ) {
+ thread.throw_error( pl.error.type( "integer", char, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "input", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_code;
+ if( stream2.position === "end_of_stream" ) {
+ stream_code = -1;
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_code = stream2.stream.get( 1, stream2.position );
+ if( stream_code === null ) {
+ thread.throw_error( pl.error.representation( "character", atom.indicator ) );
+ return;
+ }
+ stream_code = codePointAt( stream_code, 0 );
+ stream2.position++;
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Num(stream_code, false), code] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // peek_char/1
+ "peek_char/1": function( thread, point, atom ) {
+ var char = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("peek_char", [new Var("S"),char])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // peek_char/2
+ "peek_char/2": function( thread, point, atom ) {
+ var stream = atom.args[0], char = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( char ) && !pl.type.is_character( char ) ) {
+ thread.throw_error( pl.error.type( "in_character", char, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "input", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_char;
+ if( stream2.position === "end_of_stream" ) {
+ stream_char = "end_of_file";
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_char = stream2.stream.get( 1, stream2.position );
+ if( stream_char === null ) {
+ thread.throw_error( pl.error.representation( "character", atom.indicator ) );
+ return;
+ }
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Term(stream_char,[]), char] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // peek_code/1
+ "peek_code/1": function( thread, point, atom ) {
+ var code = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("peek_code", [new Var("S"),code])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // peek_code/2
+ "peek_code/2": function( thread, point, atom ) {
+ var stream = atom.args[0], code = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( code ) && !pl.type.is_integer( code ) ) {
+ thread.throw_error( pl.error.type( "integer", char, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "input", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_code;
+ if( stream2.position === "end_of_stream" ) {
+ stream_code = -1;
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_code = stream2.stream.get( 1, stream2.position );
+ if( stream_code === null ) {
+ thread.throw_error( pl.error.representation( "character", atom.indicator ) );
+ return;
+ }
+ stream_code = codePointAt( stream_code, 0 );
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Num(stream_code, false), code] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // put_char/1
+ "put_char/1": function( thread, point, atom ) {
+ var char = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("put_char", [new Var("S"),char])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // put_char/2
+ "put_char/2": function( thread, point, atom ) {
+ var stream = atom.args[0], char = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( char ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_character( char ) ) {
+ thread.throw_error( pl.error.type( "character", char, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.input ) {
+ thread.throw_error( pl.error.permission( "output", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "output", "binary_stream", stream, atom.indicator ) );
+ } else {
+ if( stream2.stream.put( char.id, stream2.position ) ) {
+ if(typeof stream2.position === "number")
+ stream2.position++;
+ thread.success( point );
+ }
+ }
+ },
+
+ // put_code/1
+ "put_code/1": function( thread, point, atom ) {
+ var code = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("put_code", [new Var("S"),code])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // put_code/2
+ "put_code/2": function( thread, point, atom ) {
+ var stream = atom.args[0], code = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( code ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_integer( code ) ) {
+ thread.throw_error( pl.error.type( "integer", code, atom.indicator ) );
+ } else if( !pl.type.is_character_code( code ) ) {
+ thread.throw_error( pl.error.representation( "character_code", atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.input ) {
+ thread.throw_error( pl.error.permission( "output", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "output", "binary_stream", stream, atom.indicator ) );
+ } else {
+ if( stream2.stream.put_char( fromCodePoint( code.value ), stream2.position ) ) {
+ if(typeof stream2.position === "number")
+ stream2.position++;
+ thread.success( point );
+ }
+ }
+ },
+
+ // nl/0
+ "nl/0": function( thread, point, atom ) {
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("put_char", [new Var("S"), new Term("\n", [])])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // nl/1
+ "nl/1": function( thread, point, atom ) {
+ var stream = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term("put_char", [stream, new Term("\n", [])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+
+
+ // BYTE INPUT/OUTPUT
+
+ // get_byte/1
+ "get_byte/1": function( thread, point, atom ) {
+ var byte = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("get_byte", [new Var("S"),byte])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // get_byte/2
+ "get_byte/2": function( thread, point, atom ) {
+ var stream = atom.args[0], byte = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( byte ) && !pl.type.is_byte( byte ) ) {
+ thread.throw_error( pl.error.type( "in_byte", char, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "text" ) {
+ thread.throw_error( pl.error.permission( "input", "text_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_byte;
+ if( stream2.position === "end_of_stream" ) {
+ stream_byte = "end_of_file";
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_byte = stream2.stream.get_byte( stream2.position );
+ if( stream_byte === null ) {
+ thread.throw_error( pl.error.representation( "byte", atom.indicator ) );
+ return;
+ }
+ stream2.position++;
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Num(stream_byte,false), byte] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // peek_byte/1
+ "peek_byte/1": function( thread, point, atom ) {
+ var byte = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("peek_byte", [new Var("S"),byte])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // peek_byte/2
+ "peek_byte/2": function( thread, point, atom ) {
+ var stream = atom.args[0], byte = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_variable( byte ) && !pl.type.is_byte( byte ) ) {
+ thread.throw_error( pl.error.type( "in_byte", char, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "text" ) {
+ thread.throw_error( pl.error.permission( "input", "text_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ var stream_byte;
+ if( stream2.position === "end_of_stream" ) {
+ stream_byte = "end_of_file";
+ stream2.position = "past_end_of_stream";
+ } else {
+ stream_byte = stream2.stream.get_byte( stream2.position );
+ if( stream_byte === null ) {
+ thread.throw_error( pl.error.representation( "byte", atom.indicator ) );
+ return;
+ }
+ }
+ thread.prepend( [new State(
+ point.goal.replace( new Term( "=", [new Num(stream_byte,false), byte] ) ),
+ point.substitution,
+ point
+ )] );
+ }
+ },
+
+ // put_byte/1
+ "put_byte/1": function( thread, point, atom ) {
+ var byte = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("put_byte", [new Var("S"),byte])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // put_byte/2
+ "put_byte/2": function( thread, point, atom ) {
+ var stream = atom.args[0], byte = atom.args[1];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( byte ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_byte( byte ) ) {
+ thread.throw_error( pl.error.type( "byte", byte, atom.indicator ) );
+ } else if( !pl.type.is_variable( stream ) && !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.input ) {
+ thread.throw_error( pl.error.permission( "output", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "text" ) {
+ thread.throw_error( pl.error.permission( "output", "text_stream", stream, atom.indicator ) );
+ } else {
+ if( stream2.stream.put_byte( byte.value, stream2.position ) ) {
+ if(typeof stream2.position === "number")
+ stream2.position++;
+ thread.success( point );
+ }
+ }
+ },
+
+
+
+ // TERM INPUT/OUTPUT
+
+ // read/1
+ "read/1": function( thread, point, atom ) {
+ var term = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("read_term", [new Var("S"),term,new Term("[]",[])])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // read/2
+ "read/2": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term("read_term", [stream,term,new Term("[]",[])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // read_term/2
+ "read_term/2": function( thread, point, atom ) {
+ var term = atom.args[0], options = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_input", [new Var("S")]),new Term("read_term", [new Var("S"),term,options])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // read_term/3
+ "read_term/3": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1], options = atom.args[2];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( options ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_list( options ) ) {
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.output ) {
+ thread.throw_error( pl.error.permission( "input", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "input", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "input", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ // Get options
+ var obj_options = {};
+ var pointer = options;
+ var property;
+ while( pl.type.is_term(pointer) && pointer.indicator === "./2" ) {
+ property = pointer.args[0];
+ if( pl.type.is_variable( property ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_read_option( property ) ) {
+ thread.throw_error( pl.error.domain( "read_option", property, atom.indicator ) );
+ return;
+ }
+ obj_options[property.id] = property.args[0];
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator !== "[]/0" ) {
+ if( pl.type.is_variable( pointer ) )
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ else
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ return;
+ } else {
+ var char, tokenizer, expr;
+ var text = "";
+ var tokens = [];
+ var last_token = null;
+ // Get term
+ while( last_token === null || last_token.name !== "atom" || last_token.value !== "." ||
+ (expr.type === ERROR && pl.flatten_error(new Term("throw",[expr.value])).found === "token_not_found") ) {
+ char = stream2.stream.get( 1, stream2.position );
+ if( char === null ) {
+ thread.throw_error( pl.error.representation( "character", atom.indicator ) );
+ return;
+ }
+ if( char === "end_of_file" || char === "past_end_of_file" ) {
+ if( expr )
+ thread.throw_error( pl.error.syntax( tokens[expr.len-1], ". or expression expected", false ) );
+ else
+ thread.throw_error( pl.error.syntax( null, "token not found", true ) );
+ return;
+ }
+ stream2.position++;
+ text += char;
+ tokenizer = new Tokenizer( thread );
+ tokenizer.new_text( text );
+ tokens = tokenizer.get_tokens();
+ last_token = tokens !== null && tokens.length > 0 ? tokens[tokens.length-1] : null;
+ if( tokens === null )
+ continue;
+ expr = parseExpr(thread, tokens, 0, thread.__get_max_priority(), false);
+ }
+ // Succeed analyzing term
+ if( expr.type === SUCCESS && expr.len === tokens.length-1 && last_token.value === "." ) {
+ expr = expr.value.rename( thread );
+ var eq = new Term( "=", [term, expr] );
+ // Variables
+ if( obj_options.variables ) {
+ var vars = arrayToList( map( nub( expr.variables() ), function(v) { return new Var(v); } ) );
+ eq = new Term( ",", [eq, new Term( "=", [obj_options.variables, vars] )] )
+ }
+ // Variable names
+ if( obj_options.variable_names ) {
+ var vars = arrayToList( map( nub( expr.variables() ), function(v) {
+ var prop;
+ for( prop in thread.session.renamed_variables ) {
+ if( thread.session.renamed_variables.hasOwnProperty( prop ) ) {
+ if( thread.session.renamed_variables[ prop ] === v )
+ break;
+ }
+ }
+ return new Term( "=", [new Term( prop, []), new Var(v)] );
+ } ) );
+ eq = new Term( ",", [eq, new Term( "=", [obj_options.variable_names, vars] )] )
+ }
+ // Singletons
+ if( obj_options.singletons ) {
+ var vars = arrayToList( map( new Rule( expr, null ).singleton_variables(), function(v) {
+ var prop;
+ for( prop in thread.session.renamed_variables ) {
+ if( thread.session.renamed_variables.hasOwnProperty( prop ) ) {
+ if( thread.session.renamed_variables[ prop ] === v )
+ break;
+ }
+ }
+ return new Term( "=", [new Term( prop, []), new Var(v)] );
+ } ) );
+ eq = new Term( ",", [eq, new Term( "=", [obj_options.singletons, vars] )] )
+ }
+ thread.prepend( [new State( point.goal.replace( eq ), point.substitution, point )] );
+ // Failed analyzing term
+ } else {
+ if( expr.type === SUCCESS )
+ thread.throw_error( pl.error.syntax( tokens[expr.len], "unexpected token", false ) );
+ else
+ thread.throw_error( expr.value );
+ }
+ }
+ }
+ },
+
+ // write/1
+ "write/1": function( thread, point, atom ) {
+ var term = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("write", [new Var("S"),term])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // write/2
+ "write/2": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term("write_term", [stream, term,
+ new Term(".", [new Term("quoted", [new Term("false", [])]),
+ new Term(".", [new Term("ignore_ops", [new Term("false")]),
+ new Term(".", [new Term("numbervars", [new Term("true")]), new Term("[]",[])])])])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // writeq/1
+ "writeq/1": function( thread, point, atom ) {
+ var term = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("writeq", [new Var("S"),term])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // writeq/2
+ "writeq/2": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term("write_term", [stream, term,
+ new Term(".", [new Term("quoted", [new Term("true", [])]),
+ new Term(".", [new Term("ignore_ops", [new Term("false")]),
+ new Term(".", [new Term("numbervars", [new Term("true")]), new Term("[]",[])])])])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // write_canonical/1
+ "write_canonical/1": function( thread, point, atom ) {
+ var term = atom.args[0];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("write_canonical", [new Var("S"),term])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // write_canonical/2
+ "write_canonical/2": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term("write_term", [stream, term,
+ new Term(".", [new Term("quoted", [new Term("true", [])]),
+ new Term(".", [new Term("ignore_ops", [new Term("true")]),
+ new Term(".", [new Term("numbervars", [new Term("false")]), new Term("[]",[])])])])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // write_term/2
+ "write_term/2": function( thread, point, atom ) {
+ var term = atom.args[0], options = atom.args[1];
+ thread.prepend( [new State(
+ point.goal.replace( new Term(",", [new Term("current_output", [new Var("S")]),new Term("write_term", [new Var("S"),term,options])]) ),
+ point.substitution,
+ point
+ )] );
+ },
+
+ // write_term/3
+ "write_term/3": function( thread, point, atom ) {
+ var stream = atom.args[0], term = atom.args[1], options = atom.args[2];
+ var stream2 = pl.type.is_stream( stream ) ? stream : thread.get_stream_by_alias( stream.id );
+ if( pl.type.is_variable( stream ) || pl.type.is_variable( options ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_list( options ) ) {
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream ) && !pl.type.is_atom( stream ) ) {
+ thread.throw_error( pl.error.domain( "stream_or_alias", stream, atom.indicator ) );
+ } else if( !pl.type.is_stream( stream2 ) || stream2.stream === null ) {
+ thread.throw_error( pl.error.existence( "stream", stream, atom.indicator ) );
+ } else if( stream2.input ) {
+ thread.throw_error( pl.error.permission( "output", "stream", stream, atom.indicator ) );
+ } else if( stream2.type === "binary" ) {
+ thread.throw_error( pl.error.permission( "output", "binary_stream", stream, atom.indicator ) );
+ } else if( stream2.position === "past_end_of_stream" && stream2.eof_action === "error" ) {
+ thread.throw_error( pl.error.permission( "output", "past_end_of_stream", stream, atom.indicator ) );
+ } else {
+ // Get options
+ var obj_options = {};
+ var pointer = options;
+ var property;
+ while( pl.type.is_term(pointer) && pointer.indicator === "./2" ) {
+ property = pointer.args[0];
+ if( pl.type.is_variable( property ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ return;
+ } else if( !pl.type.is_write_option( property ) ) {
+ thread.throw_error( pl.error.domain( "write_option", property, atom.indicator ) );
+ return;
+ }
+ obj_options[property.id] = property.args[0].id === "true";
+ pointer = pointer.args[1];
+ }
+ if( pointer.indicator !== "[]/0" ) {
+ if( pl.type.is_variable( pointer ) )
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ else
+ thread.throw_error( pl.error.type( "list", options, atom.indicator ) );
+ return;
+ } else {
+ obj_options.session = thread.session;
+ var text = term.toString( obj_options );
+ stream2.stream.put( text, stream2.position );
+ if( typeof stream2.position === "number" )
+ stream2.position += text.length;
+ thread.success( point );
+ }
+ }
+ },
+
+
+
+ // IMPLEMENTATION DEFINED HOOKS
+
+ // halt/0
+ "halt/0": function( thread, point, _ ) {
+ thread.points = [];
+ },
+
+ // halt/1
+ "halt/1": function( thread, point, atom ) {
+ var int = atom.args[0];
+ if( pl.type.is_variable( int ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_integer( int ) ) {
+ thread.throw_error( pl.error.type( "integer", int, atom.indicator ) );
+ } else {
+ thread.points = [];
+ }
+ },
+
+ // current_prolog_flag/2
+ "current_prolog_flag/2": function( thread, point, atom ) {
+ var flag = atom.args[0], value = atom.args[1];
+ if( !pl.type.is_variable( flag ) && !pl.type.is_atom( flag ) ) {
+ thread.throw_error( pl.error.type( "atom", flag, atom.indicator ) );
+ } else if( !pl.type.is_variable( flag ) && !pl.type.is_flag( flag ) ) {
+ thread.throw_error( pl.error.domain( "prolog_flag", flag, atom.indicator ) );
+ } else {
+ var states = [];
+ for( var name in pl.flag ) {
+ if(!pl.flag.hasOwnProperty(name)) continue;
+ var goal = new Term( ",", [new Term( "=", [new Term( name ), flag] ), new Term( "=", [thread.get_flag(name), value] )] );
+ states.push( new State( point.goal.replace( goal ), point.substitution, point ) );
+ }
+ thread.prepend( states );
+ }
+ },
+
+ // set_prolog_flag/2
+ "set_prolog_flag/2": function( thread, point, atom ) {
+ var flag = atom.args[0], value = atom.args[1];
+ if( pl.type.is_variable( flag ) || pl.type.is_variable( value ) ) {
+ thread.throw_error( pl.error.instantiation( atom.indicator ) );
+ } else if( !pl.type.is_atom( flag ) ) {
+ thread.throw_error( pl.error.type( "atom", flag, atom.indicator ) );
+ } else if( !pl.type.is_flag( flag ) ) {
+ thread.throw_error( pl.error.domain( "prolog_flag", flag, atom.indicator ) );
+ } else if( !pl.type.is_value_flag( flag, value ) ) {
+ thread.throw_error( pl.error.domain( "flag_value", new Term( "+", [flag, value] ), atom.indicator ) );
+ } else if( !pl.type.is_modifiable_flag( flag ) ) {
+ thread.throw_error( pl.error.permission( "modify", "flag", flag ) );
+ } else {
+ thread.session.flag[flag.id] = value;
+ thread.success( point );
+ }
+ }
+
+ },
+
+ // Flags
+ flag: {
+
+ // Bounded numbers
+ bounded: {
+ allowed: [new Term( "true" ), new Term( "false" )],
+ value: new Term( "true" ),
+ changeable: false
+ },
+
+ // Maximum integer
+ max_integer: {
+ allowed: [new Num( Number.MAX_SAFE_INTEGER )],
+ value: new Num( Number.MAX_SAFE_INTEGER ),
+ changeable: false
+ },
+
+ // Minimum integer
+ min_integer: {
+ allowed: [new Num( Number.MIN_SAFE_INTEGER )],
+ value: new Num( Number.MIN_SAFE_INTEGER ),
+ changeable: false
+ },
+
+ // Rounding function
+ integer_rounding_function: {
+ allowed: [new Term( "down" ), new Term( "toward_zero" )],
+ value: new Term( "toward_zero" ),
+ changeable: false
+ },
+
+ // Character conversion
+ char_conversion : {
+ allowed: [new Term( "on" ), new Term( "off" )],
+ value: new Term( "on" ),
+ changeable: true
+ },
+
+ // Debugger
+ debug: {
+ allowed: [new Term( "on" ), new Term( "off" )],
+ value: new Term( "off" ),
+ changeable: true
+ },
+
+ // Maximum arity of predicates
+ max_arity: {
+ allowed: [new Term( "unbounded" )],
+ value: new Term( "unbounded" ),
+ changeable: false
+ },
+
+ // Unkwnow predicates behavior
+ unknown: {
+ allowed: [new Term( "error" ), new Term( "fail" ), new Term( "warning" )],
+ value: new Term( "error" ),
+ changeable: true
+ },
+
+ // Double quotes behavior
+ double_quotes: {
+ allowed: [new Term( "chars" ), new Term( "codes" ), new Term( "atom" )],
+ value: new Term( "codes" ),
+ changeable: true
+ },
+
+ // Occurs check behavior
+ occurs_check: {
+ allowed: [new Term( "false" ), new Term( "true" )],
+ value: new Term( "false" ),
+ changeable: true
+ },
+
+ // Dialect
+ dialect: {
+ allowed: [new Term( "tau" )],
+ value: new Term( "tau" ),
+ changeable: false
+ },
+
+ // Version
+ version_data: {
+ allowed: [new Term( "tau", [new Num(version.major,false), new Num(version.minor,false), new Num(version.patch,false), new Term(version.status)] )],
+ value: new Term( "tau", [new Num(version.major,false), new Num(version.minor,false), new Num(version.patch,false), new Term(version.status)] ),
+ changeable: false
+ },
+
+ // NodeJS
+ nodejs: {
+ allowed: [new Term( "yes" ), new Term( "no" )],
+ value: new Term( true && module.exports ? "yes" : "no" ),
+ changeable: false
+ }
+
+ },
+
+ // Unify
+ unify: function( s, t, occurs_check ) {
+ occurs_check = occurs_check === undefined ? false : occurs_check;
+ var G = [{left: s, right: t}], links = {};
+ while( G.length !== 0 ) {
+ var eq = G.pop();
+ s = eq.left;
+ t = eq.right;
+ if( pl.type.is_term(s) && pl.type.is_term(t) ) {
+ if( s.indicator !== t.indicator )
+ return null;
+ for( var i = 0; i < s.args.length; i++ )
+ G.push( {left: s.args[i], right: t.args[i]} );
+ } else if( pl.type.is_number(s) && pl.type.is_number(t) ) {
+ if( s.value !== t.value || s.is_float !== t.is_float )
+ return null;
+ } else if( pl.type.is_variable(s) ) {
+ // X = X
+ if( pl.type.is_variable(t) && s.id === t.id )
+ continue;
+ // Occurs check
+ if( occurs_check === true && t.variables().indexOf( s.id ) !== -1 )
+ return null;
+ if( s.id !== "_" ) {
+ var subs = new Substitution();
+ subs.add( s.id, t );
+ for( var i = 0; i < G.length; i++ ) {
+ G[i].left = G[i].left.apply( subs );
+ G[i].right = G[i].right.apply( subs );
+ }
+ for( var i in links )
+ links[i] = links[i].apply( subs );
+ links[s.id] = t;
+ }
+ } else if( pl.type.is_variable(t) ) {
+ G.push( {left: t, right: s} );
+ } else if( s.unify !== undefined ) {
+ if( !s.unify(t) )
+ return null;
+ } else {
+ return null;
+ }
+ }
+ return new Substitution( links );
+ },
+
+
+ // Compare
+ compare: function( obj1, obj2 ) {
+ var type = pl.type.compare( obj1, obj2 );
+ return type !== 0 ? type : obj1.compare( obj2 );
+ },
+
+ // Arithmetic comparison
+ arithmetic_compare: function( thread, obj1, obj2 ) {
+ var expr1 = obj1.interpret( thread );
+ if( !pl.type.is_number( expr1 ) ) {
+ return expr1;
+ } else {
+ var expr2 = obj2.interpret( thread );
+ if( !pl.type.is_number( expr2 ) ) {
+ return expr2;
+ } else {
+ return expr1.value < expr2.value ? -1 : (expr1.value > expr2.value ? 1 : 0);
+ }
+ }
+ },
+
+ // Operate
+ operate: function( thread, obj ) {
+ if( pl.type.is_operator( obj ) ) {
+ var op = pl.type.is_operator( obj );
+ var args = [], value;
+ var type = false;
+ for( var i = 0; i < obj.args.length; i++ ) {
+ value = obj.args[i].interpret( thread );
+ if( !pl.type.is_number( value ) ) {
+ return value;
+ } else if( op.type_args !== null && value.is_float !== op.type_args ) {
+ return pl.error.type( op.type_args ? "float" : "integer", value, thread.__call_indicator );
+ } else {
+ args.push( value.value );
+ }
+ type = type || value.is_float;
+ }
+ args.push( thread );
+ value = pl.arithmetic.evaluation[obj.indicator].fn.apply( this, args );
+ type = op.type_result === null ? type : op.type_result;
+ if( pl.type.is_term( value ) ) {
+ return value;
+ } else if( value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY ) {
+ return pl.error.evaluation( "overflow", thread.__call_indicator );
+ } else if( type === false && thread.get_flag( "bounded" ).id === "true" && (value > thread.get_flag( "max_integer" ).value || value < thread.get_flag( "min_integer" ).value) ) {
+ return pl.error.evaluation( "int_overflow", thread.__call_indicator );
+ } else {
+ return new Num( value, type );
+ }
+ } else {
+ return pl.error.type( "evaluable", obj.indicator, thread.__call_indicator );
+ }
+ },
+
+ // Errors
+ error: {
+
+ // Existence error
+ existence: function( type, object, indicator ) {
+ if( typeof object === "string" )
+ object = str_indicator( object );
+ return new Term( "error", [new Term( "existence_error", [new Term( type ), object] ), str_indicator( indicator )] );
+ },
+
+ // Type error
+ type: function( expected, found, indicator ) {
+ return new Term( "error", [new Term( "type_error", [new Term( expected ), found] ), str_indicator( indicator )] );
+ },
+
+ // Instantation error
+ instantiation: function( indicator ) {
+ return new Term( "error", [new Term( "instantiation_error" ), str_indicator( indicator )] );
+ },
+
+ // Domain error
+ domain: function( expected, found, indicator ) {
+ return new Term( "error", [new Term( "domain_error", [new Term( expected ), found]), str_indicator( indicator )] );
+ },
+
+ // Representation error
+ representation: function( flag, indicator ) {
+ return new Term( "error", [new Term( "representation_error", [new Term( flag )] ), str_indicator( indicator )] );
+ },
+
+ // Permission error
+ permission: function( operation, type, found, indicator ) {
+ return new Term( "error", [new Term( "permission_error", [new Term( operation ), new Term( type ), found] ), str_indicator( indicator )] );
+ },
+
+ // Evaluation error
+ evaluation: function( error, indicator ) {
+ return new Term( "error", [new Term( "evaluation_error", [new Term( error )] ), str_indicator( indicator )] );
+ },
+
+ // Syntax error
+ syntax: function( token, expected, last ) {
+ token = token || {value: "", line: 0, column: 0, matches: [""], start: 0};
+ var position = last && token.matches.length > 0 ? token.start + token.matches[0].length : token.start;
+ var found = last ? new Term("token_not_found") : new Term("found", [new Term(token.value.toString())]);
+ var info = new Term( ".", [new Term( "line", [new Num(token.line+1)] ), new Term( ".", [new Term( "column", [new Num(position+1)] ), new Term( ".", [found, new Term( "[]", [] )] )] )] );
+ return new Term( "error", [new Term( "syntax_error", [new Term( expected )] ), info] );
+ },
+
+ // Syntax error by predicate
+ syntax_by_predicate: function( expected, indicator ) {
+ return new Term( "error", [new Term( "syntax_error", [new Term( expected ) ] ), str_indicator( indicator )] );
+ }
+
+ },
+
+ // Warnings
+ warning: {
+
+ // Singleton variables
+ singleton: function( variables, rule, line ) {
+ var list = new Term( "[]" );
+ for( var i = variables.length-1; i >= 0; i-- )
+ list = new Term( ".", [new Var(variables[i]), list] );
+ return new Term( "warning", [new Term( "singleton_variables", [list, str_indicator(rule)]), new Term(".",[new Term( "line", [ new Num( line, false ) ]), new Term("[]")])] );
+ },
+
+ // Failed goal
+ failed_goal: function( goal, line ) {
+ return new Term( "warning", [new Term( "failed_goal", [goal]), new Term(".",[new Term( "line", [ new Num( line, false ) ]), new Term("[]")])] );
+ }
+
+ },
+
+ // Format of renamed variables
+ format_variable: function( variable ) {
+ return "_" + variable;
+ },
+
+ // Format of computed answers
+ format_answer: function( answer, thread, options ) {
+ if( thread instanceof Session )
+ thread = thread.thread;
+ var options = options ? options : {};
+ options.session = thread ? thread.session : undefined;
+ if( pl.type.is_error( answer ) ) {
+ return "uncaught exception: " + answer.args[0].toString();
+ } else if( answer === false ) {
+ return "false.";
+ } else if( answer === null ) {
+ return "limit exceeded ;";
+ } else {
+ var i = 0;
+ var str = "";
+ if( pl.type.is_substitution( answer ) ) {
+ var dom = answer.domain( true );
+ answer = answer.filter( function( id, value ) {
+ return !pl.type.is_variable( value ) || dom.indexOf( value.id ) !== -1 && id !== value.id;
+ } );
+ }
+ for( var link in answer.links ) {
+ if(!answer.links.hasOwnProperty(link)) continue;
+ i++;
+ if( str !== "" ) {
+ str += ", ";
+ }
+ str += link.toString( options ) + " = " + answer.links[link].toString( options );
+ }
+ var delimiter = typeof thread === "undefined" || thread.points.length > 0 ? " ;" : ".";
+ if( i === 0 ) {
+ return "true" + delimiter;
+ } else {
+ return str + delimiter;
+ }
+ }
+ },
+
+ // Flatten default errors
+ flatten_error: function( error ) {
+ if( !pl.type.is_error( error ) ) return null;
+ error = error.args[0];
+ var obj = {};
+ obj.type = error.args[0].id;
+ obj.thrown = obj.type === "syntax_error" ? null : error.args[1].id;
+ obj.expected = null;
+ obj.found = null;
+ obj.representation = null;
+ obj.existence = null;
+ obj.existence_type = null;
+ obj.line = null;
+ obj.column = null;
+ obj.permission_operation = null;
+ obj.permission_type = null;
+ obj.evaluation_type = null;
+ if( obj.type === "type_error" || obj.type === "domain_error" ) {
+ obj.expected = error.args[0].args[0].id;
+ obj.found = error.args[0].args[1].toString();
+ } else if( obj.type === "syntax_error" ) {
+ if( error.args[1].indicator === "./2" ) {
+ obj.expected = error.args[0].args[0].id;
+ obj.found = error.args[1].args[1].args[1].args[0];
+ obj.found = obj.found.id === "token_not_found" ? obj.found.id : obj.found.args[0].id;
+ obj.line = error.args[1].args[0].args[0].value;
+ obj.column = error.args[1].args[1].args[0].args[0].value;
+ } else {
+ obj.thrown = error.args[1].id;
+ }
+ } else if( obj.type === "permission_error" ) {
+ obj.found = error.args[0].args[2].toString();
+ obj.permission_operation = error.args[0].args[0].id;
+ obj.permission_type = error.args[0].args[1].id;
+ } else if( obj.type === "evaluation_error" ) {
+ obj.evaluation_type = error.args[0].args[0].id;
+ } else if( obj.type === "representation_error" ) {
+ obj.representation = error.args[0].args[0].id;
+ } else if( obj.type === "existence_error" ) {
+ obj.existence = error.args[0].args[1].toString();
+ obj.existence_type = error.args[0].args[0].id;
+ }
+ return obj;
+ },
+
+ // Create new session
+ create: function( limit ) {
+ return new pl.type.Session( limit );
+ }
+
+ };
+
+ if( true ) {
+ module.exports = pl;
+ } else {}
+
+ })();
+
+
+ /***/ }),
+ /* 8 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("fs");
+
+ /***/ }),
+ /* 9 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /*
+ * readlineSync
+ * https://github.com/anseki/readline-sync
+ *
+ * Copyright (c) 2018 anseki
+ * Licensed under the MIT license.
+ */
+
+
+
+ var
+ IS_WIN = process.platform === 'win32',
+
+ ALGORITHM_CIPHER = 'aes-256-cbc',
+ ALGORITHM_HASH = 'sha256',
+ DEFAULT_ERR_MSG = 'The current environment doesn\'t support interactive reading from TTY.',
+
+ fs = __webpack_require__(8),
+ TTY = process.binding('tty_wrap').TTY,
+ childProc = __webpack_require__(10),
+ pathUtil = __webpack_require__(11),
+
+ defaultOptions = {
+ /* eslint-disable key-spacing */
+ prompt: '> ',
+ hideEchoBack: false,
+ mask: '*',
+ limit: [],
+ limitMessage: 'Input another, please.$<( [)limit(])>',
+ defaultInput: '',
+ trueValue: [],
+ falseValue: [],
+ caseSensitive: false,
+ keepWhitespace: false,
+ encoding: 'utf8',
+ bufferSize: 1024,
+ print: void 0,
+ history: true,
+ cd: false,
+ phContent: void 0,
+ preCheck: void 0
+ /* eslint-enable key-spacing */
+ },
+
+ fdR = 'none', fdW, ttyR, isRawMode = false,
+ extHostPath, extHostArgs, tempdir, salt = 0,
+ lastInput = '', inputHistory = [], rawInput,
+ _DBG_useExt = false, _DBG_checkOptions = false, _DBG_checkMethod = false;
+
+ function getHostArgs(options) {
+ // Send any text to crazy Windows shell safely.
+ function encodeArg(arg) {
+ return arg.replace(/[^\w\u0080-\uFFFF]/g, function(chr) {
+ return '#' + chr.charCodeAt(0) + ';';
+ });
+ }
+
+ return extHostArgs.concat((function(conf) {
+ var args = [];
+ Object.keys(conf).forEach(function(optionName) {
+ if (conf[optionName] === 'boolean') {
+ if (options[optionName]) { args.push('--' + optionName); }
+ } else if (conf[optionName] === 'string') {
+ if (options[optionName]) {
+ args.push('--' + optionName, encodeArg(options[optionName]));
+ }
+ }
+ });
+ return args;
+ })({
+ /* eslint-disable key-spacing */
+ display: 'string',
+ displayOnly: 'boolean',
+ keyIn: 'boolean',
+ hideEchoBack: 'boolean',
+ mask: 'string',
+ limit: 'string',
+ caseSensitive: 'boolean'
+ /* eslint-enable key-spacing */
+ }));
+ }
+
+ // piping via files (for Node.js v0.10-)
+ function _execFileSync(options, execOptions) {
+
+ function getTempfile(name) {
+ var filepath, suffix = '', fd;
+ tempdir = tempdir || __webpack_require__(12).tmpdir();
+
+ while (true) {
+ filepath = pathUtil.join(tempdir, name + suffix);
+ try {
+ fd = fs.openSync(filepath, 'wx');
+ } catch (e) {
+ if (e.code === 'EEXIST') {
+ suffix++;
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ fs.closeSync(fd);
+ break;
+ }
+ return filepath;
+ }
+
+ var hostArgs, shellPath, shellArgs, res = {}, exitCode, extMessage,
+ pathStdout = getTempfile('readline-sync.stdout'),
+ pathStderr = getTempfile('readline-sync.stderr'),
+ pathExit = getTempfile('readline-sync.exit'),
+ pathDone = getTempfile('readline-sync.done'),
+ crypto = __webpack_require__(13), shasum, decipher, password;
+
+ shasum = crypto.createHash(ALGORITHM_HASH);
+ shasum.update('' + process.pid + (salt++) + Math.random());
+ password = shasum.digest('hex');
+ decipher = crypto.createDecipher(ALGORITHM_CIPHER, password);
+
+ hostArgs = getHostArgs(options);
+ if (IS_WIN) {
+ shellPath = process.env.ComSpec || 'cmd.exe';
+ process.env.Q = '"'; // The quote (") that isn't escaped.
+ // `()` for ignore space by echo
+ shellArgs = ['/V:ON', '/S', '/C',
+ '(%Q%' + shellPath + '%Q% /V:ON /S /C %Q%' + /* ESLint bug? */ // eslint-disable-line no-path-concat
+ '%Q%' + extHostPath + '%Q%' +
+ hostArgs.map(function(arg) { return ' %Q%' + arg + '%Q%'; }).join('') +
+ ' & (echo !ERRORLEVEL!)>%Q%' + pathExit + '%Q%%Q%) 2>%Q%' + pathStderr + '%Q%' +
+ ' |%Q%' + process.execPath + '%Q% %Q%' + __dirname + '\\encrypt.js%Q%' +
+ ' %Q%' + ALGORITHM_CIPHER + '%Q% %Q%' + password + '%Q%' +
+ ' >%Q%' + pathStdout + '%Q%' +
+ ' & (echo 1)>%Q%' + pathDone + '%Q%'];
+ } else {
+ shellPath = '/bin/sh';
+ shellArgs = ['-c',
+ // Use `()`, not `{}` for `-c` (text param)
+ '("' + extHostPath + '"' + /* ESLint bug? */ // eslint-disable-line no-path-concat
+ hostArgs.map(function(arg) { return " '" + arg.replace(/'/g, "'\\''") + "'"; }).join('') +
+ '; echo $?>"' + pathExit + '") 2>"' + pathStderr + '"' +
+ ' |"' + process.execPath + '" "' + __dirname + '/encrypt.js"' +
+ ' "' + ALGORITHM_CIPHER + '" "' + password + '"' +
+ ' >"' + pathStdout + '"' +
+ '; echo 1 >"' + pathDone + '"'];
+ }
+ if (_DBG_checkMethod) { _DBG_checkMethod('_execFileSync', hostArgs); }
+ try {
+ childProc.spawn(shellPath, shellArgs, execOptions);
+ } catch (e) {
+ res.error = new Error(e.message);
+ res.error.method = '_execFileSync - spawn';
+ res.error.program = shellPath;
+ res.error.args = shellArgs;
+ }
+
+ while (fs.readFileSync(pathDone, {encoding: options.encoding}).trim() !== '1') {} // eslint-disable-line no-empty
+ if ((exitCode =
+ fs.readFileSync(pathExit, {encoding: options.encoding}).trim()) === '0') {
+ res.input =
+ decipher.update(fs.readFileSync(pathStdout, {encoding: 'binary'}),
+ 'hex', options.encoding) +
+ decipher.final(options.encoding);
+ } else {
+ extMessage = fs.readFileSync(pathStderr, {encoding: options.encoding}).trim();
+ res.error = new Error(DEFAULT_ERR_MSG + (extMessage ? '\n' + extMessage : ''));
+ res.error.method = '_execFileSync';
+ res.error.program = shellPath;
+ res.error.args = shellArgs;
+ res.error.extMessage = extMessage;
+ res.error.exitCode = +exitCode;
+ }
+
+ fs.unlinkSync(pathStdout);
+ fs.unlinkSync(pathStderr);
+ fs.unlinkSync(pathExit);
+ fs.unlinkSync(pathDone);
+
+ return res;
+ }
+
+ function readlineExt(options) {
+ var hostArgs, res = {}, extMessage,
+ execOptions = {env: process.env, encoding: options.encoding};
+
+ if (!extHostPath) {
+ if (IS_WIN) {
+ if (process.env.PSModulePath) { // Windows PowerShell
+ extHostPath = 'powershell.exe';
+ extHostArgs = ['-ExecutionPolicy', 'Bypass', '-File', __dirname + '\\read.ps1']; // eslint-disable-line no-path-concat
+ } else { // Windows Script Host
+ extHostPath = 'cscript.exe';
+ extHostArgs = ['//nologo', __dirname + '\\read.cs.js']; // eslint-disable-line no-path-concat
+ }
+ } else {
+ extHostPath = '/bin/sh';
+ extHostArgs = [__dirname + '/read.sh']; // eslint-disable-line no-path-concat
+ }
+ }
+ if (IS_WIN && !process.env.PSModulePath) { // Windows Script Host
+ // ScriptPW (Win XP and Server2003) needs TTY stream as STDIN.
+ // In this case, If STDIN isn't TTY, an error is thrown.
+ execOptions.stdio = [process.stdin];
+ }
+
+ if (childProc.execFileSync) {
+ hostArgs = getHostArgs(options);
+ if (_DBG_checkMethod) { _DBG_checkMethod('execFileSync', hostArgs); }
+ try {
+ res.input = childProc.execFileSync(extHostPath, hostArgs, execOptions);
+ } catch (e) { // non-zero exit code
+ extMessage = e.stderr ? (e.stderr + '').trim() : '';
+ res.error = new Error(DEFAULT_ERR_MSG + (extMessage ? '\n' + extMessage : ''));
+ res.error.method = 'execFileSync';
+ res.error.program = extHostPath;
+ res.error.args = hostArgs;
+ res.error.extMessage = extMessage;
+ res.error.exitCode = e.status;
+ res.error.code = e.code;
+ res.error.signal = e.signal;
+ }
+ } else {
+ res = _execFileSync(options, execOptions);
+ }
+ if (!res.error) {
+ res.input = res.input.replace(/^\s*'|'\s*$/g, '');
+ options.display = '';
+ }
+
+ return res;
+ }
+
+ /*
+ display: string
+ displayOnly: boolean
+ keyIn: boolean
+ hideEchoBack: boolean
+ mask: string
+ limit: string (pattern)
+ caseSensitive: boolean
+ keepWhitespace: boolean
+ encoding, bufferSize, print
+ */
+ function _readlineSync(options) {
+ var input = '', displaySave = options.display,
+ silent = !options.display &&
+ options.keyIn && options.hideEchoBack && !options.mask;
+
+ function tryExt() {
+ var res = readlineExt(options);
+ if (res.error) { throw res.error; }
+ return res.input;
+ }
+
+ if (_DBG_checkOptions) { _DBG_checkOptions(options); }
+
+ (function() { // open TTY
+ var fsB, constants, verNum;
+
+ function getFsB() {
+ if (!fsB) {
+ fsB = process.binding('fs'); // For raw device path
+ constants = process.binding('constants');
+ }
+ return fsB;
+ }
+
+ if (typeof fdR !== 'string') { return; }
+ fdR = null;
+
+ if (IS_WIN) {
+ // iojs-v2.3.2+ input stream can't read first line. (#18)
+ // ** Don't get process.stdin before check! **
+ // Fixed v5.1.0
+ // Fixed v4.2.4
+ // It regressed again in v5.6.0, it is fixed in v6.2.0.
+ verNum = (function(ver) { // getVerNum
+ var nums = ver.replace(/^\D+/, '').split('.');
+ var verNum = 0;
+ if ((nums[0] = +nums[0])) { verNum += nums[0] * 10000; }
+ if ((nums[1] = +nums[1])) { verNum += nums[1] * 100; }
+ if ((nums[2] = +nums[2])) { verNum += nums[2]; }
+ return verNum;
+ })(process.version);
+ if (!(verNum >= 20302 && verNum < 40204 || verNum >= 50000 && verNum < 50100 || verNum >= 50600 && verNum < 60200) &&
+ process.stdin.isTTY) {
+ process.stdin.pause();
+ fdR = process.stdin.fd;
+ ttyR = process.stdin._handle;
+ } else {
+ try {
+ // The stream by fs.openSync('\\\\.\\CON', 'r') can't switch to raw mode.
+ // 'CONIN$' might fail on XP, 2000, 7 (x86).
+ fdR = getFsB().open('CONIN$', constants.O_RDWR, parseInt('0666', 8));
+ ttyR = new TTY(fdR, true);
+ } catch (e) { /* ignore */ }
+ }
+
+ if (process.stdout.isTTY) {
+ fdW = process.stdout.fd;
+ } else {
+ try {
+ fdW = fs.openSync('\\\\.\\CON', 'w');
+ } catch (e) { /* ignore */ }
+ if (typeof fdW !== 'number') { // Retry
+ try {
+ fdW = getFsB().open('CONOUT$', constants.O_RDWR, parseInt('0666', 8));
+ } catch (e) { /* ignore */ }
+ }
+ }
+
+ } else {
+ if (process.stdin.isTTY) {
+ process.stdin.pause();
+ try {
+ fdR = fs.openSync('/dev/tty', 'r'); // device file, not process.stdin
+ ttyR = process.stdin._handle;
+ } catch (e) { /* ignore */ }
+ } else {
+ // Node.js v0.12 read() fails.
+ try {
+ fdR = fs.openSync('/dev/tty', 'r');
+ ttyR = new TTY(fdR, false);
+ } catch (e) { /* ignore */ }
+ }
+
+ if (process.stdout.isTTY) {
+ fdW = process.stdout.fd;
+ } else {
+ try {
+ fdW = fs.openSync('/dev/tty', 'w');
+ } catch (e) { /* ignore */ }
+ }
+ }
+ })();
+
+ (function() { // try read
+ var atEol, limit,
+ isCooked = !options.hideEchoBack && !options.keyIn,
+ buffer, reqSize, readSize, chunk, line;
+ rawInput = '';
+
+ // Node.js v0.10- returns an error if same mode is set.
+ function setRawMode(mode) {
+ if (mode === isRawMode) { return true; }
+ if (ttyR.setRawMode(mode) !== 0) { return false; }
+ isRawMode = mode;
+ return true;
+ }
+
+ if (_DBG_useExt || !ttyR ||
+ typeof fdW !== 'number' && (options.display || !isCooked)) {
+ input = tryExt();
+ return;
+ }
+
+ if (options.display) {
+ fs.writeSync(fdW, options.display);
+ options.display = '';
+ }
+ if (options.displayOnly) { return; }
+
+ if (!setRawMode(!isCooked)) {
+ input = tryExt();
+ return;
+ }
+
+ reqSize = options.keyIn ? 1 : options.bufferSize;
+ // Check `allocUnsafe` to make sure of the new API.
+ buffer = Buffer.allocUnsafe && Buffer.alloc ? Buffer.alloc(reqSize) : new Buffer(reqSize);
+
+ if (options.keyIn && options.limit) {
+ limit = new RegExp('[^' + options.limit + ']',
+ 'g' + (options.caseSensitive ? '' : 'i'));
+ }
+
+ while (true) {
+ readSize = 0;
+ try {
+ readSize = fs.readSync(fdR, buffer, 0, reqSize);
+ } catch (e) {
+ if (e.code !== 'EOF') {
+ setRawMode(false);
+ input += tryExt();
+ return;
+ }
+ }
+ if (readSize > 0) {
+ chunk = buffer.toString(options.encoding, 0, readSize);
+ rawInput += chunk;
+ } else {
+ chunk = '\n';
+ rawInput += String.fromCharCode(0);
+ }
+
+ if (chunk && typeof (line = (chunk.match(/^(.*?)[\r\n]/) || [])[1]) === 'string') {
+ chunk = line;
+ atEol = true;
+ }
+
+ // other ctrl-chars
+ // eslint-disable-next-line no-control-regex
+ if (chunk) { chunk = chunk.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g, ''); }
+ if (chunk && limit) { chunk = chunk.replace(limit, ''); }
+
+ if (chunk) {
+ if (!isCooked) {
+ if (!options.hideEchoBack) {
+ fs.writeSync(fdW, chunk);
+ } else if (options.mask) {
+ fs.writeSync(fdW, (new Array(chunk.length + 1)).join(options.mask));
+ }
+ }
+ input += chunk;
+ }
+
+ if (!options.keyIn && atEol ||
+ options.keyIn && input.length >= reqSize) { break; }
+ }
+
+ if (!isCooked && !silent) { fs.writeSync(fdW, '\n'); }
+ setRawMode(false);
+ })();
+
+ if (options.print && !silent) {
+ options.print(displaySave + (options.displayOnly ? '' :
+ (options.hideEchoBack ? (new Array(input.length + 1)).join(options.mask)
+ : input) + '\n'), // must at least write '\n'
+ options.encoding);
+ }
+
+ return options.displayOnly ? '' :
+ (lastInput = options.keepWhitespace || options.keyIn ? input : input.trim());
+ }
+
+ function flattenArray(array, validator) {
+ var flatArray = [];
+ function _flattenArray(array) {
+ if (array == null) {
+ return;
+ } else if (Array.isArray(array)) {
+ array.forEach(_flattenArray);
+ } else if (!validator || validator(array)) {
+ flatArray.push(array);
+ }
+ }
+ _flattenArray(array);
+ return flatArray;
+ }
+
+ function escapePattern(pattern) {
+ return pattern.replace(/[\x00-\x7f]/g, // eslint-disable-line no-control-regex
+ function(s) { return '\\x' + ('00' + s.charCodeAt().toString(16)).substr(-2); });
+ }
+
+ // margeOptions(options1, options2 ... )
+ // margeOptions(true, options1, options2 ... )
+ // arg1=true : Start from defaultOptions and pick elements of that.
+ function margeOptions() {
+ var optionsList = Array.prototype.slice.call(arguments),
+ optionNames, fromDefault;
+
+ if (optionsList.length && typeof optionsList[0] === 'boolean') {
+ fromDefault = optionsList.shift();
+ if (fromDefault) {
+ optionNames = Object.keys(defaultOptions);
+ optionsList.unshift(defaultOptions);
+ }
+ }
+
+ return optionsList.reduce(function(options, optionsPart) {
+ if (optionsPart == null) { return options; }
+
+ // ======== DEPRECATED ========
+ if (optionsPart.hasOwnProperty('noEchoBack') &&
+ !optionsPart.hasOwnProperty('hideEchoBack')) {
+ optionsPart.hideEchoBack = optionsPart.noEchoBack;
+ delete optionsPart.noEchoBack;
+ }
+ if (optionsPart.hasOwnProperty('noTrim') &&
+ !optionsPart.hasOwnProperty('keepWhitespace')) {
+ optionsPart.keepWhitespace = optionsPart.noTrim;
+ delete optionsPart.noTrim;
+ }
+ // ======== /DEPRECATED ========
+
+ if (!fromDefault) { optionNames = Object.keys(optionsPart); }
+ optionNames.forEach(function(optionName) {
+ var value;
+ if (!optionsPart.hasOwnProperty(optionName)) { return; }
+ value = optionsPart[optionName];
+ switch (optionName) {
+ // _readlineSync <- * * -> defaultOptions
+ // ================ string
+ case 'mask': // * *
+ case 'limitMessage': // *
+ case 'defaultInput': // *
+ case 'encoding': // * *
+ value = value != null ? value + '' : '';
+ if (value && optionName !== 'limitMessage') { value = value.replace(/[\r\n]/g, ''); }
+ options[optionName] = value;
+ break;
+ // ================ number(int)
+ case 'bufferSize': // * *
+ if (!isNaN(value = parseInt(value, 10)) && typeof value === 'number') {
+ options[optionName] = value; // limited updating (number is needed)
+ }
+ break;
+ // ================ boolean
+ case 'displayOnly': // *
+ case 'keyIn': // *
+ case 'hideEchoBack': // * *
+ case 'caseSensitive': // * *
+ case 'keepWhitespace': // * *
+ case 'history': // *
+ case 'cd': // *
+ options[optionName] = !!value;
+ break;
+ // ================ array
+ case 'limit': // * * to string for readlineExt
+ case 'trueValue': // *
+ case 'falseValue': // *
+ options[optionName] = flattenArray(value, function(value) {
+ var type = typeof value;
+ return type === 'string' || type === 'number' ||
+ type === 'function' || value instanceof RegExp;
+ }).map(function(value) {
+ return typeof value === 'string' ? value.replace(/[\r\n]/g, '') : value;
+ });
+ break;
+ // ================ function
+ case 'print': // * *
+ case 'phContent': // *
+ case 'preCheck': // *
+ options[optionName] = typeof value === 'function' ? value : void 0;
+ break;
+ // ================ other
+ case 'prompt': // *
+ case 'display': // *
+ options[optionName] = value != null ? value : '';
+ break;
+ // no default
+ }
+ });
+ return options;
+ }, {});
+ }
+
+ function isMatched(res, comps, caseSensitive) {
+ return comps.some(function(comp) {
+ var type = typeof comp;
+ return type === 'string' ?
+ (caseSensitive ? res === comp : res.toLowerCase() === comp.toLowerCase()) :
+ type === 'number' ? parseFloat(res) === comp :
+ type === 'function' ? comp(res) :
+ comp instanceof RegExp ? comp.test(res) : false;
+ });
+ }
+
+ function replaceHomePath(path, expand) {
+ var homePath = pathUtil.normalize(
+ IS_WIN ? (process.env.HOMEDRIVE || '') + (process.env.HOMEPATH || '') :
+ process.env.HOME || '').replace(/[\/\\]+$/, '');
+ path = pathUtil.normalize(path);
+ return expand ? path.replace(/^~(?=\/|\\|$)/, homePath) :
+ path.replace(new RegExp('^' + escapePattern(homePath) +
+ '(?=\\/|\\\\|$)', IS_WIN ? 'i' : ''), '~');
+ }
+
+ function replacePlaceholder(text, generator) {
+ var PTN_INNER = '(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?',
+ rePlaceholder = new RegExp('(\\$)?(\\$<' + PTN_INNER + '>)', 'g'),
+ rePlaceholderCompat = new RegExp('(\\$)?(\\$\\{' + PTN_INNER + '\\})', 'g');
+
+ function getPlaceholderText(s, escape, placeholder, pre, param, post) {
+ var text;
+ return escape || typeof (text = generator(param)) !== 'string' ? placeholder :
+ text ? (pre || '') + text + (post || '') : '';
+ }
+
+ return text.replace(rePlaceholder, getPlaceholderText)
+ .replace(rePlaceholderCompat, getPlaceholderText);
+ }
+
+ function array2charlist(array, caseSensitive, collectSymbols) {
+ var values, group = [], groupClass = -1, charCode = 0, symbols = '', suppressed;
+ function addGroup(groups, group) {
+ if (group.length > 3) { // ellipsis
+ groups.push(group[0] + '...' + group[group.length - 1]);
+ suppressed = true;
+ } else if (group.length) {
+ groups = groups.concat(group);
+ }
+ return groups;
+ }
+
+ values = array.reduce(
+ function(chars, value) { return chars.concat((value + '').split('')); }, [])
+ .reduce(function(groups, curChar) {
+ var curGroupClass, curCharCode;
+ if (!caseSensitive) { curChar = curChar.toLowerCase(); }
+ curGroupClass = /^\d$/.test(curChar) ? 1 :
+ /^[A-Z]$/.test(curChar) ? 2 : /^[a-z]$/.test(curChar) ? 3 : 0;
+ if (collectSymbols && curGroupClass === 0) {
+ symbols += curChar;
+ } else {
+ curCharCode = curChar.charCodeAt(0);
+ if (curGroupClass && curGroupClass === groupClass &&
+ curCharCode === charCode + 1) {
+ group.push(curChar);
+ } else {
+ groups = addGroup(groups, group);
+ group = [curChar];
+ groupClass = curGroupClass;
+ }
+ charCode = curCharCode;
+ }
+ return groups;
+ }, []);
+ values = addGroup(values, group); // last group
+ if (symbols) { values.push(symbols); suppressed = true; }
+ return {values: values, suppressed: suppressed};
+ }
+
+ function joinChunks(chunks, suppressed) {
+ return chunks.join(chunks.length > 2 ? ', ' : suppressed ? ' / ' : '/');
+ }
+
+ function getPhContent(param, options) {
+ var text, values, resCharlist = {}, arg;
+ if (options.phContent) {
+ text = options.phContent(param, options);
+ }
+ if (typeof text !== 'string') {
+ switch (param) {
+ case 'hideEchoBack':
+ case 'mask':
+ case 'defaultInput':
+ case 'caseSensitive':
+ case 'keepWhitespace':
+ case 'encoding':
+ case 'bufferSize':
+ case 'history':
+ case 'cd':
+ text = !options.hasOwnProperty(param) ? '' :
+ typeof options[param] === 'boolean' ? (options[param] ? 'on' : 'off') :
+ options[param] + '';
+ break;
+ // case 'prompt':
+ // case 'query':
+ // case 'display':
+ // text = options.hasOwnProperty('displaySrc') ? options.displaySrc + '' : '';
+ // break;
+ case 'limit':
+ case 'trueValue':
+ case 'falseValue':
+ values = options[options.hasOwnProperty(param + 'Src') ? param + 'Src' : param];
+ if (options.keyIn) { // suppress
+ resCharlist = array2charlist(values, options.caseSensitive);
+ values = resCharlist.values;
+ } else {
+ values = values.filter(function(value) {
+ var type = typeof value;
+ return type === 'string' || type === 'number';
+ });
+ }
+ text = joinChunks(values, resCharlist.suppressed);
+ break;
+ case 'limitCount':
+ case 'limitCountNotZero':
+ text = options[options.hasOwnProperty('limitSrc') ?
+ 'limitSrc' : 'limit'].length;
+ text = text || param !== 'limitCountNotZero' ? text + '' : '';
+ break;
+ case 'lastInput':
+ text = lastInput;
+ break;
+ case 'cwd':
+ case 'CWD':
+ case 'cwdHome':
+ text = process.cwd();
+ if (param === 'CWD') {
+ text = pathUtil.basename(text);
+ } else if (param === 'cwdHome') {
+ text = replaceHomePath(text);
+ }
+ break;
+ case 'date':
+ case 'time':
+ case 'localeDate':
+ case 'localeTime':
+ text = (new Date())['to' +
+ param.replace(/^./, function(str) { return str.toUpperCase(); }) +
+ 'String']();
+ break;
+ default: // with arg
+ if (typeof (arg = (param.match(/^history_m(\d+)$/) || [])[1]) === 'string') {
+ text = inputHistory[inputHistory.length - arg] || '';
+ }
+ }
+ }
+ return text;
+ }
+
+ function getPhCharlist(param) {
+ var matches = /^(.)-(.)$/.exec(param), text = '', from, to, code, step;
+ if (!matches) { return null; }
+ from = matches[1].charCodeAt(0);
+ to = matches[2].charCodeAt(0);
+ step = from < to ? 1 : -1;
+ for (code = from; code !== to + step; code += step) { text += String.fromCharCode(code); }
+ return text;
+ }
+
+ // cmd "arg" " a r g " "" 'a"r"g' "a""rg" "arg
+ function parseCl(cl) {
+ var reToken = new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g), matches,
+ taken = '', args = [], part;
+ cl = cl.trim();
+ while ((matches = reToken.exec(cl))) {
+ part = matches[3] || matches[4] || '';
+ if (matches[1]) {
+ args.push(taken);
+ taken = '';
+ }
+ taken += part;
+ }
+ if (taken) { args.push(taken); }
+ return args;
+ }
+
+ function toBool(res, options) {
+ return (
+ (options.trueValue.length &&
+ isMatched(res, options.trueValue, options.caseSensitive)) ? true :
+ (options.falseValue.length &&
+ isMatched(res, options.falseValue, options.caseSensitive)) ? false : res);
+ }
+
+ function getValidLine(options) {
+ var res, forceNext, limitMessage,
+ matches, histInput, args, resCheck;
+
+ function _getPhContent(param) { return getPhContent(param, options); }
+ function addDisplay(text) { options.display += (/[^\r\n]$/.test(options.display) ? '\n' : '') + text; }
+
+ options.limitSrc = options.limit;
+ options.displaySrc = options.display;
+ options.limit = ''; // for readlineExt
+ options.display = replacePlaceholder(options.display + '', _getPhContent);
+
+ while (true) {
+ res = _readlineSync(options);
+ forceNext = false;
+ limitMessage = '';
+
+ if (options.defaultInput && !res) { res = options.defaultInput; }
+
+ if (options.history) {
+ if ((matches = /^\s*\!(?:\!|-1)(:p)?\s*$/.exec(res))) { // `!!` `!-1` +`:p`
+ histInput = inputHistory[0] || '';
+ if (matches[1]) { // only display
+ forceNext = true;
+ } else { // replace input
+ res = histInput;
+ }
+ // Show it even if it is empty (NL only).
+ addDisplay(histInput + '\n');
+ if (!forceNext) { // Loop may break
+ options.displayOnly = true;
+ _readlineSync(options);
+ options.displayOnly = false;
+ }
+ } else if (res && res !== inputHistory[inputHistory.length - 1]) {
+ inputHistory = [res];
+ }
+ }
+
+ if (!forceNext && options.cd && res) {
+ args = parseCl(res);
+ switch (args[0].toLowerCase()) {
+ case 'cd':
+ if (args[1]) {
+ try {
+ process.chdir(replaceHomePath(args[1], true));
+ } catch (e) {
+ addDisplay(e + '');
+ }
+ }
+ forceNext = true;
+ break;
+ case 'pwd':
+ addDisplay(process.cwd());
+ forceNext = true;
+ break;
+ // no default
+ }
+ }
+
+ if (!forceNext && options.preCheck) {
+ resCheck = options.preCheck(res, options);
+ res = resCheck.res;
+ if (resCheck.forceNext) { forceNext = true; } // Don't switch to false.
+ }
+
+ if (!forceNext) {
+ if (!options.limitSrc.length ||
+ isMatched(res, options.limitSrc, options.caseSensitive)) { break; }
+ if (options.limitMessage) {
+ limitMessage = replacePlaceholder(options.limitMessage, _getPhContent);
+ }
+ }
+
+ addDisplay((limitMessage ? limitMessage + '\n' : '') +
+ replacePlaceholder(options.displaySrc + '', _getPhContent));
+ }
+ return toBool(res, options);
+ }
+
+ // for dev
+ exports._DBG_set_useExt = function(val) { _DBG_useExt = val; };
+ exports._DBG_set_checkOptions = function(val) { _DBG_checkOptions = val; };
+ exports._DBG_set_checkMethod = function(val) { _DBG_checkMethod = val; };
+ exports._DBG_clearHistory = function() { lastInput = ''; inputHistory = []; };
+
+ // ------------------------------------
+
+ exports.setDefaultOptions = function(options) {
+ defaultOptions = margeOptions(true, options);
+ return margeOptions(true); // copy
+ };
+
+ exports.question = function(query, options) {
+ /* eslint-disable key-spacing */
+ return getValidLine(margeOptions(margeOptions(true, options), {
+ display: query
+ }));
+ /* eslint-enable key-spacing */
+ };
+
+ exports.prompt = function(options) {
+ var readOptions = margeOptions(true, options);
+ readOptions.display = readOptions.prompt;
+ return getValidLine(readOptions);
+ };
+
+ exports.keyIn = function(query, options) {
+ /* eslint-disable key-spacing */
+ var readOptions = margeOptions(margeOptions(true, options), {
+ display: query,
+ keyIn: true,
+ keepWhitespace: true
+ });
+ /* eslint-enable key-spacing */
+
+ // char list
+ readOptions.limitSrc = readOptions.limit.filter(function(value) {
+ var type = typeof value;
+ return type === 'string' || type === 'number';
+ })
+ .map(function(text) { return replacePlaceholder(text + '', getPhCharlist); });
+ // pattern
+ readOptions.limit = escapePattern(readOptions.limitSrc.join(''));
+
+ ['trueValue', 'falseValue'].forEach(function(optionName) {
+ readOptions[optionName] = readOptions[optionName].reduce(function(comps, comp) {
+ var type = typeof comp;
+ if (type === 'string' || type === 'number') {
+ comps = comps.concat((comp + '').split(''));
+ } else { comps.push(comp); }
+ return comps;
+ }, []);
+ });
+
+ readOptions.display = replacePlaceholder(readOptions.display + '',
+ function(param) { return getPhContent(param, readOptions); });
+
+ return toBool(_readlineSync(readOptions), readOptions);
+ };
+
+ // ------------------------------------
+
+ exports.questionEMail = function(query, options) {
+ if (query == null) { query = 'Input e-mail address: '; }
+ /* eslint-disable key-spacing */
+ return exports.question(query, margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address
+ limit: /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
+ limitMessage: 'Input valid e-mail address, please.',
+ trueValue: null,
+ falseValue: null
+ }, options, {
+ // -------- forced
+ keepWhitespace: false,
+ cd: false
+ }));
+ /* eslint-enable key-spacing */
+ };
+
+ exports.questionNewPassword = function(query, options) {
+ /* eslint-disable key-spacing */
+ var resCharlist, min, max,
+ readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: true,
+ mask: '*',
+ limitMessage: 'It can include: $\n' +
+ 'And the length must be: $',
+ trueValue: null,
+ falseValue: null,
+ caseSensitive: true
+ }, options, {
+ // -------- forced
+ history: false,
+ cd: false,
+ // limit (by charlist etc.),
+ phContent: function(param) {
+ return param === 'charlist' ? resCharlist.text :
+ param === 'length' ? min + '...' + max : null;
+ }
+ }),
+ // added: charlist, min, max, confirmMessage, unmatchMessage
+ charlist, confirmMessage, unmatchMessage,
+ limit, limitMessage, res1, res2;
+ /* eslint-enable key-spacing */
+ options = options || {};
+
+ charlist = replacePlaceholder(
+ options.charlist ? options.charlist + '' : '$', getPhCharlist);
+ if (isNaN(min = parseInt(options.min, 10)) || typeof min !== 'number') { min = 12; }
+ if (isNaN(max = parseInt(options.max, 10)) || typeof max !== 'number') { max = 24; }
+ limit = new RegExp('^[' + escapePattern(charlist) +
+ ']{' + min + ',' + max + '}$');
+ resCharlist = array2charlist([charlist], readOptions.caseSensitive, true);
+ resCharlist.text = joinChunks(resCharlist.values, resCharlist.suppressed);
+
+ confirmMessage = options.confirmMessage != null ? options.confirmMessage :
+ 'Reinput a same one to confirm it: ';
+ unmatchMessage = options.unmatchMessage != null ? options.unmatchMessage :
+ 'It differs from first one.' +
+ ' Hit only the Enter key if you want to retry from first one.';
+
+ if (query == null) { query = 'Input new password: '; }
+
+ limitMessage = readOptions.limitMessage;
+ while (!res2) {
+ readOptions.limit = limit;
+ readOptions.limitMessage = limitMessage;
+ res1 = exports.question(query, readOptions);
+
+ readOptions.limit = [res1, ''];
+ readOptions.limitMessage = unmatchMessage;
+ res2 = exports.question(confirmMessage, readOptions);
+ }
+
+ return res1;
+ };
+
+ function _questionNum(query, options, parser) {
+ var validValue;
+ function getValidValue(value) {
+ validValue = parser(value);
+ return !isNaN(validValue) && typeof validValue === 'number';
+ }
+ /* eslint-disable key-spacing */
+ exports.question(query, margeOptions({
+ // -------- default
+ limitMessage: 'Input valid number, please.'
+ }, options, {
+ // -------- forced
+ limit: getValidValue,
+ cd: false
+ // trueValue, falseValue, caseSensitive, keepWhitespace don't work.
+ }));
+ /* eslint-enable key-spacing */
+ return validValue;
+ }
+ exports.questionInt = function(query, options) {
+ return _questionNum(query, options, function(value) { return parseInt(value, 10); });
+ };
+ exports.questionFloat = function(query, options) {
+ return _questionNum(query, options, parseFloat);
+ };
+
+ exports.questionPath = function(query, options) {
+ /* eslint-disable key-spacing */
+ var validPath, error = '',
+ readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ limitMessage: '$Input valid path, please.' +
+ '$<( Min:)min>$<( Max:)max>',
+ history: true,
+ cd: true
+ }, options, {
+ // -------- forced
+ keepWhitespace: false,
+ limit: function(value) {
+ var exists, stat, res;
+ value = replaceHomePath(value, true);
+ error = ''; // for validate
+ // mkdir -p
+ function mkdirParents(dirPath) {
+ dirPath.split(/\/|\\/).reduce(function(parents, dir) {
+ var path = pathUtil.resolve((parents += dir + pathUtil.sep));
+ if (!fs.existsSync(path)) {
+ fs.mkdirSync(path);
+ } else if (!fs.statSync(path).isDirectory()) {
+ throw new Error('Non directory already exists: ' + path);
+ }
+ return parents;
+ }, '');
+ }
+
+ try {
+ exists = fs.existsSync(value);
+ validPath = exists ? fs.realpathSync(value) : pathUtil.resolve(value);
+ // options.exists default: true, not-bool: no-check
+ if (!options.hasOwnProperty('exists') && !exists ||
+ typeof options.exists === 'boolean' && options.exists !== exists) {
+ error = (exists ? 'Already exists' : 'No such file or directory') +
+ ': ' + validPath;
+ return false;
+ }
+ if (!exists && options.create) {
+ if (options.isDirectory) {
+ mkdirParents(validPath);
+ } else {
+ mkdirParents(pathUtil.dirname(validPath));
+ fs.closeSync(fs.openSync(validPath, 'w')); // touch
+ }
+ validPath = fs.realpathSync(validPath);
+ }
+ if (exists && (options.min || options.max ||
+ options.isFile || options.isDirectory)) {
+ stat = fs.statSync(validPath);
+ // type check first (directory has zero size)
+ if (options.isFile && !stat.isFile()) {
+ error = 'Not file: ' + validPath;
+ return false;
+ } else if (options.isDirectory && !stat.isDirectory()) {
+ error = 'Not directory: ' + validPath;
+ return false;
+ } else if (options.min && stat.size < +options.min ||
+ options.max && stat.size > +options.max) {
+ error = 'Size ' + stat.size + ' is out of range: ' + validPath;
+ return false;
+ }
+ }
+ if (typeof options.validate === 'function' &&
+ (res = options.validate(validPath)) !== true) {
+ if (typeof res === 'string') { error = res; }
+ return false;
+ }
+ } catch (e) {
+ error = e + '';
+ return false;
+ }
+ return true;
+ },
+ // trueValue, falseValue, caseSensitive don't work.
+ phContent: function(param) {
+ return param === 'error' ? error :
+ param !== 'min' && param !== 'max' ? null :
+ options.hasOwnProperty(param) ? options[param] + '' : '';
+ }
+ });
+ // added: exists, create, min, max, isFile, isDirectory, validate
+ /* eslint-enable key-spacing */
+ options = options || {};
+
+ if (query == null) { query = 'Input path (you can "cd" and "pwd"): '; }
+
+ exports.question(query, readOptions);
+ return validPath;
+ };
+
+ // props: preCheck, args, hRes, limit
+ function getClHandler(commandHandler, options) {
+ var clHandler = {}, hIndex = {};
+ if (typeof commandHandler === 'object') {
+ Object.keys(commandHandler).forEach(function(cmd) {
+ if (typeof commandHandler[cmd] === 'function') {
+ hIndex[options.caseSensitive ? cmd : cmd.toLowerCase()] = commandHandler[cmd];
+ }
+ });
+ clHandler.preCheck = function(res) {
+ var cmdKey;
+ clHandler.args = parseCl(res);
+ cmdKey = clHandler.args[0] || '';
+ if (!options.caseSensitive) { cmdKey = cmdKey.toLowerCase(); }
+ clHandler.hRes =
+ cmdKey !== '_' && hIndex.hasOwnProperty(cmdKey) ?
+ hIndex[cmdKey].apply(res, clHandler.args.slice(1)) :
+ hIndex.hasOwnProperty('_') ? hIndex._.apply(res, clHandler.args) : null;
+ return {res: res, forceNext: false};
+ };
+ if (!hIndex.hasOwnProperty('_')) {
+ clHandler.limit = function() { // It's called after preCheck.
+ var cmdKey = clHandler.args[0] || '';
+ if (!options.caseSensitive) { cmdKey = cmdKey.toLowerCase(); }
+ return hIndex.hasOwnProperty(cmdKey);
+ };
+ }
+ } else {
+ clHandler.preCheck = function(res) {
+ clHandler.args = parseCl(res);
+ clHandler.hRes = typeof commandHandler === 'function' ?
+ commandHandler.apply(res, clHandler.args) : true; // true for break loop
+ return {res: res, forceNext: false};
+ };
+ }
+ return clHandler;
+ }
+
+ exports.promptCL = function(commandHandler, options) {
+ /* eslint-disable key-spacing */
+ var readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ limitMessage: 'Requested command is not available.',
+ caseSensitive: false,
+ history: true
+ }, options),
+ // -------- forced
+ // trueValue, falseValue, keepWhitespace don't work.
+ // preCheck, limit (by clHandler)
+ clHandler = getClHandler(commandHandler, readOptions);
+ /* eslint-enable key-spacing */
+ readOptions.limit = clHandler.limit;
+ readOptions.preCheck = clHandler.preCheck;
+ exports.prompt(readOptions);
+ return clHandler.args;
+ };
+
+ exports.promptLoop = function(inputHandler, options) {
+ /* eslint-disable key-spacing */
+ var readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ trueValue: null,
+ falseValue: null,
+ caseSensitive: false,
+ history: true
+ }, options);
+ /* eslint-enable key-spacing */
+ while (true) { if (inputHandler(exports.prompt(readOptions))) { break; } }
+ return;
+ };
+
+ exports.promptCLLoop = function(commandHandler, options) {
+ /* eslint-disable key-spacing */
+ var readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ limitMessage: 'Requested command is not available.',
+ caseSensitive: false,
+ history: true
+ }, options),
+ // -------- forced
+ // trueValue, falseValue, keepWhitespace don't work.
+ // preCheck, limit (by clHandler)
+ clHandler = getClHandler(commandHandler, readOptions);
+ /* eslint-enable key-spacing */
+ readOptions.limit = clHandler.limit;
+ readOptions.preCheck = clHandler.preCheck;
+ while (true) {
+ exports.prompt(readOptions);
+ if (clHandler.hRes) { break; }
+ }
+ return;
+ };
+
+ exports.promptSimShell = function(options) {
+ /* eslint-disable key-spacing */
+ return exports.prompt(margeOptions({
+ // -------- default
+ hideEchoBack: false,
+ history: true
+ }, options, {
+ // -------- forced
+ prompt: (function() {
+ return IS_WIN ?
+ '$>' :
+ // 'user@host:cwd$ '
+ (process.env.USER || '') +
+ (process.env.HOSTNAME ?
+ '@' + process.env.HOSTNAME.replace(/\..*$/, '') : '') +
+ ':$$ ';
+ })()
+ }));
+ /* eslint-enable key-spacing */
+ };
+
+ function _keyInYN(query, options, limit) {
+ var res;
+ if (query == null) { query = 'Are you sure? '; }
+ if ((!options || options.guide !== false) && (query += '')) {
+ query = query.replace(/\s*:?\s*$/, '') + ' [y/n]: ';
+ }
+ /* eslint-disable key-spacing */
+ res = exports.keyIn(query, margeOptions(options, {
+ // -------- forced
+ hideEchoBack: false,
+ limit: limit,
+ trueValue: 'y',
+ falseValue: 'n',
+ caseSensitive: false
+ // mask doesn't work.
+ }));
+ // added: guide
+ /* eslint-enable key-spacing */
+ return typeof res === 'boolean' ? res : '';
+ }
+ exports.keyInYN = function(query, options) { return _keyInYN(query, options); };
+ exports.keyInYNStrict = function(query, options) { return _keyInYN(query, options, 'yn'); };
+
+ exports.keyInPause = function(query, options) {
+ if (query == null) { query = 'Continue...'; }
+ if ((!options || options.guide !== false) && (query += '')) {
+ query = query.replace(/\s+$/, '') + ' (Hit any key)';
+ }
+ /* eslint-disable key-spacing */
+ exports.keyIn(query, margeOptions({
+ // -------- default
+ limit: null
+ }, options, {
+ // -------- forced
+ hideEchoBack: true,
+ mask: ''
+ }));
+ // added: guide
+ /* eslint-enable key-spacing */
+ return;
+ };
+
+ exports.keyInSelect = function(items, query, options) {
+ /* eslint-disable key-spacing */
+ var readOptions = margeOptions({
+ // -------- default
+ hideEchoBack: false
+ }, options, {
+ // -------- forced
+ trueValue: null,
+ falseValue: null,
+ caseSensitive: false,
+ // limit (by items),
+ phContent: function(param) {
+ return param === 'itemsCount' ? items.length + '' :
+ param === 'firstItem' ? (items[0] + '').trim() :
+ param === 'lastItem' ? (items[items.length - 1] + '').trim() : null;
+ }
+ }),
+ // added: guide, cancel
+ keylist = '', key2i = {}, charCode = 49 /* '1' */, display = '\n';
+ /* eslint-enable key-spacing */
+ if (!Array.isArray(items) || !items.length || items.length > 35) {
+ throw '`items` must be Array (max length: 35).';
+ }
+
+ items.forEach(function(item, i) {
+ var key = String.fromCharCode(charCode);
+ keylist += key;
+ key2i[key] = i;
+ display += '[' + key + '] ' + (item + '').trim() + '\n';
+ charCode = charCode === 57 /* '9' */ ? 97 /* 'a' */ : charCode + 1;
+ });
+ if (!options || options.cancel !== false) {
+ keylist += '0';
+ key2i['0'] = -1;
+ display += '[0] ' +
+ (options && options.cancel != null && typeof options.cancel !== 'boolean' ?
+ (options.cancel + '').trim() : 'CANCEL') + '\n';
+ }
+ readOptions.limit = keylist;
+ display += '\n';
+
+ if (query == null) { query = 'Choose one from list: '; }
+ if ((query += '')) {
+ if (!options || options.guide !== false) {
+ query = query.replace(/\s*:?\s*$/, '') + ' [$]: ';
+ }
+ display += query;
+ }
+
+ return key2i[exports.keyIn(display, readOptions).toLowerCase()];
+ };
+
+ exports.getRawInput = function() { return rawInput; };
+
+ // ======== DEPRECATED ========
+ function _setOption(optionName, args) {
+ var options;
+ if (args.length) { options = {}; options[optionName] = args[0]; }
+ return exports.setDefaultOptions(options)[optionName];
+ }
+ exports.setPrint = function() { return _setOption('print', arguments); };
+ exports.setPrompt = function() { return _setOption('prompt', arguments); };
+ exports.setEncoding = function() { return _setOption('encoding', arguments); };
+ exports.setMask = function() { return _setOption('mask', arguments); };
+ exports.setBufferSize = function() { return _setOption('bufferSize', arguments); };
+
+
+ /***/ }),
+ /* 10 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("child_process");
+
+ /***/ }),
+ /* 11 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("path");
+
+ /***/ }),
+ /* 12 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("os");
+
+ /***/ }),
+ /* 13 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("crypto");
+
+ /***/ }),
+ /* 14 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+ ///
+
+ var __importDefault = this && this.__importDefault || function (mod) {
+ return mod && mod.__esModule ? mod : {
+ "default": mod
+ };
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const core_1 = __webpack_require__(1);
+
+ const get_1 = __importDefault(__webpack_require__(15));
+
+ const tau_prolog_1 = __importDefault(__webpack_require__(7));
+
+ const vm_1 = __importDefault(__webpack_require__(67)); // eslint-disable-next-line @typescript-eslint/camelcase
+
+
+ const {
+ is_atom: isAtom,
+ is_variable: isVariable,
+ is_instantiated_list: isInstantiatedList
+ } = tau_prolog_1.default.type;
+
+ function prependGoals(thread, point, goals) {
+ thread.prepend(goals.map(goal => new tau_prolog_1.default.type.State(point.goal.replace(goal), point.substitution, point)));
+ }
+
+ const projects = new WeakMap();
+
+ function getProject(thread) {
+ const project = projects.get(thread.session);
+ if (project == null) throw new Error(`Assertion failed: A project should have been registered for the active session`);
+ return project;
+ }
+
+ const tauModule = new tau_prolog_1.default.type.Module(`constraints`, {
+ [`project_workspaces_by_descriptor/3`]: (thread, point, atom) => {
+ const [descriptorIdent, descriptorRange, workspaceCwd] = atom.args;
+
+ if (!isAtom(descriptorIdent) || !isAtom(descriptorRange)) {
+ thread.throwError(tau_prolog_1.default.error.instantiation(atom.indicator));
+ return;
+ }
+
+ const ident = core_1.structUtils.parseIdent(descriptorIdent.id);
+ const descriptor = core_1.structUtils.makeDescriptor(ident, descriptorRange.id);
+ const project = getProject(thread);
+ const workspace = project.tryWorkspaceByDescriptor(descriptor);
+
+ if (isVariable(workspaceCwd)) {
+ if (workspace !== null) {
+ prependGoals(thread, point, [new tau_prolog_1.default.type.Term(`=`, [workspaceCwd, new tau_prolog_1.default.type.Term(String(workspace.relativeCwd))])]);
+ }
+ }
+
+ if (isAtom(workspaceCwd)) {
+ if (workspace !== null && workspace.relativeCwd === workspaceCwd.id) {
+ thread.success(point);
+ }
+ }
+ },
+ [`workspace_field/3`]: (thread, point, atom) => {
+ const [workspaceCwd, fieldName, fieldValue] = atom.args;
+
+ if (!isAtom(workspaceCwd) || !isAtom(fieldName)) {
+ thread.throwError(tau_prolog_1.default.error.instantiation(atom.indicator));
+ return;
+ }
+
+ const project = getProject(thread);
+ const workspace = project.tryWorkspaceByCwd(workspaceCwd.id); // Workspace not found => this predicate can never match
+ // We might want to throw here? We can be pretty sure the user did
+ // something wrong at this point
+
+ if (workspace == null) return;
+ const value = get_1.default(workspace.manifest.raw, fieldName.id); // Field is not present => this predicate can never match
+
+ if (typeof value === `undefined`) return;
+ prependGoals(thread, point, [new tau_prolog_1.default.type.Term(`=`, [fieldValue, new tau_prolog_1.default.type.Term(String(value))])]);
+ },
+ [`workspace_field_test/3`]: (thread, point, atom) => {
+ const [workspaceCwd, fieldName, checkCode] = atom.args;
+ thread.prepend([new tau_prolog_1.default.type.State(point.goal.replace(new tau_prolog_1.default.type.Term(`workspace_field_test`, [workspaceCwd, fieldName, checkCode, new tau_prolog_1.default.type.Term(`[]`, [])])), point.substitution, point)]);
+ },
+ [`workspace_field_test/4`]: (thread, point, atom) => {
+ const [workspaceCwd, fieldName, checkCode, checkArgv] = atom.args;
+
+ if (!isAtom(workspaceCwd) || !isAtom(fieldName) || !isAtom(checkCode) || !isInstantiatedList(checkArgv)) {
+ thread.throwError(tau_prolog_1.default.error.instantiation(atom.indicator));
+ return;
+ }
+
+ const project = getProject(thread);
+ const workspace = project.tryWorkspaceByCwd(workspaceCwd.id); // Workspace not found => this predicate can never match
+ // We might want to throw here? We can be pretty sure the user did
+ // something wrong at this point
+
+ if (workspace == null) return;
+ const value = get_1.default(workspace.manifest.raw, fieldName.id); // Field is not present => this predicate can never match
+
+ if (typeof value === `undefined`) return; // Inject the variables into a sandbox
+
+ const vars = {
+ $$: value
+ };
+
+ for (const [index, value] of checkArgv.toJavaScript().entries()) vars[`$${index}`] = value;
+
+ const result = vm_1.default.runInNewContext(checkCode.id, vars);
+
+ if (result) {
+ thread.success(point);
+ }
+ }
+ }, [`project_workspaces_by_descriptor/3`, `workspace_field/3`, `workspace_field_test/3`, `workspace_field_test/4`]);
+
+ function linkProjectToSession(session, project) {
+ projects.set(session, project);
+ session.consult(`:- use_module(library(${tauModule.id})).`);
+ }
+
+ exports.linkProjectToSession = linkProjectToSession;
+
+ /***/ }),
+ /* 15 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseGet = __webpack_require__(16);
+
+ /**
+ * Gets the value at `path` of `object`. If the resolved value is
+ * `undefined`, the `defaultValue` is returned in its place.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.7.0
+ * @category Object
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @param {*} [defaultValue] The value returned for `undefined` resolved values.
+ * @returns {*} Returns the resolved value.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.get(object, 'a[0].b.c');
+ * // => 3
+ *
+ * _.get(object, ['a', '0', 'b', 'c']);
+ * // => 3
+ *
+ * _.get(object, 'a.b.c', 'default');
+ * // => 'default'
+ */
+ function get(object, path, defaultValue) {
+ var result = object == null ? undefined : baseGet(object, path);
+ return result === undefined ? defaultValue : result;
+ }
+
+ module.exports = get;
+
+
+ /***/ }),
+ /* 16 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var castPath = __webpack_require__(17),
+ toKey = __webpack_require__(66);
+
+ /**
+ * The base implementation of `_.get` without support for default values.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array|string} path The path of the property to get.
+ * @returns {*} Returns the resolved value.
+ */
+ function baseGet(object, path) {
+ path = castPath(path, object);
+
+ var index = 0,
+ length = path.length;
+
+ while (object != null && index < length) {
+ object = object[toKey(path[index++])];
+ }
+ return (index && index == length) ? object : undefined;
+ }
+
+ module.exports = baseGet;
+
+
+ /***/ }),
+ /* 17 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var isArray = __webpack_require__(18),
+ isKey = __webpack_require__(19),
+ stringToPath = __webpack_require__(28),
+ toString = __webpack_require__(63);
+
+ /**
+ * Casts `value` to a path array if it's not one.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {Array} Returns the cast property path array.
+ */
+ function castPath(value, object) {
+ if (isArray(value)) {
+ return value;
+ }
+ return isKey(value, object) ? [value] : stringToPath(toString(value));
+ }
+
+ module.exports = castPath;
+
+
+ /***/ }),
+ /* 18 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+ var isArray = Array.isArray;
+
+ module.exports = isArray;
+
+
+ /***/ }),
+ /* 19 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var isArray = __webpack_require__(18),
+ isSymbol = __webpack_require__(20);
+
+ /** Used to match property names within property paths. */
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
+ reIsPlainProp = /^\w*$/;
+
+ /**
+ * Checks if `value` is a property name and not a property path.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
+ */
+ function isKey(value, object) {
+ if (isArray(value)) {
+ return false;
+ }
+ var type = typeof value;
+ if (type == 'number' || type == 'symbol' || type == 'boolean' ||
+ value == null || isSymbol(value)) {
+ return true;
+ }
+ return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
+ (object != null && value in Object(object));
+ }
+
+ module.exports = isKey;
+
+
+ /***/ }),
+ /* 20 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseGetTag = __webpack_require__(21),
+ isObjectLike = __webpack_require__(27);
+
+ /** `Object#toString` result references. */
+ var symbolTag = '[object Symbol]';
+
+ /**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+ function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
+ }
+
+ module.exports = isSymbol;
+
+
+ /***/ }),
+ /* 21 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var Symbol = __webpack_require__(22),
+ getRawTag = __webpack_require__(25),
+ objectToString = __webpack_require__(26);
+
+ /** `Object#toString` result references. */
+ var nullTag = '[object Null]',
+ undefinedTag = '[object Undefined]';
+
+ /** Built-in value references. */
+ var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+ /**
+ * The base implementation of `getTag` without fallbacks for buggy environments.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+ function baseGetTag(value) {
+ if (value == null) {
+ return value === undefined ? undefinedTag : nullTag;
+ }
+ return (symToStringTag && symToStringTag in Object(value))
+ ? getRawTag(value)
+ : objectToString(value);
+ }
+
+ module.exports = baseGetTag;
+
+
+ /***/ }),
+ /* 22 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var root = __webpack_require__(23);
+
+ /** Built-in value references. */
+ var Symbol = root.Symbol;
+
+ module.exports = Symbol;
+
+
+ /***/ }),
+ /* 23 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var freeGlobal = __webpack_require__(24);
+
+ /** Detect free variable `self`. */
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+ /** Used as a reference to the global object. */
+ var root = freeGlobal || freeSelf || Function('return this')();
+
+ module.exports = root;
+
+
+ /***/ }),
+ /* 24 */
+ /***/ (function(module, exports) {
+
+ /** Detect free variable `global` from Node.js. */
+ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
+
+ module.exports = freeGlobal;
+
+
+ /***/ }),
+ /* 25 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var Symbol = __webpack_require__(22);
+
+ /** Used for built-in method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var nativeObjectToString = objectProto.toString;
+
+ /** Built-in value references. */
+ var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+ /**
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the raw `toStringTag`.
+ */
+ function getRawTag(value) {
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
+ tag = value[symToStringTag];
+
+ try {
+ value[symToStringTag] = undefined;
+ var unmasked = true;
+ } catch (e) {}
+
+ var result = nativeObjectToString.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag] = tag;
+ } else {
+ delete value[symToStringTag];
+ }
+ }
+ return result;
+ }
+
+ module.exports = getRawTag;
+
+
+ /***/ }),
+ /* 26 */
+ /***/ (function(module, exports) {
+
+ /** Used for built-in method references. */
+ var objectProto = Object.prototype;
+
+ /**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var nativeObjectToString = objectProto.toString;
+
+ /**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+ function objectToString(value) {
+ return nativeObjectToString.call(value);
+ }
+
+ module.exports = objectToString;
+
+
+ /***/ }),
+ /* 27 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+ function isObjectLike(value) {
+ return value != null && typeof value == 'object';
+ }
+
+ module.exports = isObjectLike;
+
+
+ /***/ }),
+ /* 28 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var memoizeCapped = __webpack_require__(29);
+
+ /** Used to match property names within property paths. */
+ var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
+
+ /** Used to match backslashes in property paths. */
+ var reEscapeChar = /\\(\\)?/g;
+
+ /**
+ * Converts `string` to a property path array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the property path array.
+ */
+ var stringToPath = memoizeCapped(function(string) {
+ var result = [];
+ if (string.charCodeAt(0) === 46 /* . */) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, subString) {
+ result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
+ });
+ return result;
+ });
+
+ module.exports = stringToPath;
+
+
+ /***/ }),
+ /* 29 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var memoize = __webpack_require__(30);
+
+ /** Used as the maximum memoize cache size. */
+ var MAX_MEMOIZE_SIZE = 500;
+
+ /**
+ * A specialized version of `_.memoize` which clears the memoized function's
+ * cache when it exceeds `MAX_MEMOIZE_SIZE`.
+ *
+ * @private
+ * @param {Function} func The function to have its output memoized.
+ * @returns {Function} Returns the new memoized function.
+ */
+ function memoizeCapped(func) {
+ var result = memoize(func, function(key) {
+ if (cache.size === MAX_MEMOIZE_SIZE) {
+ cache.clear();
+ }
+ return key;
+ });
+
+ var cache = result.cache;
+ return result;
+ }
+
+ module.exports = memoizeCapped;
+
+
+ /***/ }),
+ /* 30 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var MapCache = __webpack_require__(31);
+
+ /** Error message constants. */
+ var FUNC_ERROR_TEXT = 'Expected a function';
+
+ /**
+ * Creates a function that memoizes the result of `func`. If `resolver` is
+ * provided, it determines the cache key for storing the result based on the
+ * arguments provided to the memoized function. By default, the first argument
+ * provided to the memoized function is used as the map cache key. The `func`
+ * is invoked with the `this` binding of the memoized function.
+ *
+ * **Note:** The cache is exposed as the `cache` property on the memoized
+ * function. Its creation may be customized by replacing the `_.memoize.Cache`
+ * constructor with one whose instances implement the
+ * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
+ * method interface of `clear`, `delete`, `get`, `has`, and `set`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to have its output memoized.
+ * @param {Function} [resolver] The function to resolve the cache key.
+ * @returns {Function} Returns the new memoized function.
+ * @example
+ *
+ * var object = { 'a': 1, 'b': 2 };
+ * var other = { 'c': 3, 'd': 4 };
+ *
+ * var values = _.memoize(_.values);
+ * values(object);
+ * // => [1, 2]
+ *
+ * values(other);
+ * // => [3, 4]
+ *
+ * object.a = 2;
+ * values(object);
+ * // => [1, 2]
+ *
+ * // Modify the result cache.
+ * values.cache.set(object, ['a', 'b']);
+ * values(object);
+ * // => ['a', 'b']
+ *
+ * // Replace `_.memoize.Cache`.
+ * _.memoize.Cache = WeakMap;
+ */
+ function memoize(func, resolver) {
+ if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ var memoized = function() {
+ var args = arguments,
+ key = resolver ? resolver.apply(this, args) : args[0],
+ cache = memoized.cache;
+
+ if (cache.has(key)) {
+ return cache.get(key);
+ }
+ var result = func.apply(this, args);
+ memoized.cache = cache.set(key, result) || cache;
+ return result;
+ };
+ memoized.cache = new (memoize.Cache || MapCache);
+ return memoized;
+ }
+
+ // Expose `MapCache`.
+ memoize.Cache = MapCache;
+
+ module.exports = memoize;
+
+
+ /***/ }),
+ /* 31 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var mapCacheClear = __webpack_require__(32),
+ mapCacheDelete = __webpack_require__(57),
+ mapCacheGet = __webpack_require__(60),
+ mapCacheHas = __webpack_require__(61),
+ mapCacheSet = __webpack_require__(62);
+
+ /**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function MapCache(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ // Add methods to `MapCache`.
+ MapCache.prototype.clear = mapCacheClear;
+ MapCache.prototype['delete'] = mapCacheDelete;
+ MapCache.prototype.get = mapCacheGet;
+ MapCache.prototype.has = mapCacheHas;
+ MapCache.prototype.set = mapCacheSet;
+
+ module.exports = MapCache;
+
+
+ /***/ }),
+ /* 32 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var Hash = __webpack_require__(33),
+ ListCache = __webpack_require__(48),
+ Map = __webpack_require__(56);
+
+ /**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+ function mapCacheClear() {
+ this.size = 0;
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': new (Map || ListCache),
+ 'string': new Hash
+ };
+ }
+
+ module.exports = mapCacheClear;
+
+
+ /***/ }),
+ /* 33 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var hashClear = __webpack_require__(34),
+ hashDelete = __webpack_require__(44),
+ hashGet = __webpack_require__(45),
+ hashHas = __webpack_require__(46),
+ hashSet = __webpack_require__(47);
+
+ /**
+ * Creates a hash object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function Hash(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ // Add methods to `Hash`.
+ Hash.prototype.clear = hashClear;
+ Hash.prototype['delete'] = hashDelete;
+ Hash.prototype.get = hashGet;
+ Hash.prototype.has = hashHas;
+ Hash.prototype.set = hashSet;
+
+ module.exports = Hash;
+
+
+ /***/ }),
+ /* 34 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var nativeCreate = __webpack_require__(35);
+
+ /**
+ * Removes all key-value entries from the hash.
+ *
+ * @private
+ * @name clear
+ * @memberOf Hash
+ */
+ function hashClear() {
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
+ this.size = 0;
+ }
+
+ module.exports = hashClear;
+
+
+ /***/ }),
+ /* 35 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getNative = __webpack_require__(36);
+
+ /* Built-in method references that are verified to be native. */
+ var nativeCreate = getNative(Object, 'create');
+
+ module.exports = nativeCreate;
+
+
+ /***/ }),
+ /* 36 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseIsNative = __webpack_require__(37),
+ getValue = __webpack_require__(43);
+
+ /**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+ function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : undefined;
+ }
+
+ module.exports = getNative;
+
+
+ /***/ }),
+ /* 37 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var isFunction = __webpack_require__(38),
+ isMasked = __webpack_require__(40),
+ isObject = __webpack_require__(39),
+ toSource = __webpack_require__(42);
+
+ /**
+ * Used to match `RegExp`
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
+ */
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+ /** Used to detect host constructors (Safari). */
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+ /** Used for built-in method references. */
+ var funcProto = Function.prototype,
+ objectProto = Object.prototype;
+
+ /** Used to resolve the decompiled source of functions. */
+ var funcToString = funcProto.toString;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /** Used to detect if a method is native. */
+ var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+ );
+
+ /**
+ * The base implementation of `_.isNative` without bad shim checks.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ */
+ function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+ }
+
+ module.exports = baseIsNative;
+
+
+ /***/ }),
+ /* 38 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseGetTag = __webpack_require__(21),
+ isObject = __webpack_require__(39);
+
+ /** `Object#toString` result references. */
+ var asyncTag = '[object AsyncFunction]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ proxyTag = '[object Proxy]';
+
+ /**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+ function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
+ }
+
+ module.exports = isFunction;
+
+
+ /***/ }),
+ /* 39 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+ function isObject(value) {
+ var type = typeof value;
+ return value != null && (type == 'object' || type == 'function');
+ }
+
+ module.exports = isObject;
+
+
+ /***/ }),
+ /* 40 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var coreJsData = __webpack_require__(41);
+
+ /** Used to detect methods masquerading as native. */
+ var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+ }());
+
+ /**
+ * Checks if `func` has its source masked.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
+ */
+ function isMasked(func) {
+ return !!maskSrcKey && (maskSrcKey in func);
+ }
+
+ module.exports = isMasked;
+
+
+ /***/ }),
+ /* 41 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var root = __webpack_require__(23);
+
+ /** Used to detect overreaching core-js shims. */
+ var coreJsData = root['__core-js_shared__'];
+
+ module.exports = coreJsData;
+
+
+ /***/ }),
+ /* 42 */
+ /***/ (function(module, exports) {
+
+ /** Used for built-in method references. */
+ var funcProto = Function.prototype;
+
+ /** Used to resolve the decompiled source of functions. */
+ var funcToString = funcProto.toString;
+
+ /**
+ * Converts `func` to its source code.
+ *
+ * @private
+ * @param {Function} func The function to convert.
+ * @returns {string} Returns the source code.
+ */
+ function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e) {}
+ try {
+ return (func + '');
+ } catch (e) {}
+ }
+ return '';
+ }
+
+ module.exports = toSource;
+
+
+ /***/ }),
+ /* 43 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Gets the value at `key` of `object`.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+ function getValue(object, key) {
+ return object == null ? undefined : object[key];
+ }
+
+ module.exports = getValue;
+
+
+ /***/ }),
+ /* 44 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @name delete
+ * @memberOf Hash
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function hashDelete(key) {
+ var result = this.has(key) && delete this.__data__[key];
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+
+ module.exports = hashDelete;
+
+
+ /***/ }),
+ /* 45 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var nativeCreate = __webpack_require__(35);
+
+ /** Used to stand-in for `undefined` hash values. */
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+ /** Used for built-in method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Hash
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate) {
+ var result = data[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
+ }
+
+ module.exports = hashGet;
+
+
+ /***/ }),
+ /* 46 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var nativeCreate = __webpack_require__(35);
+
+ /** Used for built-in method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Hash
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
+ }
+
+ module.exports = hashHas;
+
+
+ /***/ }),
+ /* 47 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var nativeCreate = __webpack_require__(35);
+
+ /** Used to stand-in for `undefined` hash values. */
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+ /**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Hash
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the hash instance.
+ */
+ function hashSet(key, value) {
+ var data = this.__data__;
+ this.size += this.has(key) ? 0 : 1;
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+ return this;
+ }
+
+ module.exports = hashSet;
+
+
+ /***/ }),
+ /* 48 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var listCacheClear = __webpack_require__(49),
+ listCacheDelete = __webpack_require__(50),
+ listCacheGet = __webpack_require__(53),
+ listCacheHas = __webpack_require__(54),
+ listCacheSet = __webpack_require__(55);
+
+ /**
+ * Creates an list cache object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+ function ListCache(entries) {
+ var index = -1,
+ length = entries == null ? 0 : entries.length;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+ }
+
+ // Add methods to `ListCache`.
+ ListCache.prototype.clear = listCacheClear;
+ ListCache.prototype['delete'] = listCacheDelete;
+ ListCache.prototype.get = listCacheGet;
+ ListCache.prototype.has = listCacheHas;
+ ListCache.prototype.set = listCacheSet;
+
+ module.exports = ListCache;
+
+
+ /***/ }),
+ /* 49 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Removes all key-value entries from the list cache.
+ *
+ * @private
+ * @name clear
+ * @memberOf ListCache
+ */
+ function listCacheClear() {
+ this.__data__ = [];
+ this.size = 0;
+ }
+
+ module.exports = listCacheClear;
+
+
+ /***/ }),
+ /* 50 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var assocIndexOf = __webpack_require__(51);
+
+ /** Used for built-in method references. */
+ var arrayProto = Array.prototype;
+
+ /** Built-in value references. */
+ var splice = arrayProto.splice;
+
+ /**
+ * Removes `key` and its value from the list cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf ListCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function listCacheDelete(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ --this.size;
+ return true;
+ }
+
+ module.exports = listCacheDelete;
+
+
+ /***/ }),
+ /* 51 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var eq = __webpack_require__(52);
+
+ /**
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+ }
+
+ module.exports = assocIndexOf;
+
+
+ /***/ }),
+ /* 52 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Performs a
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+ function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+ }
+
+ module.exports = eq;
+
+
+ /***/ }),
+ /* 53 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var assocIndexOf = __webpack_require__(51);
+
+ /**
+ * Gets the list cache value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf ListCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function listCacheGet(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ return index < 0 ? undefined : data[index][1];
+ }
+
+ module.exports = listCacheGet;
+
+
+ /***/ }),
+ /* 54 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var assocIndexOf = __webpack_require__(51);
+
+ /**
+ * Checks if a list cache value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf ListCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+ }
+
+ module.exports = listCacheHas;
+
+
+ /***/ }),
+ /* 55 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var assocIndexOf = __webpack_require__(51);
+
+ /**
+ * Sets the list cache `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf ListCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the list cache instance.
+ */
+ function listCacheSet(key, value) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ ++this.size;
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+ }
+
+ module.exports = listCacheSet;
+
+
+ /***/ }),
+ /* 56 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getNative = __webpack_require__(36),
+ root = __webpack_require__(23);
+
+ /* Built-in method references that are verified to be native. */
+ var Map = getNative(root, 'Map');
+
+ module.exports = Map;
+
+
+ /***/ }),
+ /* 57 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getMapData = __webpack_require__(58);
+
+ /**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+ function mapCacheDelete(key) {
+ var result = getMapData(this, key)['delete'](key);
+ this.size -= result ? 1 : 0;
+ return result;
+ }
+
+ module.exports = mapCacheDelete;
+
+
+ /***/ }),
+ /* 58 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var isKeyable = __webpack_require__(59);
+
+ /**
+ * Gets the data for `map`.
+ *
+ * @private
+ * @param {Object} map The map to query.
+ * @param {string} key The reference key.
+ * @returns {*} Returns the map data.
+ */
+ function getMapData(map, key) {
+ var data = map.__data__;
+ return isKeyable(key)
+ ? data[typeof key == 'string' ? 'string' : 'hash']
+ : data.map;
+ }
+
+ module.exports = getMapData;
+
+
+ /***/ }),
+ /* 59 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+ function isKeyable(value) {
+ var type = typeof value;
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
+ ? (value !== '__proto__')
+ : (value === null);
+ }
+
+ module.exports = isKeyable;
+
+
+ /***/ }),
+ /* 60 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getMapData = __webpack_require__(58);
+
+ /**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+ function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+ }
+
+ module.exports = mapCacheGet;
+
+
+ /***/ }),
+ /* 61 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getMapData = __webpack_require__(58);
+
+ /**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+ function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+ }
+
+ module.exports = mapCacheHas;
+
+
+ /***/ }),
+ /* 62 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getMapData = __webpack_require__(58);
+
+ /**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache instance.
+ */
+ function mapCacheSet(key, value) {
+ var data = getMapData(this, key),
+ size = data.size;
+
+ data.set(key, value);
+ this.size += data.size == size ? 0 : 1;
+ return this;
+ }
+
+ module.exports = mapCacheSet;
+
+
+ /***/ }),
+ /* 63 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseToString = __webpack_require__(64);
+
+ /**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+ function toString(value) {
+ return value == null ? '' : baseToString(value);
+ }
+
+ module.exports = toString;
+
+
+ /***/ }),
+ /* 64 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var Symbol = __webpack_require__(22),
+ arrayMap = __webpack_require__(65),
+ isArray = __webpack_require__(18),
+ isSymbol = __webpack_require__(20);
+
+ /** Used as references for various `Number` constants. */
+ var INFINITY = 1 / 0;
+
+ /** Used to convert symbols to primitives and strings. */
+ var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+ /**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+ function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isArray(value)) {
+ // Recursively convert values (susceptible to call stack limits).
+ return arrayMap(value, baseToString) + '';
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+ }
+
+ module.exports = baseToString;
+
+
+ /***/ }),
+ /* 65 */
+ /***/ (function(module, exports) {
+
+ /**
+ * A specialized version of `_.map` for arrays without support for iteratee
+ * shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+ function arrayMap(array, iteratee) {
+ var index = -1,
+ length = array == null ? 0 : array.length,
+ result = Array(length);
+
+ while (++index < length) {
+ result[index] = iteratee(array[index], index, array);
+ }
+ return result;
+ }
+
+ module.exports = arrayMap;
+
+
+ /***/ }),
+ /* 66 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var isSymbol = __webpack_require__(20);
+
+ /** Used as references for various `Number` constants. */
+ var INFINITY = 1 / 0;
+
+ /**
+ * Converts `value` to a string key if it's not a string or symbol.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @returns {string|symbol} Returns the key.
+ */
+ function toKey(value) {
+ if (typeof value == 'string' || isSymbol(value)) {
+ return value;
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+ }
+
+ module.exports = toKey;
+
+
+ /***/ }),
+ /* 67 */
+ /***/ (function(module, exports) {
+
+ module.exports = require("vm");
+
+ /***/ }),
+ /* 68 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+
+ var __decorate = this && this.__decorate || function (decorators, target, key, desc) {
+ var c = arguments.length,
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
+ d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const cli_1 = __webpack_require__(3);
+
+ const core_1 = __webpack_require__(1);
+
+ const clipanion_1 = __webpack_require__(4);
+
+ const Constraints_1 = __webpack_require__(5); // eslint-disable-next-line arca/no-default-export
+
+
+ class ConstraintsSourceCommand extends cli_1.BaseCommand {
+ constructor() {
+ super(...arguments);
+ this.verbose = false;
+ }
+
+ async execute() {
+ const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins);
+ const {
+ project
+ } = await core_1.Project.find(configuration, this.context.cwd);
+ const constraints = await Constraints_1.Constraints.find(project);
+ this.context.stdout.write(this.verbose ? constraints.fullSource : constraints.source);
+ }
+
+ }
+
+ ConstraintsSourceCommand.usage = clipanion_1.Command.Usage({
+ category: `Constraints-related commands`,
+ description: `print the source code for the constraints`,
+ details: `
+ This command will print the Prolog source code used by the constraints engine. Adding the \`-v,--verbose\` flag will print the *full* source code, including the fact database automatically compiled from your workspaces manifests.
+ `,
+ examples: [[`Prints the source code`, `yarn constraints source`], [`Print the source code and the fact database`, `yarn constraints source -v`]]
+ });
+
+ __decorate([clipanion_1.Command.Boolean(`-v,--verbose`)], ConstraintsSourceCommand.prototype, "verbose", void 0);
+
+ __decorate([clipanion_1.Command.Path(`constraints`, `source`)], ConstraintsSourceCommand.prototype, "execute", null);
+
+ exports.default = ConstraintsSourceCommand;
+
+ /***/ }),
+ /* 69 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+
+ var __decorate = this && this.__decorate || function (decorators, target, key, desc) {
+ var c = arguments.length,
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
+ d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+
+ var __importDefault = this && this.__importDefault || function (mod) {
+ return mod && mod.__esModule ? mod : {
+ "default": mod
+ };
+ };
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true
+ });
+
+ const cli_1 = __webpack_require__(3);
+
+ const core_1 = __webpack_require__(1);
+
+ const core_2 = __webpack_require__(1);
+
+ const core_3 = __webpack_require__(1);
+
+ const clipanion_1 = __webpack_require__(4);
+
+ const get_1 = __importDefault(__webpack_require__(15));
+
+ const set_1 = __importDefault(__webpack_require__(70));
+
+ const unset_1 = __importDefault(__webpack_require__(76));
+
+ const Constraints_1 = __webpack_require__(5); // eslint-disable-next-line arca/no-default-export
+
+
+ class ConstraintsCheckCommand extends cli_1.BaseCommand {
+ constructor() {
+ super(...arguments);
+ this.fix = false;
+ }
+
+ async execute() {
+ for (let t = 0; t < 10; ++t) {
+ const configuration = await core_1.Configuration.find(this.context.cwd, this.context.plugins);
+ const {
+ project
+ } = await core_1.Project.find(configuration, this.context.cwd);
+ const constraints = await Constraints_1.Constraints.find(project);
+ const toSave = new Set();
+ const report = await core_2.StreamReport.start({
+ configuration,
+ stdout: this.context.stdout
+ }, async report => {
+ const result = await constraints.process();
+ await processDependencyConstraints(toSave, result.enforcedDependencies, {
+ fix: this.fix,
+ configuration,
+ report
+ });
+ await processFieldConstraints(toSave, result.enforcedFields, {
+ fix: this.fix,
+ configuration,
+ report
+ });
+
+ for (const workspace of toSave) {
+ workspace.persistManifest();
+ }
+ });
+ if (report.hasErrors()) return report.exitCode();
+
+ if (!this.fix || toSave.size > 0) {
+ return 0;
+ }
+ }
+
+ return 1;
+ }
+
+ }
+
+ ConstraintsCheckCommand.usage = clipanion_1.Command.Usage({
+ category: `Constraints-related commands`,
+ description: `check that the project constraints are met`,
+ details: `
+ This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code.
+
+ If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution.
+
+ For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints.
+ `,
+ examples: [[`Check that all constraints are satisfied`, `yarn constraints`], [`Autofix all unmet constraints`, `yarn constraints --fix`]]
+ });
+
+ __decorate([clipanion_1.Command.Boolean(`--fix`)], ConstraintsCheckCommand.prototype, "fix", void 0);
+
+ __decorate([clipanion_1.Command.Path(`constraints`)], ConstraintsCheckCommand.prototype, "execute", null);
+
+ exports.default = ConstraintsCheckCommand;
+
+ async function processDependencyConstraints(toSave, enforcedDependencies, {
+ configuration,
+ fix,
+ report
+ }) {
+ let hasFixes = false;
+ const allIdents = new Map();
+ const byWorkspaces = new Map();
+
+ for (const {
+ workspace,
+ dependencyIdent,
+ dependencyRange,
+ dependencyType
+ } of enforcedDependencies) {
+ let byWorkspacesStore = byWorkspaces.get(workspace);
+ if (typeof byWorkspacesStore === `undefined`) byWorkspaces.set(workspace, byWorkspacesStore = new Map());
+ let byIdentStore = byWorkspacesStore.get(dependencyIdent.identHash);
+ if (typeof byIdentStore === `undefined`) byWorkspacesStore.set(dependencyIdent.identHash, byIdentStore = new Map());
+ let byDependencyTypeStore = byIdentStore.get(dependencyType);
+ if (typeof byDependencyTypeStore === `undefined`) byIdentStore.set(dependencyType, byDependencyTypeStore = new Set());
+ allIdents.set(dependencyIdent.identHash, dependencyIdent);
+ byDependencyTypeStore.add(dependencyRange);
+ }
+
+ for (const [workspace, byWorkspacesStore] of byWorkspaces) {
+ for (const [identHash, byIdentStore] of byWorkspacesStore) {
+ const dependencyIdent = allIdents.get(identHash);
+ if (typeof dependencyIdent === `undefined`) throw new Error(`Assertion failed: The ident should have been registered`);
+
+ for (const [dependencyType, byDependencyTypeStore] of byIdentStore) {
+ const expectedRanges = [...byDependencyTypeStore];
+
+ if (expectedRanges.length > 2) {
+ report.reportError(core_2.MessageName.CONSTRAINTS_AMBIGUITY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must depend on ${core_3.structUtils.prettyIdent(configuration, dependencyIdent)} via conflicting ranges ${expectedRanges.slice(0, -1).map(expectedRange => core_3.structUtils.prettyRange(configuration, String(expectedRange))).join(`, `)}, and ${core_3.structUtils.prettyRange(configuration, String(expectedRanges[expectedRanges.length - 1]))} (in ${dependencyType})`);
+ } else if (expectedRanges.length > 1) {
+ report.reportError(core_2.MessageName.CONSTRAINTS_AMBIGUITY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must depend on ${core_3.structUtils.prettyIdent(configuration, dependencyIdent)} via conflicting ranges ${core_3.structUtils.prettyRange(configuration, String(expectedRanges[0]))} and ${core_3.structUtils.prettyRange(configuration, String(expectedRanges[1]))} (in ${dependencyType})`);
+ } else {
+ const dependencyDescriptor = workspace.manifest[dependencyType].get(dependencyIdent.identHash);
+ const [expectedRange] = expectedRanges;
+
+ if (expectedRange !== null) {
+ if (!dependencyDescriptor) {
+ if (fix) {
+ workspace.manifest[dependencyType].set(dependencyIdent.identHash, core_3.structUtils.makeDescriptor(dependencyIdent, expectedRange));
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_MISSING_DEPENDENCY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must depend on ${core_3.structUtils.prettyIdent(configuration, dependencyIdent)} (via ${core_3.structUtils.prettyRange(configuration, expectedRange)}), but doesn't (in ${dependencyType})`);
+ }
+ } else if (dependencyDescriptor.range !== expectedRange) {
+ if (fix) {
+ workspace.manifest[dependencyType].set(dependencyIdent.identHash, core_3.structUtils.makeDescriptor(dependencyIdent, expectedRange));
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must depend on ${core_3.structUtils.prettyIdent(configuration, dependencyIdent)} via ${core_3.structUtils.prettyRange(configuration, expectedRange)}, but uses ${core_3.structUtils.prettyRange(configuration, dependencyDescriptor.range)} instead (in ${dependencyType})`);
+ }
+ }
+ } else {
+ if (dependencyDescriptor) {
+ if (fix) {
+ workspace.manifest[dependencyType].delete(dependencyIdent.identHash);
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_EXTRANEOUS_DEPENDENCY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} has an extraneous dependency on ${core_3.structUtils.prettyIdent(configuration, dependencyIdent)} (in ${dependencyType})`);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return hasFixes;
+ }
+
+ async function processFieldConstraints(toSave, enforcedFields, {
+ configuration,
+ fix,
+ report
+ }) {
+ let hasFixes = false;
+ const byWorkspaces = new Map();
+
+ for (const {
+ workspace,
+ fieldPath,
+ fieldValue
+ } of enforcedFields) {
+ const byWorkspacesStore = core_1.miscUtils.getMapWithDefault(byWorkspaces, workspace);
+ const byPathStore = core_1.miscUtils.getSetWithDefault(byWorkspacesStore, fieldPath);
+ byPathStore.add(fieldValue);
+ }
+
+ for (const [workspace, byWorkspacesStore] of byWorkspaces) {
+ for (const [fieldPath, byPathStore] of byWorkspacesStore) {
+ const expectedValues = [...byPathStore];
+
+ if (expectedValues.length > 2) {
+ report.reportError(core_2.MessageName.CONSTRAINTS_AMBIGUITY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must have a field ${configuration.format(fieldPath, `cyan`)} set to conflicting values ${expectedValues.slice(0, -1).map(expectedValue => configuration.format(String(expectedValue), `magenta`)).join(`, `)}, or ${configuration.format(String(expectedValues[expectedValues.length - 1]), `magenta`)}`);
+ } else if (expectedValues.length > 1) {
+ report.reportError(core_2.MessageName.CONSTRAINTS_AMBIGUITY, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must have a field ${configuration.format(fieldPath, `cyan`)} set to conflicting values ${configuration.format(String(expectedValues[0]), `magenta`)} or ${configuration.format(String(expectedValues[1]), `magenta`)}`);
+ } else {
+ const actualValue = get_1.default(workspace.manifest.raw, fieldPath);
+ const [expectedValue] = expectedValues;
+
+ if (expectedValue !== null) {
+ if (actualValue === undefined) {
+ if (fix) {
+ await setWorkspaceField(workspace, fieldPath, expectedValue);
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_MISSING_FIELD, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must have a field ${configuration.format(fieldPath, `cyan`)} set to ${configuration.format(String(expectedValue), `magenta`)}, but doesn't`);
+ }
+ } else if (JSON.stringify(actualValue) !== expectedValue) {
+ if (fix) {
+ await setWorkspaceField(workspace, fieldPath, expectedValue);
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_INCOMPATIBLE_FIELD, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} must have a field ${configuration.format(fieldPath, `cyan`)} set to ${configuration.format(String(expectedValue), `magenta`)}, but is set to ${configuration.format(JSON.stringify(actualValue), `magenta`)} instead`);
+ }
+ }
+ } else {
+ if (actualValue !== undefined && actualValue !== null) {
+ if (fix) {
+ await setWorkspaceField(workspace, fieldPath, null);
+ toSave.add(workspace);
+ hasFixes = true;
+ } else {
+ report.reportError(core_2.MessageName.CONSTRAINTS_EXTRANEOUS_FIELD, `${core_3.structUtils.prettyWorkspace(configuration, workspace)} has an extraneous field ${configuration.format(fieldPath, `cyan`)} set to ${configuration.format(String(expectedValue), `magenta`)}`);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return hasFixes;
+ }
+
+ async function setWorkspaceField(workspace, fieldPath, value) {
+ if (value === null) {
+ unset_1.default(workspace.manifest.raw, fieldPath);
+ } else {
+ set_1.default(workspace.manifest.raw, fieldPath, JSON.parse(value));
+ }
+ }
+
+ /***/ }),
+ /* 70 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseSet = __webpack_require__(71);
+
+ /**
+ * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
+ * it's created. Arrays are created for missing index properties while objects
+ * are created for all other missing properties. Use `_.setWith` to customize
+ * `path` creation.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.7.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+ *
+ * _.set(object, 'a[0].b.c', 4);
+ * console.log(object.a[0].b.c);
+ * // => 4
+ *
+ * _.set(object, ['x', '0', 'y', 'z'], 5);
+ * console.log(object.x[0].y.z);
+ * // => 5
+ */
+ function set(object, path, value) {
+ return object == null ? object : baseSet(object, path, value);
+ }
+
+ module.exports = set;
+
+
+ /***/ }),
+ /* 71 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var assignValue = __webpack_require__(72),
+ castPath = __webpack_require__(17),
+ isIndex = __webpack_require__(75),
+ isObject = __webpack_require__(39),
+ toKey = __webpack_require__(66);
+
+ /**
+ * The base implementation of `_.set`.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to set.
+ * @param {*} value The value to set.
+ * @param {Function} [customizer] The function to customize path creation.
+ * @returns {Object} Returns `object`.
+ */
+ function baseSet(object, path, value, customizer) {
+ if (!isObject(object)) {
+ return object;
+ }
+ path = castPath(path, object);
+
+ var index = -1,
+ length = path.length,
+ lastIndex = length - 1,
+ nested = object;
+
+ while (nested != null && ++index < length) {
+ var key = toKey(path[index]),
+ newValue = value;
+
+ if (index != lastIndex) {
+ var objValue = nested[key];
+ newValue = customizer ? customizer(objValue, key, nested) : undefined;
+ if (newValue === undefined) {
+ newValue = isObject(objValue)
+ ? objValue
+ : (isIndex(path[index + 1]) ? [] : {});
+ }
+ }
+ assignValue(nested, key, newValue);
+ nested = nested[key];
+ }
+ return object;
+ }
+
+ module.exports = baseSet;
+
+
+ /***/ }),
+ /* 72 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseAssignValue = __webpack_require__(73),
+ eq = __webpack_require__(52);
+
+ /** Used for built-in method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+ function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
+ (value === undefined && !(key in object))) {
+ baseAssignValue(object, key, value);
+ }
+ }
+
+ module.exports = assignValue;
+
+
+ /***/ }),
+ /* 73 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var defineProperty = __webpack_require__(74);
+
+ /**
+ * The base implementation of `assignValue` and `assignMergeValue` without
+ * value checks.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+ function baseAssignValue(object, key, value) {
+ if (key == '__proto__' && defineProperty) {
+ defineProperty(object, key, {
+ 'configurable': true,
+ 'enumerable': true,
+ 'value': value,
+ 'writable': true
+ });
+ } else {
+ object[key] = value;
+ }
+ }
+
+ module.exports = baseAssignValue;
+
+
+ /***/ }),
+ /* 74 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var getNative = __webpack_require__(36);
+
+ var defineProperty = (function() {
+ try {
+ var func = getNative(Object, 'defineProperty');
+ func({}, '', {});
+ return func;
+ } catch (e) {}
+ }());
+
+ module.exports = defineProperty;
+
+
+ /***/ }),
+ /* 75 */
+ /***/ (function(module, exports) {
+
+ /** Used as references for various `Number` constants. */
+ var MAX_SAFE_INTEGER = 9007199254740991;
+
+ /** Used to detect unsigned integer values. */
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
+
+ /**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+ function isIndex(value, length) {
+ var type = typeof value;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+
+ return !!length &&
+ (type == 'number' ||
+ (type != 'symbol' && reIsUint.test(value))) &&
+ (value > -1 && value % 1 == 0 && value < length);
+ }
+
+ module.exports = isIndex;
+
+
+ /***/ }),
+ /* 76 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseUnset = __webpack_require__(77);
+
+ /**
+ * Removes the property at `path` of `object`.
+ *
+ * **Note:** This method mutates `object`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Object
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The path of the property to unset.
+ * @returns {boolean} Returns `true` if the property is deleted, else `false`.
+ * @example
+ *
+ * var object = { 'a': [{ 'b': { 'c': 7 } }] };
+ * _.unset(object, 'a[0].b.c');
+ * // => true
+ *
+ * console.log(object);
+ * // => { 'a': [{ 'b': {} }] };
+ *
+ * _.unset(object, ['a', '0', 'b', 'c']);
+ * // => true
+ *
+ * console.log(object);
+ * // => { 'a': [{ 'b': {} }] };
+ */
+ function unset(object, path) {
+ return object == null ? true : baseUnset(object, path);
+ }
+
+ module.exports = unset;
+
+
+ /***/ }),
+ /* 77 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var castPath = __webpack_require__(17),
+ last = __webpack_require__(78),
+ parent = __webpack_require__(79),
+ toKey = __webpack_require__(66);
+
+ /**
+ * The base implementation of `_.unset`.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {Array|string} path The property path to unset.
+ * @returns {boolean} Returns `true` if the property is deleted, else `false`.
+ */
+ function baseUnset(object, path) {
+ path = castPath(path, object);
+ object = parent(object, path);
+ return object == null || delete object[toKey(last(path))];
+ }
+
+ module.exports = baseUnset;
+
+
+ /***/ }),
+ /* 78 */
+ /***/ (function(module, exports) {
+
+ /**
+ * Gets the last element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {*} Returns the last element of `array`.
+ * @example
+ *
+ * _.last([1, 2, 3]);
+ * // => 3
+ */
+ function last(array) {
+ var length = array == null ? 0 : array.length;
+ return length ? array[length - 1] : undefined;
+ }
+
+ module.exports = last;
+
+
+ /***/ }),
+ /* 79 */
+ /***/ (function(module, exports, __webpack_require__) {
+
+ var baseGet = __webpack_require__(16),
+ baseSlice = __webpack_require__(80);
+
+ /**
+ * Gets the parent value at `path` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} path The path to get the parent value of.
+ * @returns {*} Returns the parent value.
+ */
+ function parent(object, path) {
+ return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
+ }
+
+ module.exports = parent;
+
+
+ /***/ }),
+ /* 80 */
+ /***/ (function(module, exports) {
+
+ /**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+ function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = end > length ? length : end;
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+ }
+
+ module.exports = baseSlice;
+
+
+ /***/ })
+ /******/ ]);
+ return plugin;
+ },
+};
diff --git a/.yarn/releases/yarn-2.0.0-rc.36.js b/.yarn/releases/yarn-2.0.0-rc.36.js
new file mode 100755
index 000000000000..9372193ec28f
--- /dev/null
+++ b/.yarn/releases/yarn-2.0.0-rc.36.js
@@ -0,0 +1,77 @@
+#!/usr/bin/env node
+module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=877)}([function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"Method",(function(){return Q})),r.d(n,"request",(function(){return b})),r.d(n,"get",(function(){return D})),r.d(n,"put",(function(){return v}));var i={};r.r(i),r.d(i,"makeArchiveFromDirectory",(function(){return T})),r.d(i,"convertToZip",(function(){return P})),r.d(i,"extractArchiveTo",(function(){return U}));var o=r(55),s=r(88),a=r(47),A=r(417),c=r.n(A),u=r(158),l=r(120),h=r(45),g=r.n(h),f=r(164),p=r.n(f),d=r(290),C=r.n(d),E=r(68);const I=p()(8),m=new Map,y=new l.Agent({keepAlive:!0}),w=new u.Agent({keepAlive:!0});function B(e){const t=new E.URL(e),r={host:t.hostname,headers:{}};return t.port&&(r.port=Number(t.port)),{proxy:r}}var Q;async function b(e,t,{configuration:r,headers:n,json:i,method:o=Q.GET}){if(!r.get("enableNetwork"))throw new Error(`Network access have been disabled by configuration (${o} ${e})`);const s=new E.URL(e);if("http:"===s.protocol&&!g.a.isMatch(s.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${s.hostname})`);const a=r.get("httpProxy"),A=r.get("httpsProxy"),u={agent:{http:a?C.a.httpOverHttp(B(a)):y,https:A?C.a.httpsOverHttp(B(A)):w},headers:n,method:o};u.responseType=i?"json":"buffer",null!==t&&("string"==typeof t||Buffer.isBuffer(t)?u.body=t:u.json=t);const l=r.get("httpTimeout"),h=r.get("httpRetry"),f=c.a.extend({timeout:l,retry:h,...u});return I(()=>f(e))}async function D(e,{configuration:t,json:r,...n}){let i=m.get(e);return i||(i=b(e,null,{configuration:t,...n}).then(t=>(m.set(e,t.body),t.body)),m.set(e,i)),!1===Buffer.isBuffer(i)&&(i=await i),r?JSON.parse(i.toString()):i}async function v(e,t,r){return(await b(e,t,{...r,method:Q.PUT})).body}!function(e){e.GET="GET",e.PUT="PUT"}(Q||(Q={}));var S=r(22),k=r(160),x=r(122),F=r(5),M=r(32),N=r(4),R=r(3),K=r(57),L=r(36),O=r(418);async function T(e,{baseFs:t=new M.a,prefixPath:r=N.b.root,compressionLevel:n}={}){const i=await R.xfs.mktempPromise(),o=N.e.join(i,"archive.zip"),s=new K.b(o,{create:!0,libzip:await Object(L.getLibzipPromise)(),level:n}),a=N.e.resolve(N.b.root,r);return await s.copyPromise(a,e,{baseFs:t}),s}async function P(e,t){const r=await R.xfs.mktempPromise(),n=N.e.join(r,"archive.zip"),{compressionLevel:i,...o}=t;return await U(e,new K.b(n,{create:!0,libzip:await Object(L.getLibzipPromise)(),level:i}),o)}async function U(e,t,{stripComponents:r=0,prefixPath:n=N.b.dot}={}){const i=new O.Parse;return i.on("entry",e=>{if(function(e){if("/"===e[0])return!0;const t=e.path.split(/\//g);return!!t.some(e=>".."===e)||t.length<=r}(e))return void e.resume();const i=N.e.normalize(N.d.toPortablePath(e.path)).replace(/\/$/,"").split(/\//g);if(i.length<=r)return void e.resume();const o=i.slice(r).join("/"),s=N.e.join(n,o),a=[];let A=420;"Directory"!==e.type&&0==(73&e.mode)||(A|=73),e.on("data",e=>{a.push(e)}),e.on("end",()=>{var r;switch(e.type){case"Directory":t.mkdirpSync(N.e.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.mkdirSync(s),t.chmodSync(s,A),t.utimesSync(s,315532800,315532800);break;case"OldFile":case"File":t.mkdirpSync(N.e.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.writeFileSync(s,Buffer.concat(a)),t.chmodSync(s,A),t.utimesSync(s,315532800,315532800);break;case"SymbolicLink":t.mkdirpSync(N.e.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.symlinkSync(e.linkpath,s),null===(r=t.lutimesSync)||void 0===r||r.call(t,s,315532800,315532800)}})}),await new Promise((r,n)=>{i.on("error",e=>{n(e)}),i.on("close",()=>{r(t)}),i.end(e)})}var _=r(319),j=r(29),Y=r(90),G=r(320),J=r(37),H=r(17),z=r(410),q=r(204),W=r(24),V=r(131),X=r(159),Z=r(205),$=r(53),ee=r(207),te=r(130),re=r(121);r.d(t,"Cache",(function(){return _.a})),r.d(t,"DEFAULT_RC_FILENAME",(function(){return j.c})),r.d(t,"DEFAULT_LOCK_FILENAME",(function(){return j.b})),r.d(t,"Configuration",(function(){return j.a})),r.d(t,"FormatType",(function(){return j.d})),r.d(t,"ProjectLookup",(function(){return j.e})),r.d(t,"SettingsType",(function(){return j.f})),r.d(t,"BuildType",(function(){return Y.a})),r.d(t,"LightReport",(function(){return G.a})),r.d(t,"Manifest",(function(){return J.a})),r.d(t,"MessageName",(function(){return H.a})),r.d(t,"Project",(function(){return z.a})),r.d(t,"TAG_REGEXP",(function(){return q.b})),r.d(t,"ReportError",(function(){return W.b})),r.d(t,"Report",(function(){return W.a})),r.d(t,"StreamReport",(function(){return V.a})),r.d(t,"ThrowReport",(function(){return X.a})),r.d(t,"VirtualFetcher",(function(){return Z.a})),r.d(t,"WorkspaceResolver",(function(){return $.a})),r.d(t,"Workspace",(function(){return ee.a})),r.d(t,"YarnVersion",(function(){return te.a})),r.d(t,"LinkType",(function(){return re.a})),r.d(t,"hashUtils",(function(){return a})),r.d(t,"httpUtils",(function(){return n})),r.d(t,"execUtils",(function(){return o})),r.d(t,"folderUtils",(function(){return s})),r.d(t,"miscUtils",(function(){return S})),r.d(t,"scriptUtils",(function(){return k})),r.d(t,"semverUtils",(function(){return x})),r.d(t,"structUtils",(function(){return F})),r.d(t,"tgzUtils",(function(){return i}))},function(e,t,r){"use strict";r.d(t,"b",(function(){return i})),r.d(t,"a",(function(){return o}));
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let n=(()=>{class e{constructor(){this.help=!1}static getMeta(e){const t=e.constructor;return t.meta=Object.prototype.hasOwnProperty.call(t,"meta")?t.meta:{definitions:[],transformers:[(e,t)=>{for(const{name:r,value:n}of e.options)"-h"!==r&&"--help"!==r||(t.help=n)}]}}static resolveMeta(t){const r=[],n=[];for(let i=t;i instanceof e;i=i.__proto__){const e=this.getMeta(i);for(const t of e.definitions)r.push(t);for(const t of e.transformers)n.push(t)}return{definitions:r,transformers:n}}static registerDefinition(e,t){this.getMeta(e).definitions.push(t)}static registerTransformer(e,t){this.getMeta(e).transformers.push(t)}static addPath(...e){this.Path(...e)(this.prototype,"execute")}static addOption(e,t){t(this.prototype,e)}static Path(...e){return(t,r)=>{this.registerDefinition(t,t=>{t.addPath(e)})}}static Boolean(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:0,hidden:t,allowBinding:!1})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=o)})}}static String(e={required:!0},{tolerateBoolean:t=!1,hidden:r=!1}={}){return(n,i)=>{if("string"==typeof e){const o=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:o,arity:t?0:1,hidden:r})}),this.registerTransformer(n,(e,t)=>{for(const{name:r,value:n}of e.options)o.includes(r)&&(t[i]=n)})}else this.registerDefinition(n,t=>{t.addPositional({name:i,required:e.required})}),this.registerTransformer(n,(e,t)=>{e.positionals.length>0&&(t[i]=e.positionals.shift().value)})}}static Array(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:1,hidden:t})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=t[n]||[],t[n].push(o))})}}static Rest({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addRest({name:r,required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Proxy({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addProxy({required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Usage(e){return e}static Schema(e){return e}async validateAndExecute(){const e=this.constructor.schema;if(void 0!==e)try{await e.validate(this)}catch(e){throw"ValidationError"===e.name&&(e.clipanion={type:"usage"}),e}const t=await this.execute();return void 0!==t?t:0}}return e.Entries={},e})();
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */function i(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}let o=(()=>{class e extends n{async execute(){this.context.stdout.write(this.cli.usage(null))}}return i([n.Path("--help"),n.Path("-h")],e.prototype,"execute",null),e})(),s=(()=>{class e extends n{async execute(){var e;this.context.stdout.write(`${null!==(e=this.cli.binaryVersion)&&void 0!==e?e:""}\n`)}}return i([n.Path("--version"),n.Path("-v")],e.prototype,"execute",null),e})();const a=0,A=1,c=2,u="",l="\0",h=-1,g=/^(-h|--help)(?:=([0-9]+))?$/,f=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,p=/^-[a-zA-Z]{2,}$/,d=/^([^=]+)=([\s\S]*)$/,C="1"===process.env.DEBUG_CLI;class E extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}}class I extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",0===this.candidates.length)this.message="Command not found, but we're not sure what's the alternative.";else if(1===this.candidates.length&&null!==this.candidates[0].reason){const[{usage:e,reason:t}]=this.candidates;this.message=`${t}\n\n$ ${e}`}else if(1===this.candidates.length){const[{usage:t}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${t}\n${y(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:e},t)=>`${`${t}.`.padStart(4)} ${e}`).join("\n")}\n\n${y(e)}`}}class m extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find who to pick amongst the following alternatives:\n\n${this.usages.map((e,t)=>`${`${t}.`.padStart(4)} ${e}`).join("\n")}\n\n${y(e)}`}}const y=e=>`While running ${e.filter(e=>e!==l).map(e=>{const t=JSON.stringify(e);return e.match(/\s/)||0===e.length||t!==`"${e}"`?t:e}).join(" ")}`;function w(e){C&&console.log(e)}function B(e,t){return e.nodes.push(t),e.nodes.length-1}function Q(e,t,r=!1){w(`Running a vm on ${JSON.stringify(t)}`);let n=[{node:a,state:{candidateUsage:null,errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];!function(e,{prefix:t=""}={}){w(`${t}Nodes are:`);for(let r=0;re!==c).map(({state:e})=>({usage:e.candidateUsage,reason:null})));if(a.every(({node:e})=>e===c))throw new I(t,a.map(({state:e})=>({usage:e.candidateUsage,reason:e.errorMessage})));n=v(a)}if(n.length>0){w(" Results:");for(const e of n)w(` - ${e.node} -> ${JSON.stringify(e.state)}`)}else w(" No results");return n}function b(e,t){if(null!==t.selectedIndex)return!0;if(Object.prototype.hasOwnProperty.call(e.statics,l))for(const{to:t}of e.statics[l])if(t===A)return!0;return!1}function D(e,t){return function(e,t){const r=t.filter(e=>null!==e.selectedIndex);if(0===r.length)throw new Error;let n=0;for(const e of r)e.path.length>n&&(n=e.path.length);const i=r.filter(e=>e.path.length===n),o=e=>e.positionals.filter(({extra:e})=>!e).length+e.options.length,s=i.map(e=>({state:e,positionalCount:o(e)}));let a=0;for(const{positionalCount:e}of s)e>a&&(a=e);const A=function(e){const t=[],r=[];for(const n of e)n.selectedIndex===h?r.push(...n.options):t.push(n);r.length>0&&t.push({candidateUsage:null,errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:r,remainder:null,selectedIndex:h});return t}(s.filter(({positionalCount:e})=>e===a).map(({state:e})=>e));if(A.length>1)throw new m(e,A.map(e=>e.candidateUsage));return A[0]}(t,Q(e,[...t,l]).map(({state:e})=>e))}function v(e){let t=0;for(const{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:e})=>e.path.length===t)}function S(e){return e===A||e===c}function k(e,t=0){return{to:S(e.to)?e.to:e.to>2?e.to+t-2:e.to+t,reducer:e.reducer}}function x(e,t=0){const r={dynamics:[],shortcuts:[],statics:{}};for(const[n,i]of e.dynamics)r.dynamics.push([n,k(i,t)]);for(const n of e.shortcuts)r.shortcuts.push(k(n,t));for(const[n,i]of Object.entries(e.statics))r.statics[n]=i.map(e=>k(e,t));return r}function F(e,t,r,n,i){e.nodes[t].dynamics.push([r,{to:n,reducer:i}])}function M(e,t,r,n){e.nodes[t].shortcuts.push({to:r,reducer:n})}function N(e,t,r,n,i){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,r)?e.nodes[t].statics[r]:e.nodes[t].statics[r]=[]).push({to:n,reducer:i})}function R(e,t,r,n){if(Array.isArray(t)){const[i,...o]=t;return e[i](r,n,...o)}return e[t](r,n)}function K(e,t){const r=Array.isArray(e)?L[e[0]]:L[e];if(void 0===r.suggest)return null;const n=Array.isArray(e)?e.slice(1):[];return r.suggest(t,...n)}const L={always:()=>!0,isNotOptionLike:(e,t)=>e.ignoreOptions||!t.startsWith("-"),isOption:(e,t,r,n)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,r)=>!e.ignoreOptions&&p.test(t)&&[...t.slice(1)].every(e=>r.includes(`-${e}`)),isBoundOption:(e,t,r,n)=>{const i=t.match(d);return!e.ignoreOptions&&!!i&&f.test(i[1])&&r.includes(i[1])&&n.filter(e=>e.names.includes(i[1])).every(e=>e.allowBinding)},isNegatedOption:(e,t,r)=>!e.ignoreOptions&&t===`--no-${r.slice(2)}`,isHelp:(e,t)=>!e.ignoreOptions&&g.test(t),isUnsupportedOption:(e,t,r)=>!e.ignoreOptions&&t.startsWith("-")&&f.test(t)&&!r.includes(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!f.test(t)};L.isOption.suggest=(e,t,r=!0)=>r?null:[t];const O={setCandidateUsage:(e,t,r)=>Object.assign(Object.assign({},e),{candidateUsage:r}),setSelectedIndex:(e,t,r)=>Object.assign(Object.assign({},e),{selectedIndex:r}),pushBatch:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat([...t.slice(1)].map(e=>({name:`-${e}`,value:!0})))}),pushBound:(e,t)=>{const[,r,n]=t.match(d);return Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:n})})},pushPath:(e,t)=>Object.assign(Object.assign({},e),{path:e.path.concat(t)}),pushPositional:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!1})}),pushExtra:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!0})}),pushTrue:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:!0})}),pushFalse:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:!1})}),pushUndefined:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:void 0})}),setStringValue:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.slice(0,-1).concat(Object.assign(Object.assign({},e.options[e.options.length-1]),{value:t}))}),inhibateOptions:e=>Object.assign(Object.assign({},e),{ignoreOptions:!0}),useHelp:(e,t,r)=>{const[,n,i]=t.match(g);return void 0!==i?Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)}]})},setError:(e,t,r)=>t===l?Object.assign(Object.assign({},e),{errorMessage:`${r}.`}):Object.assign(Object.assign({},e),{errorMessage:`${r} ("${t}").`})},T=Symbol();class P{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:r=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:r,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===T)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");t||this.arity.extra===T?this.arity.extra!==T&&0===this.arity.extra.length?this.arity.leading.push(e):this.arity.trailing.push(e):this.arity.extra.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===T)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let r=0;r0&&t.push(...this.paths[0]),e){for(const{names:e,arity:r,hidden:n}of this.options){if(n)continue;const i=[];for(let e=0;e`<${e}>`)),this.arity.extra===T?t.push("..."):t.push(...this.arity.extra.map(e=>`[${e}]`)),t.push(...this.arity.trailing.map(e=>`<${e}>`))}return t.join(" ")}compile(){if(void 0===this.context)throw new Error("Assertion failed: No context attached");const e={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]};let t=a;t=B(e,{dynamics:[],shortcuts:[],statics:{}}),N(e,a,u,t,["setCandidateUsage",this.usage()]);const r=this.arity.proxy?"always":"isNotOptionLike",n=this.paths.length>0?this.paths:[[]];for(const i of n){let n=t;if(i.length>0){const t=B(e,{dynamics:[],shortcuts:[],statics:{}});M(e,n,t),this.registerOptions(e,t),n=t}for(let t=0;t0||!this.arity.proxy){const t=B(e,{dynamics:[],shortcuts:[],statics:{}});F(e,n,"isHelp",t,["useHelp",this.cliIndex]),N(e,t,l,A,["setSelectedIndex",h]),this.registerOptions(e,n)}this.arity.leading.length>0&&N(e,n,l,c,["setError","Not enough positional arguments"]);let o=n;for(let t=0;t0||t+1!==this.arity.leading.length)&&N(e,r,l,c,["setError","Not enough positional arguments"]),F(e,o,"isNotOptionLike",r,"pushPositional"),o=r}let s=o;if(this.arity.extra===T||this.arity.extra.length>0){const t=B(e,{dynamics:[],shortcuts:[],statics:{}});if(M(e,o,t),this.arity.extra===T){const n=B(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),F(e,o,r,n,"pushExtra"),F(e,n,r,n,"pushExtra"),M(e,n,t)}else for(let n=0;n0&&N(e,s,l,c,["setError","Not enough positional arguments"]);let a=s;for(let t=0;tt.length>e.length?t:e,"");if(0===r.arity)for(const i of r.names)F(e,t,["isOption",i,r.hidden||i!==n],t,"pushTrue"),i.startsWith("--")&&F(e,t,["isNegatedOption",i,r.hidden||i!==n],t,["pushFalse",i]);else{if(1!==r.arity)throw new Error(`Unsupported option arity (${r.arity})`);{const i=B(e,{dynamics:[],shortcuts:[],statics:{}});F(e,i,"isNotOptionLike",t,"setStringValue");for(const o of r.names)F(e,t,["isOption",o,r.hidden||o!==n],i,"pushUndefined")}}}}}class U{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new U(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e{if(t.has(n))return;t.add(n);const i=e.nodes[n];for(const e of Object.values(i.statics))for(const{to:t}of e)r(t);for(const[,{to:e}]of i.dynamics)r(e);for(const{to:e}of i.shortcuts)r(e);const o=new Set(i.shortcuts.map(({to:e})=>e));for(;i.shortcuts.length>0;){const{to:t}=i.shortcuts.shift(),r=e.nodes[t];for(const[e,t]of Object.entries(r.statics)){let r=Object.prototype.hasOwnProperty.call(i.statics,e)?i.statics[e]:i.statics[e]=[];for(const e of t)r.some(({to:t})=>e.to===t)||r.push(e)}for(const[e,t]of r.dynamics)i.dynamics.some(([r,{to:n}])=>e===r&&t.to===n)||i.dynamics.push([e,t]);for(const e of r.shortcuts)o.has(e.to)||(i.shortcuts.push(e),o.add(e.to))}};r(a)}(r),{machine:r,contexts:t,process:e=>D(r,e),suggest:(e,t)=>(function(e,t,r){const n=r&&t.length>0?[""]:[],i=Q(e,t,r),o=[],s=new Set,a=(t,r,n=!0)=>{let i=[r];for(;i.length>0;){const r=i;i=[];for(const o of r){const r=e.nodes[o],s=Object.keys(r.statics);for(const e of Object.keys(r.statics)){const e=s[0];for(const{to:o,reducer:s}of r.statics[e])"pushPath"===s&&(n||t.push(e),i.push(o))}}n=!1}const a=JSON.stringify(t);s.has(a)||(o.push(t),s.add(a))};for(const{node:t,state:r}of i){if(null!==r.remainder){a([r.remainder],t);continue}const i=e.nodes[t],o=b(i,r);for(const[e,r]of Object.entries(i.statics))(o&&e!==l||!e.startsWith("-")&&r.some(({reducer:e})=>"pushPath"===e))&&a([...n,e],t);if(o)for(const[e,{to:o}]of i.dynamics){if(o===c)continue;const i=K(e,r);if(null!==i)for(const e of i)a([...n,e],t)}}return[...o].sort()})(r,e,t)}}}const _={bold:e=>`[1m${e}[22m`,error:e=>`[31m[1m${e}[22m[39m`,code:e=>`[36m${e}[39m`},j={bold:e=>e,error:e=>e,code:e=>e};function Y(e,{format:t,paragraphs:r}){return e=(e=(e=(e=(e=e.replace(/\r\n?/g,"\n")).replace(/^[\t ]+|[\t ]+$/gm,"")).replace(/^\n+|\n+$/g,"")).replace(/^-([^\n]*?)\n+/gm,"-$1\n\n")).replace(/\n(\n)?\n*/g,"$1"),r&&(e=e.split(/\n/).map((function(e){let t=e.match(/^[*-][\t ]+(.*)/);return t?t[1].match(/(.{1,78})(?: |$)/g).map((e,t)=>(0===t?"- ":" ")+e).join("\n"):e.match(/(.{1,80})(?: |$)/g).join("\n")})).join("\n\n")),(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(function(e,r,n){return t.code(r+n+r)})))?e+"\n":""}class G extends n{constructor(e,t){super(),this.realCli=e,this.contexts=t,this.commands=[]}static from(e,t,r){const n=new G(t,r);for(const t of e.options)switch(t.name){case"-c":n.commands.push(Number(t.value));break;case"-i":n.index=Number(t.value)}return n}async execute(){let e=this.commands;if(void 0!==this.index&&this.index>=0&&this.index1){this.context.stdout.write("Multiple commands match your selection:\n"),this.context.stdout.write("\n");let e=0;for(const t of this.commands)this.context.stdout.write(this.realCli.usage(this.contexts[t].commandClass,{prefix:`${e++}. `.padStart(5)}));this.context.stdout.write("\n"),this.context.stdout.write("Run again with -h= to see the longer details of any of those commands.\n")}}}let J=(()=>{class e{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:r,enableColors:n="0"!==process.env.FORCE_COLOR&&("1"===process.env.FORCE_COLOR||!(void 0===process.stdout||!process.stdout.isTTY))}={}){this.registrations=new Map,this.builder=new U({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=r,this.enableColors=n}static from(t){const r=new e;for(const e of t)r.register(e);return r}register(e){const t=this.builder.command();this.registrations.set(e,t.cliIndex);const{definitions:r}=e.resolveMeta(e.prototype);for(const e of r)e(t);t.setContext({commandClass:e})}process(e){const{contexts:t,process:r}=this.builder.compile(),n=r(e);switch(n.selectedIndex){case h:return G.from(n,this,t);default:{const{commandClass:e}=t[n.selectedIndex],r=new e;r.path=n.path;const{transformers:i}=e.resolveMeta(e.prototype);for(const e of i)e(n,r);return r}}}async run(e,t){let r,n;if(Array.isArray(e))try{r=this.process(e)}catch(e){return t.stdout.write(this.error(e)),1}else r=e;if(r.help)return t.stdout.write(this.usage(r,{detailed:!0})),0;r.context=t,r.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,definitions:()=>this.definitions(),error:(e,t)=>this.error(e,t),process:e=>this.process(e),run:(e,r)=>this.run(e,Object.assign(Object.assign({},t),r)),usage:(e,t)=>this.usage(e,t)};try{n=await r.validateAndExecute()}catch(e){return t.stdout.write(this.error(e,{command:r})),1}return n}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){const{contexts:r,process:n,suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){const t=[];for(const[r,n]of this.registrations){if(void 0===r.usage)continue;const i=this.getUsageByIndex(n,{detailed:!1}),o=this.getUsageByIndex(n,{detailed:!0}),s=void 0!==r.usage.category?Y(r.usage.category,{format:this.format(e),paragraphs:!1}):void 0,a=void 0!==r.usage.description?Y(r.usage.description,{format:this.format(e),paragraphs:!1}):void 0,A=void 0!==r.usage.details?Y(r.usage.details,{format:this.format(e),paragraphs:!0}):void 0,c=void 0!==r.usage.examples?r.usage.examples.map(([t,r])=>[Y(t,{format:this.format(e),paragraphs:!1}),r.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:i,usage:o,category:s,description:a,details:A,examples:c})}return t}usage(e=null,{colored:t,detailed:r=!1,prefix:n="$ "}={}){const i=null!==e&&void 0===e.getMeta?e.constructor:e;let o="";if(i)if(r){const{description:e="",details:r="",examples:s=[]}=i.usage||{};if(""!==e&&(o+=Y(e,{format:this.format(t),paragraphs:!1}).replace(/^./,e=>e.toUpperCase()),o+="\n"),(""!==r||s.length>0)&&(o+=`${this.format(t).bold("Usage:")}\n`,o+="\n"),o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`,""!==r&&(o+="\n",o+=`${this.format(t).bold("Details:")}\n`,o+="\n",o+=Y(r,{format:this.format(t),paragraphs:!0})),s.length>0){o+="\n",o+=`${this.format(t).bold("Examples:")}\n`;for(let[e,r]of s)o+="\n",o+=Y(e,{format:this.format(t),paragraphs:!1}),o+=r.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)+"\n"}}else o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`;else{const e=new Map;for(const[r,n]of this.registrations.entries()){if(void 0===r.usage)continue;const i=void 0!==r.usage.category?Y(r.usage.category,{format:this.format(t),paragraphs:!1}):null;let o=e.get(i);void 0===o&&e.set(i,o=[]);const s=this.getUsageByIndex(n);o.push({commandClass:r,usage:s})}const r=Array.from(e.keys()).sort((e,t)=>null===e?-1:null===t?1:e.localeCompare(t,"en",{usage:"sort",caseFirst:"upper"})),i=void 0!==this.binaryLabel,s=void 0!==this.binaryVersion;i||s?(o+=i&&s?`${this.format(t).bold(`${this.binaryLabel} - ${this.binaryVersion}`)}\n\n`:i?`${this.format(t).bold(`${this.binaryLabel}`)}\n`:`${this.format(t).bold(`${this.binaryVersion}`)}\n`,o+=` ${this.format(t).bold(n)}${this.binaryName} \n`):o+=`${this.format(t).bold(n)}${this.binaryName} \n`;for(let n of r){const r=e.get(n).slice().sort((e,t)=>e.usage.localeCompare(t.usage,"en",{usage:"sort",caseFirst:"upper"})),i=null!==n?n.trim():"Where is one of";o+="\n",o+=`${this.format(t).bold(`${i}:`)}\n`;for(let{commandClass:e,usage:n}of r){const r=e.usage.description||"undocumented";o+="\n",o+=` ${this.format(t).bold(n)}\n`,o+=` ${Y(r,{format:this.format(t),paragraphs:!1})}`}}o+="\n",o+=Y("You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return o}error(e,{colored:t,command:r=null}={}){e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let n="",i=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");"Error"===i&&(i="Internal Error"),n+=`${this.format(t).error(i)}: ${e.message}\n`;const o=e.clipanion;return void 0!==o?"usage"===o.type&&(n+="\n",n+=this.usage(r)):e.stack&&(n+=`${e.stack.replace(/^.*\n/,"")}\n`),n}getUsageByRegistration(e,t){const r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}format(e=this.enableColors){return e?_:j}}return e.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},e})();n.Entries.Help=o,n.Entries.Version=s,t.Cli=J,t.Command=n,t.UsageError=E},function(e,t,r){"use strict";r.r(t);var n=r(34),i=r.n(n),o=r(14),s=r(32),a=r(4),A=r(43),c=r(57),u=r(281),l=r(219),h=r(301),g=r(282);const f=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"});class p extends A.b{constructor(){super(a.e)}getExtractHint(){throw f()}getRealPath(){throw f()}resolve(){throw f()}async openPromise(){throw f()}openSync(){throw f()}async readPromise(){throw f()}readSync(){throw f()}async writePromise(){throw f()}writeSync(){throw f()}async closePromise(){throw f()}closeSync(){throw f()}createWriteStream(){throw f()}createReadStream(){throw f()}async realpathPromise(){throw f()}realpathSync(){throw f()}async readdirPromise(){throw f()}readdirSync(){throw f()}async existsPromise(e){throw f()}existsSync(e){throw f()}async accessPromise(){throw f()}accessSync(){throw f()}async statPromise(){throw f()}statSync(){throw f()}async lstatPromise(e){throw f()}lstatSync(e){throw f()}async chmodPromise(){throw f()}chmodSync(){throw f()}async mkdirPromise(){throw f()}mkdirSync(){throw f()}async rmdirPromise(){throw f()}rmdirSync(){throw f()}async symlinkPromise(){throw f()}symlinkSync(){throw f()}async renamePromise(){throw f()}renameSync(){throw f()}async copyFilePromise(){throw f()}copyFileSync(){throw f()}async appendFilePromise(){throw f()}appendFileSync(){throw f()}async writeFilePromise(){throw f()}writeFileSync(){throw f()}async unlinkPromise(){throw f()}unlinkSync(){throw f()}async utimesPromise(){throw f()}utimesSync(){throw f()}async readFilePromise(){throw f()}readFileSync(){throw f()}async readlinkPromise(){throw f()}readlinkSync(){throw f()}watch(){throw f()}}p.instance=new p;var d=r(302),C=r(44),E=r(283),I=r(220);function m(e){const t=a.d.toPortablePath(i.a.tmpdir()),r=Math.ceil(4294967296*Math.random()).toString(16).padStart(8,"0");return a.e.join(t,`${e}${r}`)}function y(e,t){const r=new Set(["accessSync","appendFileSync","createReadStream","chmodSync","closeSync","copyFileSync","lstatSync","lutimesSync","mkdirSync","openSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","unlinkSync","utimesSync","watch","writeFileSync","writeSync"]),n=new Set(["accessPromise","appendFilePromise","chmodPromise","closePromise","copyFilePromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),i=(e,t,r)=>{const n=e[t];e[t]=r,void 0!==n[o.promisify.custom]&&(r[o.promisify.custom]=n[o.promisify.custom])};i(e,"existsSync",e=>{try{return t.existsSync(e)}catch(e){return!1}}),i(e,"exists",(e,...r)=>{const n="function"==typeof r[r.length-1]?r.pop():()=>{};process.nextTick(()=>{t.existsPromise(e).then(e=>{n(e)},()=>{n(!1)})})}),i(e,"read",(e,r,...n)=>{const i="function"==typeof n[n.length-1]?n.pop():()=>{};process.nextTick(()=>{t.readPromise(e,r,...n).then(e=>{i(null,e,r)},e=>{i(e)})})});for(const r of n){const n=r.replace(/Promise$/,"");if(void 0===e[n])continue;const o=t[r];void 0!==o&&i(e,n,(...e)=>{const r="function"==typeof e[e.length-1]?e.pop():()=>{};process.nextTick(()=>{o.apply(t,e).then(e=>{r(null,e)},e=>{r(e)})})})}for(const n of r){const r=n;if(void 0===e[r])continue;const o=t[n];void 0!==o&&i(e,r,o.bind(t))}e.realpathSync.native=e.realpathSync,e.realpath.native=e.realpath}function w(e,t){const r=Object.create(e);return y(r,t),r}r.d(t,"patchFs",(function(){return y})),r.d(t,"extendFs",(function(){return w})),r.d(t,"xfs",(function(){return D})),r.d(t,"normalizeLineEndings",(function(){return A.c})),r.d(t,"DEFAULT_COMPRESSION_LEVEL",(function(){return c.a})),r.d(t,"PortablePath",(function(){return a.b})),r.d(t,"Filename",(function(){return a.a})),r.d(t,"npath",(function(){return a.d})),r.d(t,"ppath",(function(){return a.e})),r.d(t,"toFilename",(function(){return a.f})),r.d(t,"AliasFS",(function(){return u.a})),r.d(t,"FakeFS",(function(){return A.b})),r.d(t,"CwdFS",(function(){return l.a})),r.d(t,"JailFS",(function(){return h.a})),r.d(t,"LazyFS",(function(){return g.a})),r.d(t,"NoFS",(function(){return p})),r.d(t,"NodeFS",(function(){return s.a})),r.d(t,"PosixFS",(function(){return d.a})),r.d(t,"ProxiedFS",(function(){return C.a})),r.d(t,"VirtualFS",(function(){return E.a})),r.d(t,"ZipFS",(function(){return c.b})),r.d(t,"ZipOpenFS",(function(){return I.a}));const B=new Set;let Q=!1;function b(){if(Q)return;Q=!0;const e=()=>{process.off("exit",e);for(const e of B){B.delete(e);try{D.removeSync(e)}catch(e){}}};process.on("exit",e)}const D=Object.assign(new s.a,{detachTemp(e){B.delete(e)},mktempSync(e){for(b();;){const t=m("xfs-");try{this.mkdirSync(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=this.realpathSync(t);if(B.add(r),void 0===e)return t;try{return e(r)}finally{if(B.has(r)){B.delete(r);try{this.removeSync(r)}catch(e){}}}}},async mktempPromise(e){for(b();;){const t=m("xfs-");try{await this.mkdirPromise(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=await this.realpathPromise(t);if(B.add(r),void 0===e)return r;try{return await e(r)}finally{if(B.has(r)){B.delete(r);try{await this.removePromise(r)}catch(e){}}}}}})},function(e,t,r){"use strict";r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return a})),r.d(t,"d",(function(){return A})),r.d(t,"e",(function(){return c})),r.d(t,"c",(function(){return C})),r.d(t,"f",(function(){return E}));var n,i=r(12),o=r.n(i);!function(e){e[e.File=0]="File",e[e.Portable=1]="Portable",e[e.Native=2]="Native"}(n||(n={}));const s={root:"/",dot:"."},a={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock"},A=Object.create(o.a),c=Object.create(o.a.posix);A.cwd=()=>process.cwd(),c.cwd=()=>d(process.cwd()),c.resolve=(...e)=>o.a.posix.resolve(c.cwd(),...e);const u=function(e,t,r){return(t=e.normalize(t))===(r=e.normalize(r))?".":(t.endsWith(e.sep)||(t+=e.sep),r.startsWith(t)?r.slice(t.length):null)};A.fromPortablePath=p,A.toPortablePath=d,A.contains=(e,t)=>u(A,e,t),c.contains=(e,t)=>u(c,e,t);const l=/^([a-zA-Z]:.*)$/,h=/^\\\\(\.\\)?(.*)$/,g=/^\/([a-zA-Z]:.*)$/,f=/^\/unc\/(\.dot\/)?(.*)$/;function p(e){if("win32"!==process.platform)return e;if(e.match(g))e=e.replace(g,"$1");else{if(!e.match(f))return e;e=e.replace(f,(e,t,r)=>`\\\\${t?".\\":""}${r}`)}return e.replace(/\//g,"\\")}function d(e){return"win32"!==process.platform?e:(e.match(l)?e=e.replace(l,"/$1"):e.match(h)&&(e=e.replace(h,(e,t,r)=>`/unc/${t?".dot/":""}${r}`)),e.replace(/\\/g,"/"))}function C(e,t){return e===A?p(t):d(t)}function E(e){if(""!==A.parse(e).dir||""!==c.parse(e).dir)throw new Error(`Invalid filename: "${e}"`);return e}},function(e,t,r){"use strict";r.r(t),r.d(t,"makeIdent",(function(){return g})),r.d(t,"makeDescriptor",(function(){return f})),r.d(t,"makeLocator",(function(){return p})),r.d(t,"convertToIdent",(function(){return d})),r.d(t,"convertDescriptorToLocator",(function(){return C})),r.d(t,"convertLocatorToDescriptor",(function(){return E})),r.d(t,"convertPackageToLocator",(function(){return I})),r.d(t,"renamePackage",(function(){return m})),r.d(t,"copyPackage",(function(){return y})),r.d(t,"virtualizeDescriptor",(function(){return w})),r.d(t,"virtualizePackage",(function(){return B})),r.d(t,"isVirtualDescriptor",(function(){return Q})),r.d(t,"isVirtualLocator",(function(){return b})),r.d(t,"devirtualizeDescriptor",(function(){return D})),r.d(t,"devirtualizeLocator",(function(){return v})),r.d(t,"bindDescriptor",(function(){return S})),r.d(t,"bindLocator",(function(){return k})),r.d(t,"areIdentsEqual",(function(){return x})),r.d(t,"areDescriptorsEqual",(function(){return F})),r.d(t,"areLocatorsEqual",(function(){return M})),r.d(t,"areVirtualPackagesEquivalent",(function(){return N})),r.d(t,"parseIdent",(function(){return R})),r.d(t,"tryParseIdent",(function(){return K})),r.d(t,"parseDescriptor",(function(){return L})),r.d(t,"tryParseDescriptor",(function(){return O})),r.d(t,"parseLocator",(function(){return T})),r.d(t,"tryParseLocator",(function(){return P})),r.d(t,"parseRange",(function(){return U})),r.d(t,"parseFileStyleRange",(function(){return _})),r.d(t,"makeRange",(function(){return Y})),r.d(t,"convertToManifestRange",(function(){return G})),r.d(t,"requirableIdent",(function(){return J})),r.d(t,"stringifyIdent",(function(){return H})),r.d(t,"stringifyDescriptor",(function(){return z})),r.d(t,"stringifyLocator",(function(){return q})),r.d(t,"slugifyIdent",(function(){return W})),r.d(t,"slugifyLocator",(function(){return V})),r.d(t,"prettyIdent",(function(){return X})),r.d(t,"prettyRange",(function(){return $})),r.d(t,"prettyDescriptor",(function(){return ee})),r.d(t,"prettyReference",(function(){return te})),r.d(t,"prettyLocator",(function(){return re})),r.d(t,"prettyLocatorNoColors",(function(){return ne})),r.d(t,"sortDescriptors",(function(){return ie})),r.d(t,"prettyWorkspace",(function(){return oe})),r.d(t,"getIdentVendorPath",(function(){return se}));var n=r(4),i=r(49),o=r.n(i),s=r(15),a=r.n(s),A=r(29),c=r(47),u=r(22);const l="virtual:",h=5;function g(e,t){return{identHash:c.makeHash(e,t),scope:e,name:t}}function f(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:c.makeHash(e.identHash,t),range:t}}function p(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:c.makeHash(e.identHash,t),reference:t}}function d(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function C(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function E(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function I(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function m(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function y(e){return m(e,e)}function w(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return f(e,`virtual:${t}#${e.range}`)}function B(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return m(e,p(e,`virtual:${t}#${e.reference}`))}function Q(e){return e.range.startsWith(l)}function b(e){return e.reference.startsWith(l)}function D(e){if(!Q(e))throw new Error("Not a virtual descriptor");return f(e,e.range.replace(/^[^#]*#/,""))}function v(e){if(!b(e))throw new Error("Not a virtual descriptor");return p(e,e.reference.replace(/^[^#]*#/,""))}function S(e,t){return e.range.includes("::")?e:f(e,`${e.range}::${o.a.stringify(t)}`)}function k(e,t){return e.reference.includes("::")?e:p(e,`${e.reference}::${o.a.stringify(t)}`)}function x(e,t){return e.identHash===t.identHash}function F(e,t){return e.descriptorHash===t.descriptorHash}function M(e,t){return e.locatorHash===t.locatorHash}function N(e,t){if(!b(e))throw new Error("Invalid package type");if(!b(t))throw new Error("Invalid package type");if(!x(e,t))return!1;if(e.dependencies.size!==t.dependencies.size)return!1;for(const r of e.dependencies.values()){const e=t.dependencies.get(r.identHash);if(!e)return!1;if(!F(r,e))return!1}return!0}function R(e){const t=K(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}function K(e){const t=e.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!t)return null;const[,r,n]=t;return g(void 0!==r?r:null,n)}function L(e,t=!1){const r=O(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}function O(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid range (${e})`);const s=void 0!==o?o:"unknown";return f(g(void 0!==n?n:null,i),s)}function T(e,t=!1){const r=P(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}function P(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid reference (${e})`);const s=void 0!==o?o:"unknown";return p(g(void 0!==n?n:null,i),s)}function U(e,t){const r=e.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(null===r)throw new Error(`Invalid range (${e})`);const n=void 0!==r[1]?r[1]:null;if("string"==typeof(null==t?void 0:t.requireProtocol)&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if((null==t?void 0:t.requireProtocol)&&null===n)throw new Error(`Missing protocol (${n})`);const i=void 0!==r[3]?decodeURIComponent(r[2]):null;if((null==t?void 0:t.requireSource)&&null===i)throw new Error(`Missing source (${e})`);const s=void 0!==r[3]?decodeURIComponent(r[3]):decodeURIComponent(r[2]);return{protocol:n,source:i,selector:(null==t?void 0:t.parseSelector)?o.a.parse(s):s,params:void 0!==r[4]?o.a.parse(r[4]):null}}function _(e,{protocol:t}){const{selector:r,params:n}=U(e,{requireProtocol:t,requireBindings:!0});if("string"!=typeof n.locator)throw new Error(`Assertion failed: Invalid bindings for ${e}`);return{parentLocator:T(n.locator,!0),path:r}}function j(e){return e=(e=(e=e.replace(/%/g,"%25")).replace(/:/g,"%3A")).replace(/#/g,"%23")}function Y({protocol:e,source:t,selector:r,params:n}){let i="";return null!==e&&(i+=`${e}`),null!==t&&(i+=`${j(t)}#`),i+=j(r),function(e){return null!==e&&Object.entries(e).length>0}(n)&&(i+=`::${o.a.stringify(n)}`),i}function G(e){const{params:t,protocol:r,source:n,selector:i}=U(e);for(const e in t)e.startsWith("__")&&delete t[e];return Y({protocol:r,source:n,params:t,selector:i})}function J(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function H(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function z(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function q(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function W(e){return null!==e.scope?`@${e.scope}-${e.name}`:e.name}function V(e){const{protocol:t,selector:r}=U(e.reference),i=null!==t?t.replace(/:$/,""):"exotic",o=a.a.valid(r),s=null!==o?`${i}-${o}`:`${i}`,A=(e.scope,`${W(e)}-${s}-${e.locatorHash.slice(0,10)}`);return Object(n.f)(A)}function X(e,t){return t.scope?`${e.format(`@${t.scope}/`,A.d.SCOPE)}${e.format(t.name,A.d.NAME)}`:`${e.format(t.name,A.d.NAME)}`}function Z(e){if(e.startsWith(l)){return`${Z(e.substr(e.indexOf("#")+1))} [${e.substr(l.length,h)}]`}return e.replace(/\?.*/,"?[...]")}function $(e,t){return`${e.format(Z(t),A.d.RANGE)}`}function ee(e,t){return`${X(e,t)}${e.format("@",A.d.RANGE)}${$(e,t.range)}`}function te(e,t){return`${e.format(Z(t),A.d.REFERENCE)}`}function re(e,t){return`${X(e,t)}${e.format("@",A.d.REFERENCE)}${te(e,t.reference)}`}function ne(e){return`${H(e)}@${Z(e.reference)}`}function ie(e){return u.sortMap(e,[e=>H(e),e=>e.range])}function oe(e,t){return X(e,t.locator)}function se(e){return`node_modules/${J(e)}`}},function(e,t,r){"use strict";r.d(t,"a",(function(){return u}));var n=r(1),i=r(64),o=r(137),s=r(18),a=r(104),A=r(38),c=r(80),u=function(e){function t(r,n,i){var s=e.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.a;break;case 1:if(!r){s.destination=o.a;break}if("object"==typeof r){r instanceof t?(s.syncErrorThrowable=r.syncErrorThrowable,s.destination=r,r.add(s)):(s.syncErrorThrowable=!0,s.destination=new l(s,r));break}default:s.syncErrorThrowable=!0,s.destination=new l(s,r,n,i)}return s}return n.b(t,e),t.prototype[a.a]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(s.a),l=function(e){function t(t,r,n,s){var a,A=e.call(this)||this;A._parentSubscriber=t;var c=A;return Object(i.a)(r)?a=r:r&&(a=r.next,n=r.error,s=r.complete,r!==o.a&&(c=Object.create(r),Object(i.a)(c.unsubscribe)&&A.add(c.unsubscribe.bind(c)),c.unsubscribe=A.unsubscribe.bind(A))),A._context=c,A._next=a,A._error=n,A._complete=s,A}return n.b(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;A.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,r=A.a.useDeprecatedSynchronousErrorHandling;if(this._error)r&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)r?(t.syncErrorValue=e,t.syncErrorThrown=!0):Object(c.a)(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;Object(c.a)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};A.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),A.a.useDeprecatedSynchronousErrorHandling)throw e;Object(c.a)(e)}},t.prototype.__tryOrSetError=function(e,t,r){if(!A.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,r)}catch(t){return A.a.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(Object(c.a)(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},function(e,t,r){"use strict";r.r(t);var n=r(203),i=r(37),o=r(4),s=r(2);class a extends s.UsageError{constructor(e,t){super(`This command can only be run from within a workspace of your project (${o.e.relative(e,t)} isn't a workspace of ${o.e.join(e,i.a.fileName)}).`)}}const A=["@yarnpkg/cli","@yarnpkg/core","@yarnpkg/fslib","@yarnpkg/libzip","@yarnpkg/parsers","@yarnpkg/shell","clipanion","semver","yup"],c=()=>new Map(A.map(e=>[e,r(491)(e)]));var u=r(206),l=r(410);async function h(e,t){const{project:r,workspace:n}=await l.a.find(e,t);if(!n)throw new a(r.cwd,t);return n}var g=r(218);r.d(t,"BaseCommand",(function(){return n.a})),r.d(t,"WorkspaceRequiredError",(function(){return a})),r.d(t,"getDynamicLibs",(function(){return c})),r.d(t,"getPluginConfiguration",(function(){return u.getPluginConfiguration})),r.d(t,"openWorkspace",(function(){return h})),r.d(t,"main",(function(){return g.a}))},function(e,t,r){"use strict";var n=r(133),i=r(6),o=r(104),s=r(137);var a=r(56),A=r(103),c=r(38);r.d(t,"a",(function(){return u}));var u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,a=function(e,t,r){if(e){if(e instanceof i.a)return e;if(e[o.a])return e[o.a]()}return e||t||r?new i.a(e,t,r):new i.a(s.a)}(e,t,r);if(n?a.add(n.call(a,this.source)):a.add(this.source||c.a.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),c.a.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){c.a.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),Object(n.a)(e)?e.error(t):console.warn(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=l(t))((function(t,n){var i;i=r.subscribe((function(t){try{e(t)}catch(e){n(e),i&&i.unsubscribe()}}),n,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[a.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t{const n=[];e.on("error",e=>{r(e)}),e.on("data",e=>{n.push(e)}),e.on("end",()=>{t(Buffer.concat(n))})})}h.skip=g;class w extends a.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),r(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}}class B extends a.Transform{constructor(e=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=e}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,r(null,e)}_flush(e){this.active&&this.ifEmpty.length>0&&e(null,this.ifEmpty)}}function Q(e){return"undefined"!=typeof require?require(e):r(300)(e)}function b(t){const i=n.d.fromPortablePath(t),o=r.c[i];let s;delete r.c[i];try{s=Q(i);const t=r.c[i],n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1)}finally{r.c[i]=o}return s}function D(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function v(e){return 0===e.length?null:e.map(e=>`(${s.a.makeRe(e,{windows:!1}).source})`).join("|")}function S(e,{env:t}){return e.replace(/\${(?[\d\w_]+)(?:)?-?(?[^}]+)?}/g,(...e)=>{const{variableName:r,colon:n,fallback:o}=e[e.length-1],s=Object.prototype.hasOwnProperty.call(t,r),a=process.env[r];if(a)return a;if(s&&!a&&n)return o;if(s)return a;if(o)return o;throw new i.UsageError(`Environment variable not found (${r})`)})}}.call(this,r(479)(e))},function(e,t,r){"use strict";r.r(t);var n=r(412);function i(e,t={isGlobPattern:()=>!1}){try{return Object(n.parse)(e,t)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}var o=r(413);function s(e){const t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return Object(o.parse)(e)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function a(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+=`@${e.from.description}`),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+=`@${e.descriptor.description}`),t}var A=r(286),c=r(414);const u=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,l=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"];class h{constructor(e){this.data=e}}function g(e){return e.match(u)?e:JSON.stringify(e)}function f(e){try{return function e(t,r,n){if(null===t)return"null\n";if("number"==typeof t||"boolean"==typeof t)return`${t.toString()}\n`;if("string"==typeof t)return`${g(t)}\n`;if(Array.isArray(t)){const n=" ".repeat(r);return`\n${t.map(t=>`${n}- ${e(t,r+1,!1)}`).join("")}`}if("object"==typeof t&&t){let i,o;t instanceof h?(i=t.data,o=!1):(i=t,o=!0);const s=" ".repeat(r),a=Object.keys(i);o&&a.sort((e,t)=>{const r=l.indexOf(e),n=l.indexOf(t);return-1===r&&-1===n?et?1:0:-1!==r&&-1===n?-1:-1===r&&-1!==n?1:r-n});const A=a.filter(e=>void 0!==i[e]).map((t,o)=>{const a=i[t],A=g(t),c=e(a,r+1,!0),u=o>0||n?s:"";return c.startsWith("\n")?`${u}${A}:${c}`:`${u}${A}: ${c}`}).join(0===r?"\n":"")||"\n";return n?`\n${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}(e,0,!1)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}f.PreserveOrdering=h;const p=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function d(e){if(p.test(e))return function(e){return e.endsWith("\n")||(e+="\n"),Object(c.parse)(e)}(e);const t=Object(A.safeLoad)(e,{schema:A.FAILSAFE_SCHEMA});if(null==t)return{};if("object"!=typeof t)throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function C(e){return d(e)}r.d(t,"parseShell",(function(){return i})),r.d(t,"parseResolution",(function(){return s})),r.d(t,"stringifyResolution",(function(){return a})),r.d(t,"parseSyml",(function(){return C})),r.d(t,"stringifySyml",(function(){return f}))},function(e,t,r){"use strict";r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return a}));var n=r(13),i=r(157),o=r(17);class s extends Error{constructor(e,t){super(t),this.reportCode=e}}class a{constructor(){this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}static progressViaCounter(e){let t,r=0,n=new Promise(e=>{t=e});const i=e=>{const i=t;n=new Promise(e=>{t=e}),r=e,i()},o=async function*(){for(;ro,set:i,tick:(e=0)=>{i(r+1)}}}reportInfoOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t))}reportWarningOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t))}reportErrorOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t))}reportExceptionOnce(e){!function(e){return void 0!==e.reportCode}(e)?this.reportErrorOnce(o.a.EXCEPTION,e.stack||e.message,{key:e}):this.reportErrorOnce(e.reportCode,e.message,{key:e})}createStreamReporter(e=null){const t=new n.PassThrough,r=new i.StringDecoder;let o="";return t.on("data",t=>{let n,i=r.write(t);do{if(-1!==(n=i.indexOf("\n"))){const t=o+i.substr(0,n);i=i.substr(n+1),o="",null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t)}}while(-1!==n);o+=i}),t.on("end",()=>{const t=r.end();""!==t&&(null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t))}),t}}},function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"RegistryType",(function(){return u})),r.d(n,"normalizeRegistry",(function(){return d})),r.d(n,"getPublishRegistry",(function(){return C})),r.d(n,"getScopeRegistry",(function(){return E})),r.d(n,"getDefaultRegistry",(function(){return I})),r.d(n,"getRegistryConfiguration",(function(){return m})),r.d(n,"getScopeConfiguration",(function(){return y})),r.d(n,"getAuthConfiguration",(function(){return w}));var i={};r.r(i),r.d(i,"AuthType",(function(){return l})),r.d(i,"getIdentUrl",(function(){return B})),r.d(i,"get",(function(){return Q})),r.d(i,"put",(function(){return b}));var o=r(29),s=r(0),a=r(15),A=r.n(a);const c="npm:";var u,l,h=r(24),g=r(17),f=r(89),p=r.n(f);function d(e){return e.replace(/\/$/,"")}function C(e,{configuration:t}){return e.publishConfig&&e.publishConfig.registry?d(e.publishConfig.registry):e.name?E(e.name.scope,{configuration:t,type:u.PUBLISH_REGISTRY}):I({configuration:t,type:u.PUBLISH_REGISTRY})}function E(e,{configuration:t,type:r=u.FETCH_REGISTRY}){const n=y(e,{configuration:t});if(null===n)return I({configuration:t,type:r});const i=n.get(r);return null===i?I({configuration:t,type:r}):d(i)}function I({configuration:e,type:t=u.FETCH_REGISTRY}){const r=e.get(t);return d(null!==r?r:e.get(u.FETCH_REGISTRY))}function m(e,{configuration:t}){const r=t.get("npmRegistries"),n=r.get(e);if(void 0!==n)return n;const i=r.get(e.replace(/^[a-z]+:/,""));return void 0!==i?i:null}function y(e,{configuration:t}){if(null===e)return null;const r=t.get("npmScopes").get(e);return r||null}function w(e,{configuration:t,ident:r}){const n=r&&y(r.scope,{configuration:t});return(null==n?void 0:n.get("npmAuthIdent"))||(null==n?void 0:n.get("npmAuthToken"))?n:m(e,{configuration:t})||t}function B(e){return e.scope?`/@${e.scope}%2f${e.name}`:`/${e.name}`}async function Q(e,{configuration:t,headers:r,ident:n,authType:i,registry:o,...a}){if(n&&void 0===o&&(o=E(n.scope,{configuration:t})),n&&n.scope&&void 0===i&&(i=l.BEST_EFFORT),"string"!=typeof o)throw new Error("Assertion failed: The registry should be a string");const A=D(o,{authType:i,configuration:t,ident:n});let c;A&&(r={...r,authorization:A});try{c=new URL(e)}catch(t){c=new URL(o+e)}try{return await s.httpUtils.get(c.href,{configuration:t,headers:r,...a})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new h.b(g.a.AUTHENTICATION_INVALID,`Invalid authentication (as ${await v(o,r,{configuration:t})})`)}}async function b(e,t,{attemptedAs:r,configuration:n,headers:i,ident:o,authType:a=l.ALWAYS_AUTH,registry:A,...c}){if(o&&void 0===A&&(A=E(o.scope,{configuration:n})),"string"!=typeof A)throw new Error("Assertion failed: The registry should be a string");const u=D(A,{authType:a,configuration:n,ident:o});u&&(i={...i,authorization:u});try{return await s.httpUtils.put(A+e,t,{configuration:n,headers:i,...c})}catch(o){if(!function(e){if("HTTPError"!==e.name)return!1;try{return e.response.headers["www-authenticate"].split(/,\s*/).map(e=>e.toLowerCase()).includes("otp")}catch(e){return!1}}(o))throw"HTTPError"!==o.name||401!==o.response.statusCode&&403!==o.response.statusCode?o:new h.b(g.a.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?`as ${await v(A,i,{configuration:n})}`:`attempted as ${r}`})`);const a=await async function(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";const e=p.a.createPromptModule(),{otp:t}=await e({type:"input",name:"otp",message:"One-time password:",validate:e=>e.length>0||"One-time password is required"});return t}(),u={...i,...S(a)};try{return await s.httpUtils.put(`${A}${e}`,t,{configuration:n,headers:u,...c})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new h.b(g.a.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?`as ${await v(A,u,{configuration:n})}`:`attempted as ${r}`})`)}}}function D(e,{authType:t=l.CONFIGURATION,configuration:r,ident:n}){const i=w(e,{configuration:r,ident:n}),o=function(e,t){switch(t){case l.CONFIGURATION:return e.get("npmAlwaysAuth");case l.BEST_EFFORT:case l.ALWAYS_AUTH:return!0;case l.NO_AUTH:return!1;default:throw new Error("Unreachable")}}(i,t);if(!o)return null;if(i.get("npmAuthToken"))return`Bearer ${i.get("npmAuthToken")}`;if(i.get("npmAuthIdent"))return`Basic ${i.get("npmAuthIdent")}`;if(o&&t!==l.BEST_EFFORT)throw new h.b(g.a.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}async function v(e,t,{configuration:r}){if(void 0===t||void 0===t.authorization)return"an anonymous user";try{return(await s.httpUtils.get(new URL(`${e}/-/whoami`).href,{configuration:r,headers:t})).username}catch(e){return"an unknown user"}}function S(e){return{"npm-otp":e}}!function(e){e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"}(u||(u={})),function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"}(l||(l={}));var k=r(68);class x{supports(e,t){if(!e.reference.startsWith(c))return!1;const r=new k.URL(e.reference);return!!A.a.valid(r.pathname)&&!r.searchParams.has("__archiveUrl")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${s.structUtils.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t)});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let r;try{r=await Q(x.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){r=await Q(x.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await s.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:r}){let n=E(e.scope,{configuration:r});const i=x.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),(t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"))===n+i||t===n+i.replace(/%2f/g,"/")}static getLocatorUrl(e){const t=A.a.clean(e.reference.slice(c.length));if(null===t)throw new h.b(g.a.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${B(e)}/-/${e.name}-${t}.tgz`}}var F=r(37),M=r(121);const N=s.structUtils.makeIdent(null,"node-gyp"),R=/\b(node-gyp|prebuild-install)\b/;var K=r(204);r.d(t,"npmConfigUtils",(function(){return n})),r.d(t,"npmHttpUtils",(function(){return i}));const L={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.f.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:o.f.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:o.f.SECRET,default:null}},O={npmPublishRegistry:{description:"Registry to push packages to",type:o.f.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.f.STRING,default:"https://registry.yarnpkg.com"}},T={configuration:{...L,...O,npmScopes:{description:"Settings per package scope",type:o.f.MAP,valueDefinition:{description:"",type:o.f.SHAPE,properties:{...L,...O}}},npmRegistries:{description:"Settings per registry",type:o.f.MAP,normalizeKeys:d,valueDefinition:{description:"",type:o.f.SHAPE,properties:{...L}}}},fetchers:[class{supports(e,t){if(!e.reference.startsWith(c))return!1;const{selector:r,params:n}=s.structUtils.parseRange(e.reference);return!!A.a.valid(r)&&(null!==n&&"string"==typeof n.__archiveUrl)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${s.structUtils.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t)});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const{params:r}=s.structUtils.parseRange(e.reference);if(null===r||"string"!=typeof r.__archiveUrl)throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");const n=await Q(r.__archiveUrl,{configuration:t.project.configuration,ident:e});return await s.tgzUtils.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}},x],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith(c)&&!!s.structUtils.tryParseDescriptor(e.range.slice(c.length),!0)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){const r=s.structUtils.parseDescriptor(e.range.slice(c.length),!0);return t.resolver.getResolutionDependencies(r,t)}async getCandidates(e,t,r){const n=s.structUtils.parseDescriptor(e.range.slice(c.length),!0);return await r.resolver.getCandidates(n,t,r)}resolve(e,t){throw new Error("Unreachable")}},class{supportsDescriptor(e,t){return!!e.range.startsWith(c)&&!!A.a.validRange(e.range.slice(c.length))}supportsLocator(e,t){if(!e.reference.startsWith(c))return!1;const{selector:r}=s.structUtils.parseRange(e.reference);return!!A.a.valid(r)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice(c.length),i=await Q(B(e),{configuration:r.project.configuration,ident:e,json:!0}),o=Object.keys(i.versions).filter(e=>A.a.satisfies(e,n));return o.sort((e,t)=>-A.a.compare(e,t)),o.map(t=>{const n=s.structUtils.makeLocator(e,`${c}${t}`),o=i.versions[t].dist.tarball;return x.isConventionalTarballUrl(n,o,{configuration:r.project.configuration})?n:s.structUtils.bindLocator(n,{__archiveUrl:o})})}async resolve(e,t){const{selector:r}=s.structUtils.parseRange(e.reference),n=A.a.clean(r);if(null===n)throw new h.b(g.a.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");const i=await Q(B(e),{configuration:t.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"versions"))throw new h.b(g.a.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(i.versions,n))throw new h.b(g.a.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);const o=new F.a;if(o.load(i.versions[n]),!o.dependencies.has(N.identHash)&&!o.peerDependencies.has(N.identHash))for(const r of o.scripts.values())if(r.match(R)){o.dependencies.set(N.identHash,s.structUtils.makeDescriptor(N,"latest")),t.report.reportWarning(g.a.NODE_GYP_INJECTED,`${s.structUtils.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}return"string"==typeof o.raw.deprecated&&t.report.reportWarning(g.a.DEPRECATED_PACKAGE,`${s.structUtils.prettyLocator(t.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),{...e,version:n,languageName:"node",linkType:M.a.HARD,dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}},class{supportsDescriptor(e,t){return!!e.range.startsWith(c)&&!!K.b.test(e.range.slice(c.length))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice(c.length),i=await Q(B(e),{configuration:r.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"dist-tags"))throw new h.b(g.a.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');const o=i["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new h.b(g.a.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);const a=o[n],A=s.structUtils.makeLocator(e,`${c}${a}`),u=i.versions[a].dist.tarball;return x.isConventionalTarballUrl(A,u,{configuration:r.project.configuration})?[A]:[s.structUtils.bindLocator(A,{__archiveUrl:u})]}async resolve(e,t){throw new Error("Unreachable")}}]};t.default=T},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(1),i=r(6);function o(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.thisArg))},e}(),a=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.project=r,i.count=0,i.thisArg=n||i,i}return n.b(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.a)},function(e,t,r){"use strict";function n(e){return e&&"function"==typeof e.schedule}r.d(t,"a",(function(){return n}))},function(e,t,r){"use strict";r.d(t,"a",(function(){return i})),r.d(t,"b",(function(){return o}));var n=r(8),i=new n.a((function(e){return e.complete()}));function o(e){return e?function(e){return new n.a((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},function(e,t,r){"use strict";var n=r(4),i=r(3),o=r(57),s=r(23),a=r(415),A=r.n(a),c=r(41),u=r.n(c),l=r(2),h=r(227),g=r.n(h),f=r(15),p=r.n(f),d=r(13),C=r(17),E=r(5);const I={hooks:{reduceDependency:(e,t,r,n,{resolver:i,resolveOptions:o})=>{for(const{pattern:n,reference:s}of t.topLevelWorkspace.manifest.resolutions){if(n.from&&n.from.fullName!==E.requirableIdent(r))continue;if(n.from&&n.from.description&&n.from.description!==r.reference)continue;if(n.descriptor.fullName!==E.requirableIdent(e))continue;if(n.descriptor.description&&n.descriptor.description!==e.range)continue;return i.bindDescriptor(E.makeDescriptor(e,s),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(const r of e.workspaces){const n=E.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(e=>e.validateWorkspace,r,{reportWarning:(e,r)=>t.reportWarning(e,`${n}: ${r}`),reportError:(e,r)=>t.reportError(e,`${n}: ${r}`)})}},validateWorkspace:async(e,t)=>{const{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(const e of r.errors)t.reportWarning(C.a.INVALID_MANIFEST,e.message)}}};var m=r(37),y=r(24);class w{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){const r=this.getFetcher(e,t);return await r.fetch(e,t)}tryFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));return r||null}getFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));if(!r)throw new y.b(C.a.FETCHER_NOT_FOUND,`${E.prettyLocator(t.project.configuration,e)} isn't supported by any available fetcher`);return r}}var B=r(163),Q=r(204),b=r(205);class D{static isVirtualDescriptor(e){return!!e.range.startsWith(D.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(D.protocol)}supportsDescriptor(e,t){return D.isVirtualDescriptor(e)}supportsLocator(e,t){return D.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,r){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}D.protocol="virtual:";var v=r(219),S=r(53);class k{supports(e){return!!e.reference.startsWith(S.a.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){const r=this.getWorkspace(e,t).cwd;return{packageFs:new v.a(r),prefixPath:n.b.dot,localPath:r}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(S.a.protocol.length))}}var x=r(88),F=r(22),M=r(91),N=r.n(M);function R(e){return("undefined"!=typeof require?require:r(300))(e)}var K=r(122);r.d(t,"c",(function(){return j})),r.d(t,"b",(function(){return Y})),r.d(t,"f",(function(){return J})),r.d(t,"d",(function(){return H})),r.d(t,"e",(function(){return $})),r.d(t,"a",(function(){return ee}));const L=process.env.GITHUB_ACTIONS?{level:2}:u.a.supportsColor?{level:u.a.supportsColor.level}:{level:0},O=0!==L.level,T=O&&!process.env.GITHUB_ACTIONS,P=new u.a.Instance(L),U=new Set(["binFolder","version","flags","profile","gpg","wrapOutput"]),_="yarn_",j=Object(n.f)(".yarnrc.yml"),Y=Object(n.f)("yarn.lock"),G="********";var J,H;!function(e){e.ANY="ANY",e.BOOLEAN="BOOLEAN",e.ABSOLUTE_PATH="ABSOLUTE_PATH",e.LOCATOR="LOCATOR",e.LOCATOR_LOOSE="LOCATOR_LOOSE",e.NUMBER="NUMBER",e.STRING="STRING",e.SECRET="SECRET",e.SHAPE="SHAPE",e.MAP="MAP"}(J||(J={})),function(e){e.NAME="NAME",e.NUMBER="NUMBER",e.PATH="PATH",e.RANGE="RANGE",e.REFERENCE="REFERENCE",e.SCOPE="SCOPE",e.ADDED="ADDED",e.REMOVED="REMOVED"}(H||(H={}));const z=L.level>=3?new Map([[H.NAME,"#d7875f"],[H.RANGE,"#00afaf"],[H.REFERENCE,"#87afff"],[H.NUMBER,"#ffd700"],[H.PATH,"#d75fd7"],[H.SCOPE,"#d75f00"],[H.ADDED,"#5faf00"],[H.REMOVED,"#d70000"]]):new Map([[H.NAME,173],[H.RANGE,37],[H.REFERENCE,111],[H.NUMBER,220],[H.PATH,170],[H.SCOPE,166],[H.ADDED,70],[H.REMOVED,160]]),q={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:J.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:J.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:J.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:J.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:J.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:J.ABSOLUTE_PATH,default:x.getDefaultGlobalFolder()},cacheFolder:{description:"Folder where the cache files must be written",type:J.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:J.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:o.a},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named $$virtual)",type:J.ABSOLUTE_PATH,default:"./.yarn/$$virtual"},bstatePath:{description:"Path of the file where the current state of the built packages must be stored",type:J.ABSOLUTE_PATH,default:"./.yarn/build-state.yml"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:J.STRING,default:Y},installStatePath:{description:"Path of the file where the install state will be persisted",type:J.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},rcFilename:{description:"Name of the files where the configuration can be found",type:J.STRING,default:Z()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:J.BOOLEAN,default:!1},enableAbsoluteVirtuals:{description:"If true, the virtual symlinks will use absolute paths if required [non portable!!]",type:J.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:J.BOOLEAN,default:O,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:J.BOOLEAN,default:T,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:J.BOOLEAN,default:g.a,defaultText:""},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:J.BOOLEAN,default:!g.a&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:J.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:J.BOOLEAN,default:g.a},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:J.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:J.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:J.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:J.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:J.BOOLEAN,default:!0},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:J.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:J.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:J.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:J.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:J.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:J.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:J.NUMBER,default:3},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:J.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:J.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:J.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:J.MAP,valueDefinition:{description:"",type:J.ANY}}};function W(e,t,r,n,i){if(n.isArray)return Array.isArray(r)?r.map((r,o)=>V(e,`${t}[${o}]`,r,n,i)):String(r).split(/,/).map(r=>V(e,t,r,n,i));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return V(e,t,r,n,i)}function V(e,t,r,i,o){var s;switch(i.type){case J.ANY:return r;case J.SHAPE:return function(e,t,r,n,i){if("object"!=typeof r||Array.isArray(r))throw new l.UsageError(`Object configuration settings "${t}" must be an object`);const o=X(e,n);if(null===r)return o;for(const[s,a]of Object.entries(r)){const r=`${t}.${s}`;if(!n.properties[s])throw new l.UsageError(`Unrecognized configuration settings found: ${t}.${s} - run "yarn config -v" to see the list of settings supported in Yarn`);o.set(s,W(e,r,a,n.properties[s],i))}return o}(e,t,r,i,o);case J.MAP:return function(e,t,r,n,i){const o=new Map;if("object"!=typeof r||Array.isArray(r))throw new l.UsageError(`Map configuration settings "${t}" must be an object`);if(null===r)return o;for(const[s,a]of Object.entries(r)){const r=n.normalizeKeys?n.normalizeKeys(s):s,A=`${t}['${r}']`,c=n.valueDefinition;o.set(r,W(e,A,a,c,i))}return o}(e,t,r,i,o)}if(null===r&&!i.isNullable&&null!==i.default)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if(null===(s=i.values)||void 0===s?void 0:s.includes(r))return r;const a=(()=>{if(i.type===J.BOOLEAN)return function(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}(r);if("string"!=typeof r)throw new Error(`Expected value (${r}) to be a string`);const e=F.replaceEnvVariables(r,{env:process.env});switch(i.type){case J.ABSOLUTE_PATH:return n.e.resolve(o,n.d.toPortablePath(e));case J.LOCATOR_LOOSE:return E.parseLocator(e,!1);case J.NUMBER:return parseInt(e);case J.LOCATOR:return E.parseLocator(e);default:return e}})();if(i.values&&!i.values.includes(a))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return a}function X(e,t){switch(t.type){case J.SHAPE:{const r=new Map;for(const[n,i]of Object.entries(t.properties))r.set(n,X(e,i));return r}case J.MAP:return new Map;case J.ABSOLUTE_PATH:return null===t.default?null:null===e.projectCwd?n.e.isAbsolute(t.default)?n.e.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(t=>n.e.resolve(e.projectCwd,t)):n.e.resolve(e.projectCwd,t.default);default:return t.default}}function Z(){const e=`${_}rc_filename`;for(const[t,r]of Object.entries(process.env))if(t.toLowerCase()===e&&"string"==typeof r)return r;return j}var $;!function(e){e[e.LOCKFILE=0]="LOCKFILE",e[e.MANIFEST=1]="MANIFEST",e[e.NONE=2]="NONE"}($||($={}));class ee{constructor(e){this.projectCwd=null,this.plugins=new Map,this.settings=new Map,this.values=new Map,this.sources=new Map,this.invalid=new Map,this.packageExtensions=new Map,this.startingCwd=e}static create(e,t,r){const n=new ee(e);void 0===t||t instanceof Map||(n.projectCwd=t),n.importSettings(q);const i=void 0!==r?r:t instanceof Map?t:new Map;for(const[e,t]of i)n.activatePlugin(e,t);return n}static async find(e,t,{lookup:r=$.LOCKFILE,strict:o=!0,usePath:s=!1,useRc:a=!0}={}){const c=function(){const e={};for(let[t,r]of Object.entries(process.env))(t=t.toLowerCase()).startsWith(_)&&(e[t=A()(t.slice(_.length))]=r);return e}();delete c.rcFilename;const u=await ee.findRcFiles(e),h=await ee.findHomeRcFile(),g=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n})=>({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n}),f=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n,...i})=>i,p=new ee(e);p.importSettings(g(q)),p.useWithSource("",g(c),e,{strict:!1});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,g(r),t,{strict:!1});if(h&&p.useWithSource(h.path,g(h.data),h.cwd,{strict:!1}),s){const e=p.get("yarnPath"),t=p.get("ignorePath");if(null!==e&&!t)return p}const d=p.get("lockfileFilename");let C;switch(r){case $.LOCKFILE:C=await ee.findProjectCwd(e,d);break;case $.MANIFEST:C=await ee.findProjectCwd(e,null);break;case $.NONE:C=i.xfs.existsSync(n.e.join(e,"package.json"))?n.e.resolve(e):null}p.startingCwd=e,p.projectCwd=C,p.importSettings(f(q));const E=new Map([["@@core",I]]),m=e=>e.__esModule?e.default:e;if(null!==t){for(const e of t.plugins.keys())E.set(e,m(t.modules.get(e)));const r=new Map;for(const e of new Set(N.a.builtinModules||Object.keys(process.binding("natives"))))r.set(e,()=>R(e));for(const[e,n]of t.modules)r.set(e,()=>n);const i=new Set,o=e=>e.default||e,s=(e,t)=>{const{factory:s,name:a}=R(n.d.fromPortablePath(e));if(i.has(a))return;const A=new Map(r),c=e=>{if(A.has(e))return A.get(e)();throw new l.UsageError(`This plugin cannot access the package referenced via ${e} which is neither a builtin, nor an exposed entry`)},u=F.prettifySyncErrors(()=>o(s(c)),e=>`${e} (when initializing ${a}, defined in ${t})`);r.set(a,()=>u),i.add(a),E.set(a,u)};if(c.plugins)for(const t of c.plugins.split(";")){s(n.e.resolve(e,n.d.toPortablePath(t)),"")}for(const{path:e,cwd:t,data:r}of u)if(a&&Array.isArray(r.plugins))for(const i of r.plugins){const r="string"!=typeof i?i.path:i;s(n.e.resolve(t,n.d.toPortablePath(r)),e)}}for(const[e,t]of E)p.activatePlugin(e,t);p.useWithSource("",f(c),e,{strict:o});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,f(r),t,{strict:o});return h&&p.useWithSource(h.path,f(h.data),h.cwd,{strict:o}),p.get("enableGlobalCache")&&(p.values.set("cacheFolder",`${p.get("globalFolder")}/cache`),p.sources.set("cacheFolder","")),await p.refreshPackageExtensions(),p}static async findRcFiles(e){const t=Z(),r=[];let o=e,a=null;for(;o!==a;){a=o;const e=n.e.join(a,t);if(i.xfs.existsSync(e)){const t=await i.xfs.readFilePromise(e,"utf8");let n;try{n=Object(s.parseSyml)(t)}catch(r){let n="";throw t.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(n=" (in particular, make sure you list the colons after each key name)"),new l.UsageError(`Parse error when loading ${e}; please check it's proper Yaml${n}`)}r.push({path:e,cwd:a,data:n})}o=n.e.dirname(a)}return r}static async findHomeRcFile(){const e=Z(),t=x.getHomeFolder(),r=n.e.join(t,e);if(i.xfs.existsSync(r)){const e=await i.xfs.readFilePromise(r,"utf8");return{path:r,cwd:t,data:Object(s.parseSyml)(e)}}return null}static async findProjectCwd(e,t){let r=null,o=e,s=null;for(;o!==s;){if(s=o,i.xfs.existsSync(n.e.join(s,Object(n.f)("package.json")))&&(r=s),null!==t){if(i.xfs.existsSync(n.e.join(s,t))){r=s;break}}else if(null!==r)break;o=n.e.dirname(s)}return r}static async updateConfiguration(e,t){const r=Z(),o=n.e.join(e,r),a=i.xfs.existsSync(o)?Object(s.parseSyml)(await i.xfs.readFilePromise(o,"utf8")):{};let A=!1;if("function"==typeof t&&(t=t(a)),"function"==typeof t)throw new Error("Assertion failed: Invalid configuration type");for(const e of Object.keys(t)){const r=a[e],n="function"==typeof t[e]?t[e](r):t[e];r!==n&&(a[e]=n,A=!0)}A&&await i.xfs.changeFilePromise(o,Object(s.stringifySyml)(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){const t=x.getHomeFolder();return await ee.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),void 0!==t.configuration&&this.importSettings(t.configuration)}importSettings(e){for(const[t,r]of Object.entries(e)){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,r),this.values.set(t,X(this,r))}}useWithSource(e,t,r,{strict:n=!0,overwrite:i=!1}){try{this.use(e,t,r,{strict:n,overwrite:i})}catch(t){throw t.message+=` (in ${e})`,t}}use(e,t,r,{strict:n=!0,overwrite:i=!1}){for(const o of Object.keys(t)){if(void 0===t[o])continue;if("plugins"===o)continue;if(""===e&&U.has(o))continue;if("rcFilename"===o)throw new l.UsageError(`The rcFilename settings can only be set via ${`${_}RC_FILENAME`.toUpperCase()}, not via a rc file`);const s=this.settings.get(o);if(!s){if(n)throw new l.UsageError(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!i)continue;let a;try{a=W(this,o,t[o],s,r)}catch(t){throw t.message+=` in ${e}`,t}this.values.set(o,a),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getRedacted(e){const t=this.get(e),r=this.settings.get(e);if(void 0===r)throw new l.UsageError(`Couldn't find a configuration settings named "${e}"`);return function e(t,r){if(r.type===J.SECRET&&"string"==typeof t)return G;if(r.isArray&&Array.isArray(t)){const n=[];for(const i of t)n.push(e(i,r));return n}if(r.type===J.MAP&&t instanceof Map){const n=new Map;for(const[i,o]of t.entries())n.set(i,e(o,r.valueDefinition));return n}if(r.type===J.SHAPE&&t instanceof Map){const n=new Map;for(const[i,o]of t.entries()){const t=r.properties[i];n.set(i,e(o,t))}return n}return t}(t,r)}getSubprocessStreams(e,{header:t,prefix:r,report:n}){let o,s;const a=i.xfs.createWriteStream(e);if(this.get("enableInlineBuilds")){const e=n.createStreamReporter(`${r} ${this.format("STDOUT","green")}`),t=n.createStreamReporter(`${r} ${this.format("STDERR","red")}`);(o=new d.PassThrough).pipe(e),o.pipe(a),(s=new d.PassThrough).pipe(t),s.pipe(a)}else o=a,s=a,void 0!==t&&o.write(`${t}\n`);return{stdout:o,stderr:s}}makeResolver(){const e=[];for(const t of this.plugins.values())for(const r of t.resolvers||[])e.push(new r);return new B.a([new D,new S.a,new Q.a,...e])}makeFetcher(){const e=[];for(const t of this.plugins.values())for(const r of t.fetchers||[])e.push(new r);return new w([new b.a,new k,...e])}getLinkers(){const e=[];for(const t of this.plugins.values())for(const r of t.linkers||[])e.push(new r);return e}async refreshPackageExtensions(){this.packageExtensions=new Map;const e=this.packageExtensions,t=(t,r)=>{if(!p.a.validRange(t.range))throw new Error("Only semver ranges are allowed as keys for the lockfileExtensions setting");const n=new m.a;n.load(r),F.getArrayWithDefault(e,t.identHash).push({range:t.range,patch:e=>{e.dependencies=new Map([...e.dependencies,...n.dependencies]),e.peerDependencies=new Map([...e.peerDependencies,...n.peerDependencies]),e.dependenciesMeta=new Map([...e.dependenciesMeta,...n.dependenciesMeta]),e.peerDependenciesMeta=new Map([...e.peerDependenciesMeta,...n.peerDependenciesMeta])}})};for(const[e,r]of this.get("packageExtensions"))t(E.parseDescriptor(e,!0),r);await this.triggerHook(e=>e.registerPackageExtensions,this,t)}normalizePackage(e){const t=E.copyPackage(e);if(null==this.packageExtensions)throw new Error("refreshPackageExtensions has to be called before normalizing packages");const r=this.packageExtensions.get(e.identHash);if(void 0!==r){const n=e.version;if(null!==n){const e=r.find(({range:e})=>K.satisfiesWithPrereleases(n,e));void 0!==e&&e.patch(t)}}return t.dependencies=new Map(F.sortMap(t.dependencies,([,e])=>e.name)),t.peerDependencies=new Map(F.sortMap(t.peerDependencies,([,e])=>e.name)),t}async triggerHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);i&&await i(...t)}}async triggerMultipleHooks(e,t){for(const r of t)await this.triggerHook(e,...r)}async reduceHook(e,t,...r){let n=t;for(const t of this.plugins.values()){const i=t.hooks;if(!i)continue;const o=e(i);o&&(n=await o(n,...r))}return n}async firstHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);if(!i)continue;const o=await i(...t);if(void 0!==o)return o}return null}format(e,t){if(t===H.PATH&&(e=n.d.fromPortablePath(e)),!this.get("enableColors"))return e;let r=z.get(t);return void 0===r&&(r=t),("number"==typeof r?P.ansi256(r):r.startsWith("#")?P.hex(r):P[r])(e)}}},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(8),i=r(107),o=r(216);function s(e,t){return t?Object(o.a)(e,t):e instanceof n.a?e:new n.a(Object(i.a)(e))}},function(e,t,r){"use strict";r.d(t,"a",(function(){return A}));var n=r(9),i=r.n(n),o=r(43),s=r(16),a=r(4);class A extends o.a{constructor(e=i.a){super(),this.realFs=e,void 0!==this.realFs.lutimes&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return a.b.root}resolve(e){return a.e.resolve(e)}async openPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.open(a.d.fromPortablePath(e),t,r,this.makeCallback(n,i))})}openSync(e,t,r){return this.realFs.openSync(a.d.fromPortablePath(e),t,r)}async readPromise(e,t,r=0,n=0,i=-1){return await new Promise((o,s)=>{this.realFs.read(e,t,r,n,i,(e,t)=>{e?s(e):o(t)})})}readSync(e,t,r,n,i){return this.realFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return await new Promise((o,s)=>"string"==typeof t?this.realFs.write(e,t,r,this.makeCallback(o,s)):this.realFs.write(e,t,r,n,i,this.makeCallback(o,s)))}writeSync(e,t,r,n,i){return"string"==typeof t?this.realFs.writeSync(e,t,r):this.realFs.writeSync(e,t,r,n,i)}async closePromise(e){await new Promise((t,r)=>{this.realFs.close(e,this.makeCallback(t,r))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){const r=null!==e?a.d.fromPortablePath(e):e;return this.realFs.createReadStream(r,t)}createWriteStream(e,t){const r=null!==e?a.d.fromPortablePath(e):e;return this.realFs.createWriteStream(r,t)}async realpathPromise(e){return await new Promise((t,r)=>{this.realFs.realpath(a.d.fromPortablePath(e),{},this.makeCallback(t,r))}).then(e=>a.d.toPortablePath(e))}realpathSync(e){return a.d.toPortablePath(this.realFs.realpathSync(a.d.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(a.d.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(a.d.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((r,n)=>{this.realFs.access(a.d.fromPortablePath(e),t,this.makeCallback(r,n))})}existsSync(e){return this.realFs.existsSync(a.d.fromPortablePath(e))}async statPromise(e){return await new Promise((t,r)=>{this.realFs.stat(a.d.fromPortablePath(e),this.makeCallback(t,r))})}statSync(e){return this.realFs.statSync(a.d.fromPortablePath(e))}async lstatPromise(e){return await new Promise((t,r)=>{this.realFs.lstat(a.d.fromPortablePath(e),this.makeCallback(t,r))})}lstatSync(e){return this.realFs.lstatSync(a.d.fromPortablePath(e))}async chmodPromise(e,t){return await new Promise((r,n)=>{this.realFs.chmod(a.d.fromPortablePath(e),t,this.makeCallback(r,n))})}chmodSync(e,t){return this.realFs.chmodSync(a.d.fromPortablePath(e),t)}async renamePromise(e,t){return await new Promise((r,n)=>{this.realFs.rename(a.d.fromPortablePath(e),a.d.fromPortablePath(t),this.makeCallback(r,n))})}renameSync(e,t){return this.realFs.renameSync(a.d.fromPortablePath(e),a.d.fromPortablePath(t))}async copyFilePromise(e,t,r=0){return await new Promise((n,i)=>{this.realFs.copyFile(a.d.fromPortablePath(e),a.d.fromPortablePath(t),r,this.makeCallback(n,i))})}copyFileSync(e,t,r=0){return this.realFs.copyFileSync(a.d.fromPortablePath(e),a.d.fromPortablePath(t),r)}async appendFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?a.d.fromPortablePath(e):e;r?this.realFs.appendFile(o,t,r,this.makeCallback(n,i)):this.realFs.appendFile(o,t,this.makeCallback(n,i))})}appendFileSync(e,t,r){const n="string"==typeof e?a.d.fromPortablePath(e):e;r?this.realFs.appendFileSync(n,t,r):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?a.d.fromPortablePath(e):e;r?this.realFs.writeFile(o,t,r,this.makeCallback(n,i)):this.realFs.writeFile(o,t,this.makeCallback(n,i))})}writeFileSync(e,t,r){const n="string"==typeof e?a.d.fromPortablePath(e):e;r?this.realFs.writeFileSync(n,t,r):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,r)=>{this.realFs.unlink(a.d.fromPortablePath(e),this.makeCallback(t,r))})}unlinkSync(e){return this.realFs.unlinkSync(a.d.fromPortablePath(e))}async utimesPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.utimes(a.d.fromPortablePath(e),t,r,this.makeCallback(n,i))})}utimesSync(e,t,r){this.realFs.utimesSync(a.d.fromPortablePath(e),t,r)}async lutimesPromiseImpl(e,t,r){const n=this.realFs.lutimes;if(void 0===n)throw Object(s.g)("unavailable Node binding",`lutimes '${e}'`);return await new Promise((i,o)=>{n.call(this.realFs,a.d.fromPortablePath(e),t,r,this.makeCallback(i,o))})}lutimesSyncImpl(e,t,r){const n=this.realFs.lutimesSync;if(void 0===n)throw Object(s.g)("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,a.d.fromPortablePath(e),t,r)}async mkdirPromise(e,t){return await new Promise((r,n)=>{this.realFs.mkdir(a.d.fromPortablePath(e),t,this.makeCallback(r,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(a.d.fromPortablePath(e),t)}async rmdirPromise(e){return await new Promise((t,r)=>{this.realFs.rmdir(a.d.fromPortablePath(e),this.makeCallback(t,r))})}rmdirSync(e){return this.realFs.rmdirSync(a.d.fromPortablePath(e))}async symlinkPromise(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return await new Promise((r,i)=>{this.realFs.symlink(a.d.fromPortablePath(e.replace(/\/+$/,"")),a.d.fromPortablePath(t),n,this.makeCallback(r,i))})}symlinkSync(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return this.realFs.symlinkSync(a.d.fromPortablePath(e.replace(/\/+$/,"")),a.d.fromPortablePath(t),n)}async readFilePromise(e,t){return await new Promise((r,n)=>{const i="string"==typeof e?a.d.fromPortablePath(e):e;this.realFs.readFile(i,t,this.makeCallback(r,n))})}readFileSync(e,t){const r="string"==typeof e?a.d.fromPortablePath(e):e;return this.realFs.readFileSync(r,t)}async readdirPromise(e,{withFileTypes:t}={}){return await new Promise((r,n)=>{t?this.realFs.readdir(a.d.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(r,n)):this.realFs.readdir(a.d.fromPortablePath(e),this.makeCallback(e=>r(e),n))})}readdirSync(e,{withFileTypes:t}={}){return t?this.realFs.readdirSync(a.d.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(a.d.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,r)=>{this.realFs.readlink(a.d.fromPortablePath(e),this.makeCallback(t,r))}).then(e=>a.d.toPortablePath(e))}readlinkSync(e){return a.d.toPortablePath(this.realFs.readlinkSync(a.d.fromPortablePath(e)))}watch(e,t,r){return this.realFs.watch(a.d.fromPortablePath(e),t,r)}makeCallback(e,t){return(r,n)=>{r?t(r):e(n)}}}},function(e,t,r){"use strict";var n=r(139),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];e.exports=function(e,t){var r,s;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,s={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){s[String(t)]=e}))})),s),-1===o.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t){e.exports=require("os")},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(1),i=function(e){function t(t,r,n){var i=e.call(this)||this;return i.parent=t,i.outerValue=r,i.outerIndex=n,i.index=0,i}return n.b(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(r(6).a)},function(e,t,r){"use strict";r.r(t);const n=["number","number"],i=e=>({get HEAP8(){return e.HEAP8},get HEAPU8(){return e.HEAPU8},SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:e._malloc(1),uint16S:e._malloc(2),uint32S:e._malloc(4),uint64S:e._malloc(8),malloc:e._malloc,free:e._free,getValue:e.getValue,open:e.cwrap("zip_open","number",["string","number","number"]),openFromSource:e.cwrap("zip_open_from_source","number",["number","number","number"]),close:e.cwrap("zip_close","number",["number"]),discard:e.cwrap("zip_discard",null,["number"]),getError:e.cwrap("zip_get_error","number",["number"]),getName:e.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:e.cwrap("zip_get_num_entries","number",["number","number"]),stat:e.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:e.cwrap("zip_stat_index","number",["number",...n,"number","number"]),fopen:e.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:e.cwrap("zip_fopen_index","number",["number",...n,"number"]),fread:e.cwrap("zip_fread","number",["number","number","number","number"]),fclose:e.cwrap("zip_fclose","number",["number"]),dir:{add:e.cwrap("zip_dir_add","number",["number","string"])},file:{add:e.cwrap("zip_file_add","number",["number","string","number","number"]),getError:e.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:e.cwrap("zip_file_get_external_attributes","number",["number",...n,"number","number","number"]),setExternalAttributes:e.cwrap("zip_file_set_external_attributes","number",["number",...n,"number","number","number"]),setMtime:e.cwrap("zip_file_set_mtime","number",["number",...n,"number","number"]),setCompression:e.cwrap("zip_set_file_compression","number",["number",...n,"number","number"])},error:{initWithCode:e.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:e.cwrap("zip_error_strerror","string",["number"])},name:{locate:e.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:e.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:e.cwrap("zip_source_buffer","number",["number","number",...n,"number"]),free:e.cwrap("zip_source_free",null,["number"]),keep:e.cwrap("zip_source_keep",null,["number"]),open:e.cwrap("zip_source_open","number",["number"]),close:e.cwrap("zip_source_close","number",["number"]),seek:e.cwrap("zip_source_seek","number",["number",...n,"number"]),tell:e.cwrap("zip_source_tell","number",["number"]),read:e.cwrap("zip_source_read","number",["number","number","number"]),error:e.cwrap("zip_source_error","number",["number"]),setMtime:e.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:e.cwrap("zipstruct_stat","number",[]),statS:e.cwrap("zipstruct_statS","number",[]),statName:e.cwrap("zipstruct_stat_name","string",["number"]),statIndex:e.cwrap("zipstruct_stat_index","number",["number"]),statSize:e.cwrap("zipstruct_stat_size","number",["number"]),statMtime:e.cwrap("zipstruct_stat_mtime","number",["number"]),error:e.cwrap("zipstruct_error","number",[]),errorS:e.cwrap("zipstruct_errorS","number",[])}});r.d(t,"getLibzipSync",(function(){return s})),r.d(t,"getLibzipPromise",(function(){return a}));let o=null;function s(){return null===o&&(o=i(r(545))),o}async function a(){return s()}},function(e,t,r){"use strict";r.d(t,"a",(function(){return u}));var n=r(32),i=r(4),o=r(23),s=r(15),a=r.n(s),A=r(22),c=r(5);class u{constructor(){this.indent=" ",this.name=null,this.version=null,this.type=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(e,{baseFs:t=new n.a}={}){const r=i.e.join(e,Object(i.f)("package.json"));return await t.existsPromise(r)?await u.fromFile(r,{baseFs:t}):null}static async find(e,{baseFs:t}={}){const r=await u.tryFind(e,{baseFs:t});if(null===r)throw new Error("Manifest not found");return r}static async fromFile(e,{baseFs:t=new n.a}={}){const r=new u;return await r.loadFile(e,{baseFs:t}),r}static fromText(e){const t=new u;return t.loadFromText(e),t}loadFromText(e){let t;try{t=JSON.parse(h(e)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(t),this.indent=l(e)}async loadFile(e,{baseFs:t=new n.a}){const r=await t.readFilePromise(e,"utf8");let i;try{i=JSON.parse(h(r)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(i),this.indent=l(r)}load(e){if("object"!=typeof e||null===e)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;const t=[];if("string"==typeof e.name)try{this.name=c.parseIdent(e.name)}catch(e){t.push(new Error("Parsing failed for the 'name' field"))}if("string"==typeof e.version&&(this.version=e.version),"string"==typeof e.type&&(this.type=e.type),"boolean"==typeof e.private&&(this.private=e.private),"string"==typeof e.license&&(this.license=e.license),"string"==typeof e.languageName&&(this.languageName=e.languageName),"string"==typeof e.bin)null!==this.name?this.bin=new Map([[this.name.name,e.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.bin&&null!==e.bin)for(const[r,n]of Object.entries(e.bin))"string"==typeof n?this.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`));if("object"==typeof e.scripts&&null!==e.scripts)for(const[r,n]of Object.entries(e.scripts))"string"==typeof n?this.scripts.set(r,n):t.push(new Error(`Invalid script definition for '${r}'`));if("object"==typeof e.dependencies&&null!==e.dependencies)for(const[r,n]of Object.entries(e.dependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i)}if("object"==typeof e.devDependencies&&null!==e.devDependencies)for(const[r,n]of Object.entries(e.devDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.devDependencies.set(i.identHash,i)}if("object"==typeof e.peerDependencies&&null!==e.peerDependencies)for(let[r,n]of Object.entries(e.peerDependencies)){let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}"string"==typeof n&&a.a.validRange(n)||(t.push(new Error(`Invalid dependency range for '${r}'`)),n="*");const i=c.makeDescriptor(e,n);this.peerDependencies.set(i.identHash,i)}const r=Array.isArray(e.workspaces)?e.workspaces:"object"==typeof e.workspaces&&null!==e.workspaces&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];for(const e of r)"string"==typeof e?this.workspaceDefinitions.push({pattern:e}):t.push(new Error(`Invalid workspace definition for '${e}'`));if("object"==typeof e.dependenciesMeta&&null!==e.dependenciesMeta)for(const[r,n]of Object.entries(e.dependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error(`Invalid meta field for '${r}`));continue}const e=c.parseDescriptor(r),i=this.ensureDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.peerDependenciesMeta&&null!==e.peerDependenciesMeta)for(const[r,n]of Object.entries(e.peerDependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error(`Invalid meta field for '${r}`));continue}const e=c.parseDescriptor(r),i=this.ensurePeerDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.resolutions&&null!==e.resolutions)for(const[r,n]of Object.entries(e.resolutions))if("string"==typeof n)try{this.resolutions.push({pattern:Object(o.parseResolution)(r),reference:n})}catch(e){t.push(e);continue}else t.push(new Error(`Invalid resolution entry for '${r}'`));if(Array.isArray(e.files)&&0!==e.files.length){this.files=new Set;for(const r of e.files)"string"==typeof r?this.files.add(r):t.push(new Error(`Invalid files entry for '${r}'`))}if("object"==typeof e.publishConfig&&null!==e.publishConfig)if(this.publishConfig={},"string"==typeof e.publishConfig.access&&(this.publishConfig.access=e.publishConfig.access),"string"==typeof e.publishConfig.main&&(this.publishConfig.main=e.publishConfig.main),"string"==typeof e.publishConfig.registry&&(this.publishConfig.registry=e.publishConfig.registry),"string"==typeof e.publishConfig.module&&(this.publishConfig.module=e.publishConfig.module),"string"==typeof e.publishConfig.bin)null!==this.name?this.publishConfig.bin=new Map([[this.name.name,e.publishConfig.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.publishConfig.bin&&null!==e.publishConfig.bin){this.publishConfig.bin=new Map;for(const[r,n]of Object.entries(e.publishConfig.bin))"string"==typeof n?this.publishConfig.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`))}if("object"==typeof e.optionalDependencies&&null!==e.optionalDependencies)for(const[r,n]of Object.entries(e.optionalDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i);const o=c.makeDescriptor(e,"unknown"),s=this.ensureDependencyMeta(o);Object.assign(s,{optional:!0})}"boolean"==typeof e.preferUnplugged&&(this.preferUnplugged=e.preferUnplugged),this.errors=t}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!this.dependencies.has(e.identHash)||!!this.peerDependencies.has(e.identHash)}hasHardDependency(e){return!!this.dependencies.has(e.identHash)||!!this.devDependencies.has(e.identHash)}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!this.hasHardDependency(e)||!!this.hasSoftDependency(e)}ensureDependencyMeta(e){if("unknown"!==e.range&&!a.a.valid(e.range))throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e),r="unknown"!==e.range?e.range:null;let n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let i=n.get(r);return i||n.set(r,i={}),i}ensurePeerDependencyMeta(e){if("unknown"!==e.range)throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e);let r=this.peerDependenciesMeta.get(t);return r||this.peerDependenciesMeta.set(t,r={}),this.peerDependencies.has(e.identHash)||this.peerDependencies.set(e.identHash,c.makeDescriptor(e,"*")),r}setRawField(e,t,{after:r=[]}={}){const n=new Set(r.filter(e=>Object.prototype.hasOwnProperty.call(this.raw,e)));if(0===n.size||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{const r=this.raw,i=this.raw={};let o=!1;for(const s of Object.keys(r))i[s]=r[s],o||(n.delete(s),0===n.size&&(i[e]=t,o=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){Object.assign(e,this.raw),null!==this.name?e.name=c.stringifyIdent(this.name):delete e.name,null!==this.version?e.version=this.version:delete e.version,null!==this.type?e.type=this.type:delete e.type,this.private?e.private=!0:delete e.private,null!==this.license?e.license=this.license:delete e.license,null!==this.languageName?e.languageName=this.languageName:delete e.languageName,1===this.bin.size&&null!==this.name&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(e=>({[e]:this.bin.get(e)}))):delete e.bin;const r=[],n=[];for(const e of this.dependencies.values()){const i=this.dependenciesMeta.get(c.stringifyIdent(e));let o=!1;if(t&&i){const e=i.get(null);e&&e.optional&&(o=!0)}o?n.push(e):r.push(e)}r.length>0?e.dependencies=Object.assign({},...c.sortDescriptors(r).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...c.sortDescriptors(n).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...c.sortDescriptors(this.devDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...c.sortDescriptors(this.peerDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(const[r,n]of A.sortMap(this.dependenciesMeta.entries(),([e,t])=>e))for(const[i,o]of A.sortMap(n.entries(),([e,t])=>null!==e?`0${e}`:"1")){const n=null!==i?c.stringifyDescriptor(c.makeDescriptor(c.parseIdent(r),i)):r,s={...o};t&&null===i&&delete s.optional,0!==Object.keys(s).length&&(e.dependenciesMeta[n]=s)}return 0===Object.keys(e.dependenciesMeta).length&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...A.sortMap(this.peerDependenciesMeta.entries(),([e,t])=>e).map(([e,t])=>({[e]:t}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:e,reference:t})=>({[Object(o.stringifyResolution)(e)]:t}))):delete e.resolutions,null!==this.files?e.files=Array.from(this.files):delete e.files,null!==this.preferUnplugged?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,e}}function l(e){const t=e.match(/^[ \t]+/m);return t?t[0]:" "}function h(e){return 65279===e.charCodeAt(0)?e.slice(1):e}u.fileName="package.json",u.allDependencies=["dependencies","devDependencies","peerDependencies"],u.hardDependencies=["dependencies","devDependencies"]},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;n=e},get useDeprecatedSynchronousErrorHandling(){return n}}},function(e,t,r){const n=r(168),{MAX_LENGTH:i,MAX_SAFE_INTEGER:o}=r(167),{re:s,t:a}=r(110),{compareIdentifiers:A}=r(229);class c{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?s[a.LOOSE]:s[a.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=c},function(e,t){var r=Array.isArray;e.exports=r},function(e,t,r){"use strict";const n=r(448),{stdout:i,stderr:o}=r(452),{stringReplaceAll:s,stringEncaseCRLFWithFirstIndex:a}=r(454),A=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class u{constructor(e){return l(e)}}const l=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>I(t.template,...e),Object.setPrototypeOf(t,h.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=u,t.template};function h(e){return l(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=d(this,p(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=d(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const g=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of g)c[e]={get(){const{level:t}=this;return function(...r){const i=p(n.color[A[t]][e](...r),n.color.close,this._styler);return d(this,i,this._isEmpty)}}};for(const e of g){c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=p(n.bgColor[A[t]][e](...r),n.bgColor.close,this._styler);return d(this,i,this._isEmpty)}}}}const f=Object.defineProperties(()=>{},{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),p=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},d=(e,t,r)=>{const n=(...e)=>C(n,1===e.length?""+e[0]:e.join(" "));return n.__proto__=f,n._generator=e,n._styler=t,n._isEmpty=r,n},C=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=s(t,r.close,r.open),r=r.parent;const o=t.indexOf("\n");return-1!==o&&(t=a(t,i,n,o)),n+t+i};let E;const I=(e,...t)=>{const[n]=t;if(!Array.isArray(n))return t.join(" ");const i=t.slice(1),o=[n.raw[0]];for(let e=1;er.removePromise(n)),i=null}null===i&&e.push(async()=>r.mkdirPromise(n,{mode:A.mode}));const u=await o.readdirPromise(s);await Promise.all(u.map(async i=>{await a(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c)}))}(e,t,r,n,u,i,A,l,c);break;case l.isFile():await async function(e,t,r,n,i,s,a,A,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}r===s?e.push(async()=>r.copyFilePromise(a,n,o.a.constants.COPYFILE_FICLONE)):e.push(async()=>r.writeFilePromise(n,await s.readFilePromise(a)))}(e,0,r,n,u,i,A,0,c);break;case l.isSymbolicLink():await async function(e,t,r,n,i,o,a,A,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}const u=await o.readlinkPromise(a);e.push(async()=>r.symlinkPromise(Object(s.c)(r.pathUtils,u),n))}(e,0,r,n,u,i,A,0,c);break;default:throw new Error(`Unsupported file type (${l.mode})`)}e.push(async()=>r.chmodPromise(n,511&l.mode))}r.d(t,"b",(function(){return A})),r.d(t,"a",(function(){return c})),r.d(t,"c",(function(){return u}));class A{constructor(e){this.pathUtils=e}async removePromise(e){let t;try{t=await this.lstatPromise(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of await this.readdirPromise(e))await this.removePromise(this.pathUtils.resolve(e,t));for(let t=0;t<5;++t)try{await this.rmdirPromise(e);break}catch(e){if("EBUSY"===e.code||"ENOTEMPTY"===e.code){await new Promise(e=>setTimeout(e,100*t));continue}throw e}}else await this.unlinkPromise(e)}removeSync(e){let t;try{t=this.lstatSync(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,t));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{await this.mkdirPromise(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&await this.chmodPromise(i,t),null!=r)await this.utimesPromise(i,r[0],r[1]);else{const e=await this.statPromise(this.pathUtils.dirname(i));await this.utimesPromise(i,e.atime,e.mtime)}}}}mkdirpSync(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{this.mkdirSync(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&this.chmodSync(i,t),null!=r)this.utimesSync(i,r[0],r[1]);else{const e=this.statSync(this.pathUtils.dirname(i));this.utimesSync(i,e.atime,e.mtime)}}}}async copyPromise(e,t,{baseFs:r=this,overwrite:n=!0}={}){return await async function(e,t,r,n,i){const o=e.pathUtils.normalize(t),s=r.pathUtils.normalize(n),A=[],c=[];await e.mkdirpPromise(t),await a(A,c,e,o,r,s,i);for(const e of A)await e();const u="function"==typeof e.lutimesPromise?e.lutimesPromise.bind(e):e.utimesPromise.bind(e);for(const[e,t,r]of c)await u(e,t,r)}(this,e,r,t,{overwrite:n})}copySync(e,t,{baseFs:r=this,overwrite:n=!0}={}){const i=r.lstatSync(t),o=this.existsSync(e);if(i.isDirectory()){this.mkdirpSync(e);const i=r.readdirSync(t);for(const o of i)this.copySync(this.pathUtils.join(e,o),r.pathUtils.join(t,o),{baseFs:r,overwrite:n})}else if(i.isFile()){if(!o||n){o&&this.removeSync(e);const n=r.readFileSync(t);this.writeFileSync(e,n)}}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${i.mode.toString(8).padStart(6,"0")})`);if(!o||n){o&&this.removeSync(e);const n=r.readlinkSync(t);this.symlinkSync(Object(s.c)(this.pathUtils,n),e)}}const a=511&i.mode;this.chmodSync(e,a)}async changeFilePromise(e,t,{automaticNewlines:r}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&await this.writeFilePromise(e,i)}changeFileSync(e,t,{automaticNewlines:r=!1}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&this.writeFileSync(e,i)}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(r){if("EXDEV"!==r.code)throw r;await this.copyPromise(t,e),await this.removePromise(e)}}moveSync(e,t){try{this.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;this.copySync(t,e),this.removeSync(e)}}async lockPromise(e,t){const r=`${e}.flock`,n=Date.now();let i=null;const o=async()=>{let e;try{[e]=await this.readJsonPromise(r)}catch(e){return Date.now()-n<500}try{return process.kill(e,0),!0}catch(e){return!1}};for(;null===i;)try{i=await this.openPromise(r,"wx")}catch(e){if("EEXIST"!==e.code)throw e;if(!await o())try{await this.unlinkPromise(r);continue}catch(e){}if(!(Date.now()-n<6e4))throw new Error(`Couldn't acquire a lock in a reasonable time (via ${r})`);await new Promise(e=>setTimeout(e,1e3/60))}await this.writePromise(i,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.unlinkPromise(r),await this.closePromise(i)}catch(e){}}}async readJsonPromise(e){const t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async readJsonSync(e){const t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)}\n`)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)}\n`)}async preserveTimePromise(e,t){const r=await this.lstatPromise(e),n=await t();void 0!==n&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,r.atime,r.mtime):r.isSymbolicLink()||await this.utimesPromise(e,r.atime,r.mtime)}async preserveTimeSync(e,t){const r=this.lstatSync(e),n=t();void 0!==n&&(e=n),this.lutimesSync?this.lutimesSync(e,r.atime,r.mtime):r.isSymbolicLink()||this.utimesSync(e,r.atime,r.mtime)}}A.DEFAULT_TIME=315532800;class c extends A{constructor(){super(s.e)}}function u(e,t){return t.replace(/\r?\n/g,function(e){const t=e.match(/\r?\n/g);if(null===t)return n.EOL;const r=t.filter(e=>"\r\n"===e).length;return r>t.length-r?"\r\n":"\n"}(e))}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(43);class i extends n.b{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}openPromise(e,t,r){return this.baseFs.openPromise(this.mapToBase(e),t,r)}openSync(e,t,r){return this.baseFs.openSync(this.mapToBase(e),t,r)}async readPromise(e,t,r,n,i){return await this.baseFs.readPromise(e,t,r,n,i)}readSync(e,t,r,n,i){return this.baseFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i)}writeSync(e,t,r,n,i){return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i)}closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(null!==e?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(null!==e?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}statPromise(e){return this.baseFs.statPromise(this.mapToBase(e))}statSync(e){return this.baseFs.statSync(this.mapToBase(e))}lstatPromise(e){return this.baseFs.lstatPromise(this.mapToBase(e))}lstatSync(e){return this.baseFs.lstatSync(this.mapToBase(e))}chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}copyFilePromise(e,t,r=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),r)}copyFileSync(e,t,r=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),r)}appendFilePromise(e,t,r){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,r)}appendFileSync(e,t,r){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,r)}writeFilePromise(e,t,r){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,r)}writeFileSync(e,t,r){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,r)}unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}utimesPromise(e,t,r){return this.baseFs.utimesPromise(this.mapToBase(e),t,r)}utimesSync(e,t,r){return this.baseFs.utimesSync(this.mapToBase(e),t,r)}mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}rmdirPromise(e){return this.baseFs.rmdirPromise(this.mapToBase(e))}rmdirSync(e){return this.baseFs.rmdirSync(this.mapToBase(e))}symlinkPromise(e,t,r){return this.baseFs.symlinkPromise(this.mapToBase(e),this.mapToBase(t),r)}symlinkSync(e,t,r){return this.baseFs.symlinkSync(this.mapToBase(e),this.mapToBase(t),r)}readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,{withFileTypes:t}={}){return this.baseFs.readdirPromise(this.mapToBase(e),{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){return this.baseFs.readdirSync(this.mapToBase(e),{withFileTypes:t})}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}watch(e,t,r){return this.baseFs.watch(this.mapToBase(e),t,r)}fsMapToBase(e){return"number"==typeof e?e:this.mapToBase(e)}}},function(e,t,r){"use strict";const n=r(14),i=r(480),o=r(487),s=r(239),a=e=>"string"==typeof e&&(""===e||"./"===e),A=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,s=new Set,a=0,A=e=>{s.add(e.output),r&&r.onResult&&r.onResult(e)};for(let s=0;s!n.has(e));if(r&&0===c.length){if(!0===r.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===r.nonull||!0===r.nullglob)return r.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};A.match=A,A.matcher=(e,t)=>o(e,t),A.any=A.isMatch=(e,t,r)=>o(t,r)(e),A.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],o=A(e,t,{...r,onResult:e=>{r.onResult&&r.onResult(e),i.push(e.output)}});for(let e of i)o.includes(e)||n.add(e);return[...n]},A.contains=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>A.contains(e,t,r));if("string"==typeof t){if(a(e)||a(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return A.isMatch(e,t,{...r,contains:!0})},A.matchKeys=(e,t,r)=>{if(!s.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=A(Object.keys(e),t,r),i={};for(let t of n)i[t]=e[t];return i},A.some=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(n.some(e=>t(e)))return!0}return!1},A.every=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(!n.every(e=>t(e)))return!1}return!0},A.all=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);return[].concat(t).every(t=>o(t,r)(e))},A.capture=(e,t,r)=>{let n=s.isWindows(r),i=o.makeRe(String(e),{...r,capture:!0}).exec(n?s.toPosixSlashes(t):t);if(i)return i.slice(1).map(e=>void 0===e?"":e)},A.makeRe=(...e)=>o.makeRe(...e),A.scan=(...e)=>o.scan(...e),A.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let e of i(String(n),t))r.push(o.parse(e,t));return r},A.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:i(e,t)},A.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return A.braces(e,{...t,expand:!0})},e.exports=A},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(1),i=r(6);function o(e,t){return function(r){return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate,this.thisArg))},e}(),a=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.thisArg=n,i.count=0,i}return n.b(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.a)},function(e,t,r){"use strict";r.r(t),r.d(t,"makeHash",(function(){return o})),r.d(t,"checksumFile",(function(){return s}));var n=r(32),i=r(51);function o(...e){const t=Object(i.createHash)("sha512");for(const r of e)t.update(r||"");return t.digest("hex")}function s(e){return new Promise((t,r)=>{const o=new n.a,s=Object(i.createHash)("sha512"),a=o.createReadStream(e,{});a.on("data",e=>{s.update(e)}),a.on("error",e=>{r(e)}),a.on("end",()=>{t(s.digest("hex"))})})}},function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"a",(function(){return a}));var n,i=r(28),o=r(86),s=r(125);n||(n={});var a=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return Object(o.a)(this.value);case"E":return Object(s.a)(this.error);case"C":return Object(i.b)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}()},function(e,t){e.exports=require("querystring")},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("crypto")},function(e,t,r){"use strict";function n(e){return e}r.d(t,"a",(function(){return n}))},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(121);class i{supportsDescriptor(e,t){if(e.range.startsWith(i.protocol))return!0;return null!==t.project.tryWorkspaceByDescriptor(e)}supportsLocator(e,t){return!!e.reference.startsWith(i.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[r.project.getWorkspaceByDescriptor(e).anchoredLocator]}async resolve(e,t){const r=t.project.getWorkspaceByCwd(e.reference.slice(i.protocol.length));return{...e,version:r.manifest.version||"0.0.0",languageName:"unknown",linkType:n.a.SOFT,dependencies:new Map([...r.manifest.dependencies,...r.manifest.devDependencies]),peerDependencies:new Map([...r.manifest.peerDependencies]),dependenciesMeta:r.manifest.dependenciesMeta,peerDependenciesMeta:r.manifest.peerDependenciesMeta,bin:r.manifest.bin}}}i.protocol="workspace:"},function(e,t,r){"use strict";function n(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}r.d(t,"a",(function(){return i}));var i=n()},function(e,t,r){"use strict";r.r(t),r.d(t,"EndStrategy",(function(){return n})),r.d(t,"pipevp",(function(){return u})),r.d(t,"execvp",(function(){return l}));var n,i=r(4),o=r(165),s=r.n(o);function a(e){return null!==e&&"number"==typeof e.fd}function A(){}!function(e){e[e.Never=0]="Never",e[e.ErrorCode=1]="ErrorCode",e[e.Always=2]="Always"}(n||(n={}));let c=0;async function u(e,t,{cwd:r,env:o=process.env,strict:u=!1,stdin:l=null,stdout:h,stderr:g,end:f=n.Always}){const p=["pipe","pipe","pipe"];null===l?p[0]="ignore":a(l)&&(p[0]=l),a(h)&&(p[1]=h),a(g)&&(p[2]=g),0==c++&&process.on("SIGINT",A);const d=s()(e,t,{cwd:i.d.fromPortablePath(r),env:{...o,PWD:i.d.fromPortablePath(r)},stdio:p});a(l)||null===l||l.pipe(d.stdin),a(h)||d.stdout.pipe(h,{end:!1}),a(g)||d.stderr.pipe(g,{end:!1});const C=()=>{for(const e of new Set([h,g]))a(e)||e.end()};return new Promise((t,r)=>{d.on("error",e=>{0==--c&&process.off("SIGINT",A),f!==n.Always&&f!==n.ErrorCode||C(),r(e)}),d.on("close",(i,o)=>{0==--c&&process.off("SIGINT",A),(f===n.Always||f===n.ErrorCode&&i>0)&&C(),0!==i&&u?r(null!==i?new Error(`Child "${e}" exited with exit code ${i}`):new Error(`Child "${e}" exited with signal ${o}`)):t({code:i})})})}async function l(e,t,{cwd:r,env:n=process.env,encoding:o="utf8",strict:a=!1}){const A=["ignore","pipe","pipe"],c=[],u=[],l=i.d.fromPortablePath(r);void 0!==n.PWD&&(n={...n,PWD:l});const h=s()(e,t,{cwd:l,env:n,stdio:A});return h.stdout.on("data",e=>{c.push(e)}),h.stderr.on("data",e=>{u.push(e)}),await new Promise((t,r)=>{h.on("close",n=>{const i="buffer"===o?Buffer.concat(c):Buffer.concat(c).toString(o),s="buffer"===o?Buffer.concat(u):Buffer.concat(u).toString(o);0!==n&&a?r(Object.assign(new Error(`Child "${e}" exited with exit code ${n}\n\n${s}`),{code:n,stdout:i,stderr:s})):t({code:n,stdout:i,stderr:s})})})}},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return C}));var n=r(9),i=r(13),o=r(14),s=r(43),a=r(32),A=r(16),c=r(4);const u="mixed",l=61440,h=16384,g=32768,f=40960;class p{constructor(){this.dev=0,this.ino=0,this.mode=0,this.nlink=1,this.rdev=0,this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&l)===h}isFIFO(){return!1}isFile(){return(this.mode&l)===g}isSocket(){return!1}isSymbolicLink(){return(this.mode&l)===f}}function d(){return Object.assign(new p,{uid:0,gid:0,size:0,blksize:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),mode:420|g})}class C extends s.a{constructor(e,t){super(),this.lzSource=null,this.listings=new Map,this.entries=new Map,this.fds=new Map,this.nextFd=0,this.ready=!1,this.readOnly=!1,this.libzip=t.libzip;const r=t;if(this.level=void 0!==r.level?r.level:u,null===e&&(e=Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),"string"==typeof e){const{baseFs:t=new a.a}=r;this.baseFs=t,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if("string"==typeof e)try{this.stats=this.baseFs.statSync(e)}catch(e){if("ENOENT"!==e.code||!r.create)throw e;this.stats=d()}else this.stats=d();const n=this.libzip.malloc(4);try{let i=0;if("string"==typeof e&&r.create&&(i|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(i|=this.libzip.ZIP_RDONLY,this.readOnly=!0),"string"==typeof e)this.zip=this.libzip.open(c.d.fromPortablePath(e),i,n);else{const t=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(t,i,n),this.lzSource=t}catch(e){throw this.libzip.source.free(t),e}}if(0===this.zip){const e=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(e,this.libzip.getValue(n,"i32")),new Error(this.libzip.error.strerror(e))}}finally{this.libzip.free(n)}this.listings.set(c.b.root,new Set);const i=this.libzip.getNumEntries(this.zip,0);for(let e=0;ee)throw new Error("Overread");const n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(!this.ready)throw A.b("archive closed, close");if(this.readOnly)return void this.discardAndClose();const e=this.baseFs.existsSync(this.path)?511&this.baseFs.statSync(this.path).mode:null;if(-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));null===e?this.baseFs.chmodSync(this.path,this.stats.mode):e!==(511&this.baseFs.statSync(this.path).mode)&&this.baseFs.chmodSync(this.path,e),this.ready=!1}discardAndClose(){if(!this.ready)throw A.b("archive closed, close");this.libzip.discard(this.zip),this.ready=!1}resolve(e){return c.e.resolve(c.b.root,e)}async openPromise(e,t,r){return this.openSync(e,t,r)}openSync(e,t,r){const n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}async readPromise(e,t,r,n,i){return this.readSync(e,t,r,n,i)}readSync(e,t,r=0,n=0,i=-1){const o=this.fds.get(e);if(void 0===o)throw A.a("read");let s;s=-1===i||null===i?o.cursor:i;const a=this.readFileSync(o.p);a.copy(t,r,s,s+n);const c=Math.max(0,Math.min(a.length-s,n));return-1!==i&&null!==i||(o.cursor+=c),c}async writePromise(e,t,r,n,i){return"string"==typeof t?this.writeSync(e,t,i):this.writeSync(e,t,r,n,i)}writeSync(e,t,r,n,i){if(void 0===this.fds.get(e))throw A.a("read");throw new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(void 0===this.fds.get(e))throw A.a("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesRead:0,path:e,close:()=>{clearImmediate(n)}}),n=setImmediate(()=>{try{const n=this.readFileSync(e,t);r.bytesRead=n.length,r.write(n),r.end()}catch(e){r.emit("error",e),r.end()}});return r}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw A.i(`open '${e}'`);if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesWritten:0,path:e,close:()=>{r.end()}}),n=[];return r.on("data",e=>{const t=Buffer.from(e);r.bytesWritten+=t.length,n.push(t)}),r.on("end",()=>{this.writeFileSync(e,Buffer.concat(n),t)}),r}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){const t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw A.f(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){let t;try{t=this.resolveFilename(`stat '${e}'`,e)}catch(e){return!1}return this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=n.constants.F_OK){const r=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw A.f(`access '${e}'`);if(this.readOnly&&t&n.constants.W_OK)throw A.i(`access '${e}'`)}async statPromise(e){return this.statSync(e)}statSync(e){const t=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw A.f(`stat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw A.h(`stat '${e}'`);return this.statImpl(`stat '${e}'`,t)}async lstatPromise(e){return this.lstatSync(e)}lstatSync(e){const t=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw A.f(`lstat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw A.h(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,t)}statImpl(e,t){const r=this.entries.get(t);if(void 0!==r){const e=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,r,0,0,e))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const n=this.stats.uid,i=this.stats.gid,o=this.libzip.struct.statSize(e)>>>0,s=512,a=Math.ceil(o/s),A=1e3*(this.libzip.struct.statMtime(e)>>>0),c=A,u=A,l=A,d=new Date(c),C=new Date(u),E=new Date(l),I=new Date(A),m=this.listings.has(t)?h:this.isSymbolicLink(r)?f:g,y=m===h?493:420,w=m|511&this.getUnixMode(r,y);return Object.assign(new p,{uid:n,gid:i,size:o,blksize:s,blocks:a,atime:d,birthtime:C,ctime:E,mtime:I,atimeMs:c,birthtimeMs:u,ctimeMs:l,mtimeMs:A,mode:w})}if(this.listings.has(t)){const e=this.stats.uid,t=this.stats.gid,r=0,n=512,i=0,o=this.stats.mtimeMs,s=this.stats.mtimeMs,a=this.stats.mtimeMs,A=this.stats.mtimeMs,c=new Date(o),u=new Date(s),l=new Date(a),g=new Date(A),f=493|h;return Object.assign(new p,{uid:e,gid:t,size:r,blksize:n,blocks:i,atime:c,birthtime:u,ctime:l,mtime:g,atimeMs:o,birthtimeMs:s,ctimeMs:a,mtimeMs:A,mode:f})}throw new Error("Unreachable")}getUnixMode(e,t){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;const r=this.registerListing(c.e.dirname(e));return t=new Set,r.add(c.e.basename(e)),this.listings.set(e,t),t}registerEntry(e,t){this.registerListing(c.e.dirname(e)).add(c.e.basename(e)),this.entries.set(e,t)}resolveFilename(e,t,r=!0){if(!this.ready)throw A.b(`archive closed, ${e}`);let n=c.e.resolve(c.b.root,t);if("/"===n)return c.b.root;for(;;){const t=this.resolveFilename(e,c.e.dirname(n),!0),i=this.listings.has(t),o=this.entries.has(t);if(!i&&!o)throw A.f(e);if(!i)throw A.h(e);if(n=c.e.resolve(t,c.e.basename(n)),!r)break;const s=this.libzip.name.locate(this.zip,n.slice(1));if(-1===s)break;if(!this.isSymbolicLink(s))break;{const e=this.getFileSource(s).toString();n=c.e.resolve(c.e.dirname(n),e)}}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));const t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){const t=this.libzip.struct.errorS(),{buffer:r,byteLength:n}=this.allocateBuffer(e),i=this.libzip.source.fromUnattachedBuffer(r,n,0,!0,t);if(0===i)throw this.libzip.free(t),new Error(this.libzip.error.strerror(t));return i}allocateSource(e){const{buffer:t,byteLength:r}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,r,0,!0);if(0===n)throw this.libzip.free(t),new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return n}setFileSource(e,t){const r=c.e.relative(c.b.root,e),n=this.allocateSource(t);try{const e=this.libzip.file.add(this.zip,r,n,this.libzip.ZIP_FL_OVERWRITE);if("mixed"!==this.level){let t;if(t=0===this.level?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE,-1===this.libzip.file.setCompression(this.zip,e,0,t,this.level))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}return e}catch(e){throw this.libzip.source.free(n),e}}isSymbolicLink(e){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0===this.libzip.ZIP_OPSYS_UNIX&&(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&l)===f}getFileSource(e){const t=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,e,0,0,t))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const r=this.libzip.struct.statSize(t),n=this.libzip.malloc(r);try{const t=this.libzip.fopenIndex(this.zip,e,0,0);if(0===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));try{const e=this.libzip.fread(t,n,r,0);if(-1===e)throw new Error(this.libzip.error.strerror(this.libzip.file.getError(t)));if(er)throw new Error("Overread");const i=this.libzip.HEAPU8.subarray(n,n+r);return Buffer.from(i)}finally{this.libzip.fclose(t)}}finally{this.libzip.free(n)}}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw A.i(`chmod '${e}'`);t&=493;const r=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(r);if(void 0===n)throw new Error(`Assertion failed: The entry should have been registered (${r})`);const i=-512&this.getUnixMode(n,0|g)|t;if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,i<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,r){return this.copyFileSync(e,t,r)}copyFileSync(e,t,r=0){if(this.readOnly)throw A.i(`copyfile '${e} -> '${t}'`);if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw A.g("unsupported clone operation",`copyfile '${e}' -> ${t}'`);const i=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),o=this.entries.get(i);if(void 0===o)throw A.d(`copyfile '${e}' -> '${t}'`);const s=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),a=this.entries.get(s);if(0!=(r&(n.constants.COPYFILE_EXCL|n.constants.COPYFILE_FICLONE_FORCE))&&void 0!==a)throw A.c(`copyfile '${e}' -> '${t}'`);const c=this.getFileSource(o),u=this.setFileSource(s,c);u!==a&&this.registerEntry(s,u)}async appendFilePromise(e,t,r){return this.appendFileSync(e,t,r)}appendFileSync(e,t,r={}){if(this.readOnly)throw A.i(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFileSync(e,t,r)}async writeFilePromise(e,t,r){return this.writeFileSync(e,t,r)}writeFileSync(e,t,r){if("string"!=typeof e)throw A.a("read");if(this.readOnly)throw A.i(`open '${e}'`);const n=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(n))throw A.e(`open '${e}'`);const i=this.entries.get(n);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(i),Buffer.from(t)]));let o=null;"string"==typeof r?o=r:"object"==typeof r&&r.encoding&&(o=r.encoding),null!==o&&(t=t.toString(o));const s=this.setFileSource(n,t);s!==i&&this.registerEntry(n,s)}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){throw new Error("Unimplemented")}async utimesPromise(e,t,r){return this.utimesSync(e,t,r)}utimesSync(e,t,r){if(this.readOnly)throw A.i(`utimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,r)}async lutimesPromise(e,t,r){return this.lutimesSync(e,t,r)}lutimesSync(e,t,r){if(this.readOnly)throw A.i(`lutimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,r)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));const r=this.entries.get(e);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.setMtime(this.zip,r,0,function(e){if("string"==typeof e&&String(+e)===e)return+e;if(Number.isFinite(e))return e<0?Date.now()/1e3:e;if(Object(o.isDate)(e))return e.getTime()/1e3;throw new Error("Invalid time")}(t),0))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:r=!1}={}){if(r)return void this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw A.i(`mkdir '${e}'`);const n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw A.c(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e){return this.rmdirSync(e)}rmdirSync(e){throw new Error("Unimplemented")}hydrateDirectory(e){const t=this.libzip.dir.add(this.zip,c.e.relative(c.b.root,e));if(-1===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.registerListing(e),this.registerEntry(e,t),t}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw A.i(`symlink '${e}' -> '${t}'`);const r=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(r))throw A.e(`symlink '${e}' -> '${t}'`);if(this.entries.has(r))throw A.c(`symlink '${e}' -> '${t}'`);const n=this.setFileSource(r,e);if(this.registerEntry(r,n),-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async readFilePromise(e,t){switch(t){case"utf8":default:return this.readFileSync(e,t)}}readFileSync(e,t){if("string"!=typeof e)throw A.a("read");"object"==typeof t&&(t=t?t.encoding:void 0);const r=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw A.f(`open '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(r))throw A.h(`open '${e}'`);if(this.listings.has(r))throw A.e("read");const n=this.entries.get(r);if(void 0===n)throw new Error("Unreachable");const i=this.getFileSource(n);return t?i.toString(t):i}async readdirPromise(e,{withFileTypes:t}={}){return this.readdirSync(e,{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){const r=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw A.f(`scandir '${e}'`);const n=this.listings.get(r);if(!n)throw A.h(`scandir '${e}'`);const i=[...n];return t?i.map(t=>Object.assign(this.statImpl("lstat",c.e.join(e,t)),{name:t})):i}async readlinkPromise(e){return this.readlinkSync(e)}readlinkSync(e){const t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw A.f(`readlink '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw A.h(`open '${e}'`);if(this.listings.has(t))throw A.d(`readlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)throw A.d(`readlink '${e}'`);if(40960!=(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16))throw A.d(`readlink '${e}'`);return this.getFileSource(r).toString()}watch(e,t,r){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t)}if(!n)return{on:()=>{},close:()=>{}};const i=setInterval(()=>{},864e5);return{on:()=>{},close:()=>{clearInterval(i)}}}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t){e.exports=require("buffer")},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){e.exports=require("zlib")},function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(1),i=r(10),o=r(11),s=r(35),a=r(26),A=r(31);function c(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?function(n){return n.pipe(c((function(r,n){return Object(A.a)(e(r,n)).pipe(Object(a.a)((function(e,i){return t(r,e,n,i)})))}),r))}:("number"==typeof t&&(r=t),function(t){return t.lift(new u(e,r))})}var u=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))},e}(),l=function(e){function t(t,r,n){void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this,t)||this;return i.project=r,i.concurrent=n,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return n.b(t,e),t.prototype._next=function(e){this.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.a)},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t,r){"use strict";function n(e){return"function"==typeof e}r.d(t,"a",(function(){return n}))},function(e,t,r){class n{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?a[A.HYPHENRANGELOOSE]:a[A.HYPHENRANGE];e=e.replace(r,w),o("hyphen replace",e),e=e.replace(a[A.COMPARATORTRIM],c),o("comparator trim",e,a[A.COMPARATORTRIM]),e=(e=(e=e.replace(a[A.TILDETRIM],u)).replace(a[A.CARETTRIM],l)).split(/\s+/).join(" ");const n=t?a[A.COMPARATORLOOSE]:a[A.COMPARATOR];return e.split(" ").map(e=>g(e,this.options)).join(" ").split(/\s+/).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new i(e,this.options))}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>h(r,t)&&e.set.some(e=>h(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options)}catch(e){return!1}for(let t=0;t{let r=!0;const n=e.slice();let i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r},g=(e,t)=>(o("comp",e,t),e=C(e,t),o("caret",e),e=p(e,t),o("tildes",e),e=I(e,t),o("xrange",e),e=y(e,t),o("stars",e),e),f=e=>!e||"x"===e.toLowerCase()||"*"===e,p=(e,t)=>e.trim().split(/\s+/).map(e=>d(e,t)).join(" "),d=(e,t)=>{const r=t.loose?a[A.TILDELOOSE]:a[A.TILDE];return e.replace(r,(t,r,n,i,s)=>{let a;return o("tilde",e,t,r,n,i,s),f(r)?a="":f(n)?a=`>=${r}.0.0 <${+r+1}.0.0`:f(i)?a=`>=${r}.${n}.0 <${r}.${+n+1}.0`:s?(o("replaceTilde pr",s),a=`>=${r}.${n}.${i}-${s} <${r}.${+n+1}.0`):a=`>=${r}.${n}.${i} <${r}.${+n+1}.0`,o("tilde return",a),a})},C=(e,t)=>e.trim().split(/\s+/).map(e=>E(e,t)).join(" "),E=(e,t)=>{o("caret",e,t);const r=t.loose?a[A.CARETLOOSE]:a[A.CARET];return e.replace(r,(t,r,n,i,s)=>{let a;return o("caret",e,t,r,n,i,s),f(r)?a="":f(n)?a=`>=${r}.0.0 <${+r+1}.0.0`:f(i)?a="0"===r?`>=${r}.${n}.0 <${r}.${+n+1}.0`:`>=${r}.${n}.0 <${+r+1}.0.0`:s?(o("replaceCaret pr",s),a="0"===r?"0"===n?`>=${r}.${n}.${i}-${s} <${r}.${n}.${+i+1}`:`>=${r}.${n}.${i}-${s} <${r}.${+n+1}.0`:`>=${r}.${n}.${i}-${s} <${+r+1}.0.0`):(o("no pr"),a="0"===r?"0"===n?`>=${r}.${n}.${i} <${r}.${n}.${+i+1}`:`>=${r}.${n}.${i} <${r}.${+n+1}.0`:`>=${r}.${n}.${i} <${+r+1}.0.0`),o("caret return",a),a})},I=(e,t)=>(o("replaceXRanges",e,t),e.split(/\s+/).map(e=>m(e,t)).join(" ")),m=(e,t)=>{e=e.trim();const r=t.loose?a[A.XRANGELOOSE]:a[A.XRANGE];return e.replace(r,(r,n,i,s,a,A)=>{o("xRange",e,r,n,i,s,a,A);const c=f(i),u=c||f(s),l=u||f(a),h=l;return"="===n&&h&&(n=""),A=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&h?(u&&(s=0),a=0,">"===n?(n=">=",u?(i=+i+1,s=0,a=0):(s=+s+1,a=0)):"<="===n&&(n="<",u?i=+i+1:s=+s+1),r=`${n+i}.${s}.${a}${A}`):u?r=`>=${i}.0.0${A} <${+i+1}.0.0${A}`:l&&(r=`>=${i}.${s}.0${A} <${i}.${+s+1}.0${A}`),o("xRange return",r),r})},y=(e,t)=>(o("replaceStars",e,t),e.trim().replace(a[A.STAR],"")),w=(e,t,r,n,i,o,s,a,A,c,u,l,h)=>`${t=f(r)?"":f(n)?`>=${r}.0.0`:f(i)?`>=${r}.${n}.0`:`>=${t}`} ${a=f(A)?"":f(c)?`<${+A+1}.0.0`:f(u)?`<${A}.${+c+1}.0`:l?`<=${A}.${c}.${u}-${l}`:`<=${a}`}`.trim(),B=(e,t,r)=>{for(let r=0;r0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}},function(e,t,r){var n=r(336),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},function(e,t,r){"use strict";r.r(t);var n=r(1),i=r(11),o=r(10);function s(e){return function(t){return t.lift(new a(e))}}var a=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.durationSelector))},e}(),A=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n}return n.b(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=void 0;try{t=(0,this.durationSelector)(e)}catch(e){return this.destination.error(e)}var r=Object(o.a)(this,t);!r||r.closed?this.clearThrottle():this.add(this.throttled=r)}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(i.a),c=r(21),u=r(215);function l(e,t){return void 0===t&&(t=c.a),s((function(){return Object(u.a)(e,t)}))}function h(e){return function(t){return t.lift(new g(e))}}var g=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new f(e,this.closingNotifier))},e}(),f=function(e){function t(t,r){var n=e.call(this,t)||this;return n.buffer=[],n.add(Object(o.a)(n,r)),n}return n.b(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.a),p=r(6);function d(e,t){return void 0===t&&(t=null),function(r){return r.lift(new C(e,t))}}var C=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?I:E}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),E=function(e){function t(t,r){var n=e.call(this,t)||this;return n.bufferSize=r,n.buffer=[],n}return n.b(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(p.a),I=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.bufferSize=r,i.startBufferEvery=n,i.buffers=[],i.count=0,i}return n.b(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var s=n[o];s.push(e),s.length===t&&(n.splice(o,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(p.a),m=r(27);function y(e){var t=arguments.length,r=c.a;Object(m.a)(arguments[arguments.length-1])&&(r=arguments[arguments.length-1],t--);var n=null;t>=2&&(n=arguments[1]);var i=Number.POSITIVE_INFINITY;return t>=3&&(i=arguments[2]),function(t){return t.lift(new w(e,n,i,r))}}var w=function(){function e(e,t,r,n){this.bufferTimeSpan=e,this.bufferCreationInterval=t,this.maxBufferSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Q(e,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},e}(),B=function(){return function(){this.buffer=[]}}(),Q=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.bufferTimeSpan=r,s.bufferCreationInterval=n,s.maxBufferSize=i,s.scheduler=o,s.contexts=[];var a=s.openContext();if(s.timespanOnly=null==n||n<0,s.timespanOnly){var A={subscriber:s,context:a,bufferTimeSpan:r};s.add(a.closeAction=o.schedule(b,r,A))}else{var c={subscriber:s,context:a},u={bufferTimeSpan:r,bufferCreationInterval:n,subscriber:s,scheduler:o};s.add(a.closeAction=o.schedule(v,r,c)),s.add(o.schedule(D,n,u))}return s}return n.b(t,e),t.prototype._next=function(e){for(var t,r=this.contexts,n=r.length,i=0;i0;){var n=t.shift();r.next(n.buffer)}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.contexts=null},t.prototype.onBufferFull=function(e){this.closeContext(e);var t=e.closeAction;if(t.unsubscribe(),this.remove(t),!this.closed&&this.timespanOnly){e=this.openContext();var r=this.bufferTimeSpan,n={subscriber:this,context:e,bufferTimeSpan:r};this.add(e.closeAction=this.scheduler.schedule(b,r,n))}},t.prototype.openContext=function(){var e=new B;return this.contexts.push(e),e},t.prototype.closeContext=function(e){this.destination.next(e.buffer);var t=this.contexts;(t?t.indexOf(e):-1)>=0&&t.splice(t.indexOf(e),1)},t}(p.a);function b(e){var t=e.subscriber,r=e.context;r&&t.closeContext(r),t.closed||(e.context=t.openContext(),e.context.closeAction=this.schedule(e,e.bufferTimeSpan))}function D(e){var t=e.bufferCreationInterval,r=e.bufferTimeSpan,n=e.subscriber,i=e.scheduler,o=n.openContext();n.closed||(n.add(o.closeAction=i.schedule(v,r,{subscriber:n,context:o})),this.schedule(e,t))}function v(e){var t=e.subscriber,r=e.context;t.closeContext(r)}var S=r(18);function k(e,t){return function(r){return r.lift(new x(e,t))}}var x=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new F(e,this.openings,this.closingSelector))},e}(),F=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add(Object(o.a)(i,r)),i}return n.b(t,e),t.prototype._next=function(e){for(var t=this.contexts,r=t.length,n=0;n0;){var n=r.shift();n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts;t.length>0;){var r=t.shift();this.destination.next(r.buffer),r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){e?this.closeBuffer(e):this.openBuffer(t)},t.prototype.notifyComplete=function(e){this.closeBuffer(e.context)},t.prototype.openBuffer=function(e){try{var t=this.closingSelector.call(this,e);t&&this.trySubscribe(t)}catch(e){this._error(e)}},t.prototype.closeBuffer=function(e){var t=this.contexts;if(t&&e){var r=e.buffer,n=e.subscription;this.destination.next(r),t.splice(t.indexOf(e),1),this.remove(n),n.unsubscribe()}},t.prototype.trySubscribe=function(e){var t=this.contexts,r=new S.a,n={buffer:[],subscription:r};t.push(n);var i=Object(o.a)(this,e,n);!i||i.closed?this.closeBuffer(n):(i.context=n,this.add(i),r.add(i))},t}(i.a);function M(e){return function(t){return t.lift(new N(e))}}var N=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new R(e,this.closingSelector))},e}(),R=function(e){function t(t,r){var n=e.call(this,t)||this;return n.closingSelector=r,n.subscribing=!1,n.openBuffer(),n}return n.b(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t,r=this.buffer;this.buffer&&this.destination.next(r),this.buffer=[];try{t=(0,this.closingSelector)()}catch(e){return this.error(e)}e=new S.a,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(Object(o.a)(this,t)),this.subscribing=!1},t}(i.a),K=r(35);function L(e){return function(t){var r=new O(e),n=t.lift(r);return r.caught=n}}var O=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new T(e,this.selector,this.caught))},e}(),T=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.selector=r,i.caught=n,i}return n.b(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var n=new K.a(this,void 0,void 0);this.add(n);var i=Object(o.a)(this,r,void 0,void 0,n);i!==n&&this.add(i)}},t}(i.a),P=r(126);function U(e){return function(t){return t.lift(new P.a(e))}}var _=r(20),j=r(31);function Y(){for(var e=[],t=0;t0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new fe(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(ue.a.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(ue.a.createComplete()),this.unsubscribe()},t}(p.a),fe=function(){return function(e,t){this.time=e,this.notification=t}}(),pe=r(8);function de(e,t){return t?function(r){return new Ie(r,t).lift(new Ce(e))}:function(t){return t.lift(new Ce(e))}}var Ce=function(){function e(e){this.delayDurationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new Ee(e,this.delayDurationSelector))},e}(),Ee=function(e){function t(t,r){var n=e.call(this,t)||this;return n.delayDurationSelector=r,n.completed=!1,n.delayNotifierSubscriptions=[],n.index=0,n}return n.b(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(e),this.removeSubscription(i),this.tryComplete()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){var t=this.removeSubscription(e);t&&this.destination.next(t),this.tryComplete()},t.prototype._next=function(e){var t=this.index++;try{var r=this.delayDurationSelector(e,t);r&&this.tryDelay(r,e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},t.prototype.removeSubscription=function(e){e.unsubscribe();var t=this.delayNotifierSubscriptions.indexOf(e);return-1!==t&&this.delayNotifierSubscriptions.splice(t,1),e.outerValue},t.prototype.tryDelay=function(e,t){var r=Object(o.a)(this,e,t);r&&!r.closed&&(this.destination.add(r),this.delayNotifierSubscriptions.push(r))},t.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},t}(i.a),Ie=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subscriptionDelay=r,n}return n.b(t,e),t.prototype._subscribe=function(e){this.subscriptionDelay.subscribe(new me(e,this.source))},t}(pe.a),me=function(e){function t(t,r){var n=e.call(this)||this;return n.parent=t,n.source=r,n.sourceSubscribed=!1,n}return n.b(t,e),t.prototype._next=function(e){this.subscribeToSource()},t.prototype._error=function(e){this.unsubscribe(),this.parent.error(e)},t.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},t.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},t}(p.a);function ye(){return function(e){return e.lift(new we)}}var we=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Be(e))},e}(),Be=function(e){function t(t){return e.call(this,t)||this}return n.b(t,e),t.prototype._next=function(e){e.observe(this.destination)},t}(p.a);function Qe(e,t){return function(r){return r.lift(new be(e,t))}}var be=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new De(e,this.keySelector,this.flushes))},e}(),De=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=r,i.values=new Set,n&&i.add(Object(o.a)(i,n)),i}return n.b(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.a);function ve(e,t){return function(r){return r.lift(new Se(e,t))}}var Se=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new ke(e,this.compare,this.keySelector))},e}(),ke=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=n,i.hasKey=!1,"function"==typeof r&&(i.compare=r),i}return n.b(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var r=this.keySelector;t=r?r(e):e}catch(e){return this.destination.error(e)}var n=!1;if(this.hasKey)try{n=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;n||(this.key=t,this.destination.next(e))},t}(p.a);function xe(e,t){return ve((function(r,n){return t?t(r[e],n[e]):r[e]===n[e]}))}var Fe=r(63),Me=r(46),Ne=r(69);function Re(e){return void 0===e&&(e=Oe),function(t){return t.lift(new Ke(e))}}var Ke=function(){function e(e){this.errorFactory=e}return e.prototype.call=function(e,t){return t.subscribe(new Le(e,this.errorFactory))},e}(),Le=function(e){function t(t,r){var n=e.call(this,t)||this;return n.errorFactory=r,n.hasValue=!1,n}return n.b(t,e),t.prototype._next=function(e){this.hasValue=!0,this.destination.next(e)},t.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var e=void 0;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)},t}(p.a);function Oe(){return new Ne.a}var Te=r(28);function Pe(e){return function(t){return 0===e?Object(Te.b)():t.lift(new Ue(e))}}var Ue=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.a}return e.prototype.call=function(e,t){return t.subscribe(new _e(e,this.total))},e}(),_e=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.b(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(p.a);function je(e,t){if(e<0)throw new Fe.a;var r=arguments.length>=2;return function(n){return n.pipe(Object(Me.a)((function(t,r){return r===e})),Pe(1),r?se(t):Re((function(){return new Fe.a})))}}var Ye=r(86);function Ge(){for(var e=[],t=0;t0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(i.a);function it(e){return function(t){return t.lift(new ot(e))}}var ot=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new st(e,this.callback))},e}(),st=function(e){function t(t,r){var n=e.call(this,t)||this;return n.add(new S.a(r)),n}return n.b(t,e),t}(p.a);function at(e,t){if("function"!=typeof e)throw new TypeError("predicate is not a function");return function(r){return r.lift(new At(e,r,!1,t))}}var At=function(){function e(e,t,r,n){this.predicate=e,this.source=t,this.yieldIndex=r,this.thisArg=n}return e.prototype.call=function(e,t){return t.subscribe(new ct(e,this.predicate,this.source,this.yieldIndex,this.thisArg))},e}(),ct=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.predicate=r,s.source=n,s.yieldIndex=i,s.thisArg=o,s.index=0,s}return n.b(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete(),this.unsubscribe()},t.prototype._next=function(e){var t=this.predicate,r=this.thisArg,n=this.index++;try{t.call(r||this,e,n,this.source)&&this.notifyComplete(this.yieldIndex?n:e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},t}(p.a);function ut(e,t){return function(r){return r.lift(new At(e,r,!0,t))}}var lt=r(52);function ht(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?Object(Me.a)((function(t,r){return e(t,r,n)})):lt.a,Pe(1),r?se(t):Re((function(){return new Ne.a})))}}var gt=r(198);function ft(){return function(e){return e.lift(new pt)}}var pt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new dt(e))},e}(),dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.b(t,e),t.prototype._next=function(e){},t}(p.a);function Ct(){return function(e){return e.lift(new Et)}}var Et=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new It(e))},e}(),It=function(e){function t(t){return e.call(this,t)||this}return n.b(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype._next=function(e){this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.a);function mt(e){return function(t){return 0===e?Object(Te.b)():t.lift(new yt(e))}}var yt=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.a}return e.prototype.call=function(e,t){return t.subscribe(new wt(e,this.total))},e}(),wt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.ring=new Array,n.count=0,n}return n.b(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;t.length0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i=2;return function(n){return n.pipe(e?Object(Me.a)((function(t,r){return e(t,r,n)})):lt.a,mt(1),r?se(t):Re((function(){return new Ne.a})))}}function Qt(e){return function(t){return t.lift(new bt(e))}}var bt=function(){function e(e){this.value=e}return e.prototype.call=function(e,t){return t.subscribe(new Dt(e,this.value))},e}(),Dt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.value=r,n}return n.b(t,e),t.prototype._next=function(e){this.destination.next(this.value)},t}(p.a);function vt(){return function(e){return e.lift(new St)}}var St=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new kt(e))},e}(),kt=function(e){function t(t){return e.call(this,t)||this}return n.b(t,e),t.prototype._next=function(e){this.destination.next(ue.a.createNext(e))},t.prototype._error=function(e){var t=this.destination;t.next(ue.a.createError(e)),t.complete()},t.prototype._complete=function(){var e=this.destination;e.next(ue.a.createComplete()),e.complete()},t}(p.a);function xt(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new Ft(e,t,r))}}var Ft=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new Mt(e,this.accumulator,this.seed,this.hasSeed))},e}(),Mt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o._seed=n,o.hasSeed=i,o.index=0,o}return n.b(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(p.a),Nt=r(103);function Rt(e,t){return arguments.length>=2?function(r){return Object(Nt.a)(xt(e,t),mt(1),se(t))(r)}:function(t){return Object(Nt.a)(xt((function(t,r,n){return e(t,r,n+1)})),mt(1))(t)}}function Kt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)>0?t:r}:function(e,t){return e>t?e:t})}var Lt=r(213);function Ot(){for(var e=[],t=0;t0?this._next(t.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},t}(i.a);function Yt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)<0?t:r}:function(e,t){return e-1&&(this.count=r-1),t.subscribe(this._unsubscribeAndRecycle())}},t}(p.a);function dr(e){return function(t){return t.lift(new Cr(e))}}var Cr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Er(e,this.notifier,t))},e}(),Er=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i.sourceIsBeingSubscribedTo=!0,i}return n.b(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},t.prototype.notifyComplete=function(t){if(!1===this.sourceIsBeingSubscribedTo)return e.prototype.complete.call(this)},t.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return e.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},t.prototype._unsubscribe=function(){var e=this.notifications,t=this.retriesSubscription;e&&(e.unsubscribe(),this.notifications=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype._unsubscribeAndRecycle=function(){var t=this._unsubscribe;return this._unsubscribe=null,e.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=t,this},t.prototype.subscribeToRetries=function(){var t;this.notifications=new nr.a;try{t=(0,this.notifier)(this.notifications)}catch(t){return e.prototype.complete.call(this)}this.retries=t,this.retriesSubscription=Object(o.a)(this,t)},t}(i.a);function Ir(e){return void 0===e&&(e=-1),function(t){return t.lift(new mr(e,t))}}var mr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new yr(e,this.count,this.source))},e}(),yr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.b(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(p.a);function wr(e){return function(t){return t.lift(new Br(e,t))}}var Br=function(){function e(e,t){this.notifier=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Qr(e,this.notifier,this.source))},e}(),Qr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i}return n.b(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.errors,n=this.retries,i=this.retriesSubscription;if(n)this.errors=null,this.retriesSubscription=null;else{r=new nr.a;try{n=(0,this.notifier)(r)}catch(t){return e.prototype.error.call(this,t)}i=Object(o.a)(this,n)}this._unsubscribeAndRecycle(),this.errors=r,this.retries=n,this.retriesSubscription=i,r.next(t)}},t.prototype._unsubscribe=function(){var e=this.errors,t=this.retriesSubscription;e&&(e.unsubscribe(),this.errors=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype.notifyNext=function(e,t,r,n,i){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},t}(i.a),br=r(123);function Dr(e){return function(t){return t.lift(new vr(e))}}var vr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new Sr(e),n=t.subscribe(r);return n.add(Object(o.a)(r,this.notifier)),n},e}(),Sr=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hasValue=!1,t}return n.b(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.a);function kr(e,t){return void 0===t&&(t=c.a),function(r){return r.lift(new xr(e,t))}}var xr=function(){function e(e,t){this.period=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Fr(e,this.period,this.scheduler))},e}(),Fr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.period=r,i.scheduler=n,i.hasValue=!1,i.add(n.schedule(Mr,r,{subscriber:i,period:r})),i}return n.b(t,e),t.prototype._next=function(e){this.lastValue=e,this.hasValue=!0},t.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},t}(p.a);function Mr(e){var t=e.subscriber,r=e.period;t.notifyNext(),this.schedule(e,r)}function Nr(e,t){return function(r){return r.lift(new Rr(e,t))}}var Rr=function(){function e(e,t){this.compareTo=e,this.comparator=t}return e.prototype.call=function(e,t){return t.subscribe(new Kr(e,this.compareTo,this.comparator))},e}(),Kr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.compareTo=r,i.comparator=n,i._a=[],i._b=[],i._oneComplete=!1,i.destination.add(r.subscribe(new Lr(t,i))),i}return n.b(t,e),t.prototype._next=function(e){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(e),this.checkValues())},t.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},t.prototype.checkValues=function(){for(var e=this._a,t=this._b,r=this.comparator;e.length>0&&t.length>0;){var n=e.shift(),i=t.shift(),o=!1;try{o=r?r(n,i):n===i}catch(e){this.destination.error(e)}o||this.emit(!1)}},t.prototype.emit=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype.nextB=function(e){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(e),this.checkValues())},t.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},t}(p.a),Lr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.parent=r,n}return n.b(t,e),t.prototype._next=function(e){this.parent.nextB(e)},t.prototype._error=function(e){this.parent.error(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},t}(p.a);function Or(){return new nr.a}function Tr(){return function(e){return Object(br.a)()(Jt(Or)(e))}}function Pr(e,t,r){var n;return n=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:r},function(e){return e.lift(function(e){var t,r,n=e.bufferSize,i=void 0===n?Number.POSITIVE_INFINITY:n,o=e.windowTime,s=void 0===o?Number.POSITIVE_INFINITY:o,a=e.refCount,A=e.scheduler,c=0,u=!1,l=!1;return function(e){c++,t&&!u||(u=!1,t=new cr.a(i,s,A),r=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){l=!0,r=void 0,t.complete()}}));var n=t.subscribe(this);this.add((function(){c--,n.unsubscribe(),r&&!l&&a&&0===c&&(r.unsubscribe(),r=void 0,t=void 0)}))}}(n))}}function Ur(e){return function(t){return t.lift(new _r(e,t))}}var _r=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new jr(e,this.predicate,this.source))},e}(),jr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.seenValue=!1,i.index=0,i}return n.b(t,e),t.prototype.applySingleValue=function(e){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=e)},t.prototype._next=function(e){var t=this.index++;this.predicate?this.tryNext(e,t):this.applySingleValue(e)},t.prototype.tryNext=function(e,t){try{this.predicate(e,t,this.source)&&this.applySingleValue(e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){var e=this.destination;this.index>0?(e.next(this.seenValue?this.singleValue:void 0),e.complete()):e.error(new Ne.a)},t}(p.a);function Yr(e){return function(t){return t.lift(new Gr(e))}}var Gr=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new Jr(e,this.total))},e}(),Jr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.b(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(p.a);function Hr(e){return function(t){return t.lift(new zr(e))}}var zr=function(){function e(e){if(this._skipCount=e,this._skipCount<0)throw new Fe.a}return e.prototype.call=function(e,t){return 0===this._skipCount?t.subscribe(new p.a(e)):t.subscribe(new qr(e,this._skipCount))},e}(),qr=function(e){function t(t,r){var n=e.call(this,t)||this;return n._skipCount=r,n._count=0,n._ring=new Array(r),n}return n.b(t,e),t.prototype._next=function(e){var t=this._skipCount,r=this._count++;if(r0?this.startWindowEvery:this.windowSize,r=this.destination,n=this.windowSize,i=this.windows,o=i.length,s=0;s=0&&a%t==0&&!this.closed&&i.shift().complete(),++this.count%t==0&&!this.closed){var A=new nr.a;i.push(A),r.next(A)}},t.prototype._error=function(e){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().complete();this.destination.complete()},t.prototype._unsubscribe=function(){this.count=0,this.windows=null},t}(p.a);function Xn(e){var t=c.a,r=null,n=Number.POSITIVE_INFINITY;return Object(m.a)(arguments[3])&&(t=arguments[3]),Object(m.a)(arguments[2])?t=arguments[2]:Object(nn.a)(arguments[2])&&(n=arguments[2]),Object(m.a)(arguments[1])?t=arguments[1]:Object(nn.a)(arguments[1])&&(r=arguments[1]),function(i){return i.lift(new Zn(e,r,n,t))}}var Zn=function(){function e(e,t,r,n){this.windowTimeSpan=e,this.windowCreationInterval=t,this.maxWindowSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new ei(e,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},e}(),$n=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._numberOfNextedValues=0,t}return n.b(t,e),t.prototype.next=function(t){this._numberOfNextedValues++,e.prototype.next.call(this,t)},Object.defineProperty(t.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),t}(nr.a),ei=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.destination=t,s.windowTimeSpan=r,s.windowCreationInterval=n,s.maxWindowSize=i,s.scheduler=o,s.windows=[];var a=s.openWindow();if(null!==n&&n>=0){var A={subscriber:s,window:a,context:null},c={windowTimeSpan:r,windowCreationInterval:n,subscriber:s,scheduler:o};s.add(o.schedule(ni,r,A)),s.add(o.schedule(ri,n,c))}else{var u={subscriber:s,window:a,windowTimeSpan:r};s.add(o.schedule(ti,r,u))}return s}return n.b(t,e),t.prototype._next=function(e){for(var t=this.windows,r=t.length,n=0;n=this.maxWindowSize&&this.closeWindow(i))}},t.prototype._error=function(e){for(var t=this.windows;t.length>0;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){for(var e=this.windows;e.length>0;){var t=e.shift();t.closed||t.complete()}this.destination.complete()},t.prototype.openWindow=function(){var e=new $n;return this.windows.push(e),this.destination.next(e),e},t.prototype.closeWindow=function(e){e.complete();var t=this.windows;t.splice(t.indexOf(e),1)},t}(p.a);function ti(e){var t=e.subscriber,r=e.windowTimeSpan,n=e.window;n&&t.closeWindow(n),e.window=t.openWindow(),this.schedule(e,r)}function ri(e){var t=e.windowTimeSpan,r=e.subscriber,n=e.scheduler,i=e.windowCreationInterval,o=r.openWindow(),s={action:this,subscription:null},a={subscriber:r,window:o,context:s};s.subscription=n.schedule(ni,t,a),this.add(s.subscription),this.schedule(e,i)}function ni(e){var t=e.subscriber,r=e.window,n=e.context;n&&n.action&&n.subscription&&n.action.remove(n.subscription),t.closeWindow(r)}function ii(e,t){return function(r){return r.lift(new oi(e,t))}}var oi=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new si(e,this.openings,this.closingSelector))},e}(),si=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add(i.openSubscription=Object(o.a)(i,r,r)),i}return n.b(t,e),t.prototype._next=function(e){var t=this.contexts;if(t)for(var r=t.length,n=0;n0){var s=o.indexOf(r);-1!==s&&o.splice(s,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.a),gi=r(129);function fi(){for(var e=[],t=0;t=0}},function(e,t,r){const n=r(39);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(514),i=r(515),o=r(516);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.stat=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.statSync=function(e,t){const r=s(t);return i.read(e,r)}},function(e,t,r){var n=r(98),i=r(638),o=r(639),s="[object Null]",a="[object Undefined]",A=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?a:s:A&&A in Object(e)?i(e):o(e)}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(86),i=r(212);function o(){for(var e=[],t=0;t!0,filter:e=>e,when:()=>!0,suffix:"",prefix:i.green("?")}),this.opt.name||this.throwParamError("name"),this.opt.message||(this.opt.message=this.opt.name+":"),Array.isArray(this.opt.choices)&&(this.opt.choices=new l(this.opt.choices,r)),this.rl=t,this.screen=new h(this.rl)}run(){return new Promise(e=>{this._run(t=>e(t))})}_run(e){e()}throwParamError(e){throw new Error("You must provide a `"+e+"` parameter")}close(){this.screen.releaseCursor()}handleSubmitEvents(e){var t=this,r=o(this.opt.validate),n=o(this.opt.filter),i=e.pipe(a(e=>n(e,t.answers).then(e=>r(e,t.answers).then(t=>({isValid:t,value:e}),t=>({isValid:t,value:e})),e=>({isValid:e}))),A()),l=i.pipe(s(e=>!0===e.isValid),c(1));return{success:l,error:i.pipe(s(e=>!0!==e.isValid),u(l))}}getQuestion(){var e=this.opt.prefix+" "+i.bold(this.opt.message)+this.opt.suffix+i.reset(" ");return null!=this.opt.default&&"answered"!==this.status&&("password"===this.opt.type?e+=i.italic.dim("[hidden] "):e+=i.dim("("+this.opt.default+") ")),e}}},function(e,t,r){"use strict";var{fromEvent:n}=r(202),{filter:i,map:o,share:s,takeUntil:a}=r(67);function A(e,t){return{value:e,key:t||{}}}e.exports=function(e){var t=n(e.input,"keypress",A).pipe(a(n(e,"close"))).pipe(i(({key:e})=>"enter"!==e.name&&"return"!==e.name));return{line:n(e,"line"),keypress:t,normalizedUpKey:t.pipe(i(({key:e})=>"up"===e.name||"k"===e.name||"p"===e.name&&e.ctrl),s()),normalizedDownKey:t.pipe(i(({key:e})=>"down"===e.name||"j"===e.name||"n"===e.name&&e.ctrl),s()),numberKey:t.pipe(i(e=>e.value&&"123456789".indexOf(e.value)>=0),o(e=>Number(e.value)),s()),spaceKey:t.pipe(i(({key:e})=>e&&"space"===e.name),s()),aKey:t.pipe(i(({key:e})=>e&&"a"===e.name),s()),iKey:t.pipe(i(({key:e})=>e&&"i"===e.name),s())}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(27),i=r(70),o=r(134);function s(){for(var e=[],t=0;tt=>typeof t===e,o=e=>{const t=n.call(e).slice(8,-1);if(t)return t},s=e=>t=>o(t)===e;function a(e){switch(e){case null:return"null";case!0:case!1:return"boolean"}switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"bigint":return"bigint";case"symbol":return"symbol"}if(a.function_(e))return"Function";if(a.observable(e))return"Observable";if(a.array(e))return"Array";if(a.buffer(e))return"Buffer";const t=o(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}a.undefined=i("undefined"),a.string=i("string");const A=i("number");a.number=e=>A(e)&&!a.nan(e),a.bigint=i("bigint"),a.function_=i("function"),a.null_=e=>null===e,a.class_=e=>a.function_(e)&&e.toString().startsWith("class "),a.boolean=e=>!0===e||!1===e,a.symbol=i("symbol"),a.numericString=e=>a.string(e)&&!a.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),a.array=Array.isArray,a.buffer=e=>{var t,r,n,i;return null!==(i=null===(n=null===(r=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===r?void 0:r.isBuffer)||void 0===n?void 0:n.call(r,e))&&void 0!==i&&i},a.nullOrUndefined=e=>a.null_(e)||a.undefined(e),a.object=e=>!a.null_(e)&&("object"==typeof e||a.function_(e)),a.iterable=e=>{var t;return a.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},a.asyncIterable=e=>{var t;return a.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},a.generator=e=>a.iterable(e)&&a.function_(e.next)&&a.function_(e.throw),a.asyncGenerator=e=>a.asyncIterable(e)&&a.function_(e.next)&&a.function_(e.throw),a.nativePromise=e=>s("Promise")(e);a.promise=e=>a.nativePromise(e)||(e=>{var t,r;return a.function_(null===(t=e)||void 0===t?void 0:t.then)&&a.function_(null===(r=e)||void 0===r?void 0:r.catch)})(e),a.generatorFunction=s("GeneratorFunction"),a.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===o(e),a.asyncFunction=e=>"AsyncFunction"===o(e),a.boundFunction=e=>a.function_(e)&&!e.hasOwnProperty("prototype"),a.regExp=s("RegExp"),a.date=s("Date"),a.error=s("Error"),a.map=e=>s("Map")(e),a.set=e=>s("Set")(e),a.weakMap=e=>s("WeakMap")(e),a.weakSet=e=>s("WeakSet")(e),a.int8Array=s("Int8Array"),a.uint8Array=s("Uint8Array"),a.uint8ClampedArray=s("Uint8ClampedArray"),a.int16Array=s("Int16Array"),a.uint16Array=s("Uint16Array"),a.int32Array=s("Int32Array"),a.uint32Array=s("Uint32Array"),a.float32Array=s("Float32Array"),a.float64Array=s("Float64Array"),a.bigInt64Array=s("BigInt64Array"),a.bigUint64Array=s("BigUint64Array"),a.arrayBuffer=s("ArrayBuffer"),a.sharedArrayBuffer=s("SharedArrayBuffer"),a.dataView=s("DataView"),a.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,a.urlInstance=e=>s("URL")(e),a.urlString=e=>{if(!a.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},a.truthy=e=>Boolean(e),a.falsy=e=>!e,a.nan=e=>Number.isNaN(e);const c=new Set(["undefined","string","number","bigint","boolean","symbol"]);a.primitive=e=>a.null_(e)||c.has(typeof e),a.integer=e=>Number.isInteger(e),a.safeInteger=e=>Number.isSafeInteger(e),a.plainObject=e=>{if("Object"!==o(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})};const u=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"]);a.typedArray=e=>{const t=o(e);return void 0!==t&&u.has(t)};a.arrayLike=e=>!a.nullOrUndefined(e)&&!a.function_(e)&&(e=>a.safeInteger(e)&&e>=0)(e.length),a.inRange=(e,t)=>{if(a.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(a.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};const l=["innerHTML","ownerDocument","style","attributes","nodeValue"];a.domElement=e=>a.object(e)&&1===e.nodeType&&a.string(e.nodeName)&&!a.plainObject(e)&&l.every(t=>t in e),a.observable=e=>{var t,r,n,i;return!!e&&(e===(null===(r=(t=e)[Symbol.observable])||void 0===r?void 0:r.call(t))||e===(null===(i=(n=e)["@@observable"])||void 0===i?void 0:i.call(n)))},a.nodeStream=e=>a.object(e)&&a.function_(e.pipe)&&!a.observable(e),a.infinite=e=>e===1/0||e===-1/0;const h=e=>t=>a.integer(t)&&Math.abs(t%2)===e;a.evenInteger=h(0),a.oddInteger=h(1),a.emptyArray=e=>a.array(e)&&0===e.length,a.nonEmptyArray=e=>a.array(e)&&e.length>0,a.emptyString=e=>a.string(e)&&0===e.length,a.nonEmptyString=e=>a.string(e)&&e.length>0;a.emptyStringOrWhitespace=e=>a.emptyString(e)||(e=>a.string(e)&&!/\S/.test(e))(e),a.emptyObject=e=>a.object(e)&&!a.map(e)&&!a.set(e)&&0===Object.keys(e).length,a.nonEmptyObject=e=>a.object(e)&&!a.map(e)&&!a.set(e)&&Object.keys(e).length>0,a.emptySet=e=>a.set(e)&&0===e.size,a.nonEmptySet=e=>a.set(e)&&e.size>0,a.emptyMap=e=>a.map(e)&&0===e.size,a.nonEmptyMap=e=>a.map(e)&&e.size>0;const g=(e,t,r)=>{if(!a.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(0===r.length)throw new TypeError("Invalid number of values");return e.call(r,t)};a.any=(e,...t)=>{return(a.array(e)?e:[e]).some(e=>g(Array.prototype.some,e,t))},a.all=(e,...t)=>g(Array.prototype.every,e,t);const f=(e,t,r)=>{if(!e)throw new TypeError(`Expected value which is \`${t}\`, received value of type \`${a(r)}\`.`)};t.assert={undefined:e=>f(a.undefined(e),"undefined",e),string:e=>f(a.string(e),"string",e),number:e=>f(a.number(e),"number",e),bigint:e=>f(a.bigint(e),"bigint",e),function_:e=>f(a.function_(e),"Function",e),null_:e=>f(a.null_(e),"null",e),class_:e=>f(a.class_(e),"Class",e),boolean:e=>f(a.boolean(e),"boolean",e),symbol:e=>f(a.symbol(e),"symbol",e),numericString:e=>f(a.numericString(e),"string with a number",e),array:e=>f(a.array(e),"Array",e),buffer:e=>f(a.buffer(e),"Buffer",e),nullOrUndefined:e=>f(a.nullOrUndefined(e),"null or undefined",e),object:e=>f(a.object(e),"Object",e),iterable:e=>f(a.iterable(e),"Iterable",e),asyncIterable:e=>f(a.asyncIterable(e),"AsyncIterable",e),generator:e=>f(a.generator(e),"Generator",e),asyncGenerator:e=>f(a.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>f(a.nativePromise(e),"native Promise",e),promise:e=>f(a.promise(e),"Promise",e),generatorFunction:e=>f(a.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>f(a.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>f(a.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>f(a.boundFunction(e),"Function",e),regExp:e=>f(a.regExp(e),"RegExp",e),date:e=>f(a.date(e),"Date",e),error:e=>f(a.error(e),"Error",e),map:e=>f(a.map(e),"Map",e),set:e=>f(a.set(e),"Set",e),weakMap:e=>f(a.weakMap(e),"WeakMap",e),weakSet:e=>f(a.weakSet(e),"WeakSet",e),int8Array:e=>f(a.int8Array(e),"Int8Array",e),uint8Array:e=>f(a.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>f(a.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>f(a.int16Array(e),"Int16Array",e),uint16Array:e=>f(a.uint16Array(e),"Uint16Array",e),int32Array:e=>f(a.int32Array(e),"Int32Array",e),uint32Array:e=>f(a.uint32Array(e),"Uint32Array",e),float32Array:e=>f(a.float32Array(e),"Float32Array",e),float64Array:e=>f(a.float64Array(e),"Float64Array",e),bigInt64Array:e=>f(a.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>f(a.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>f(a.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>f(a.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>f(a.dataView(e),"DataView",e),urlInstance:e=>f(a.urlInstance(e),"URL",e),urlString:e=>f(a.urlString(e),"string with a URL",e),truthy:e=>f(a.truthy(e),"truthy",e),falsy:e=>f(a.falsy(e),"falsy",e),nan:e=>f(a.nan(e),"NaN",e),primitive:e=>f(a.primitive(e),"primitive",e),integer:e=>f(a.integer(e),"integer",e),safeInteger:e=>f(a.safeInteger(e),"integer",e),plainObject:e=>f(a.plainObject(e),"plain object",e),typedArray:e=>f(a.typedArray(e),"TypedArray",e),arrayLike:e=>f(a.arrayLike(e),"array-like",e),domElement:e=>f(a.domElement(e),"Element",e),observable:e=>f(a.observable(e),"Observable",e),nodeStream:e=>f(a.nodeStream(e),"Node.js Stream",e),infinite:e=>f(a.infinite(e),"infinite number",e),emptyArray:e=>f(a.emptyArray(e),"empty array",e),nonEmptyArray:e=>f(a.nonEmptyArray(e),"non-empty array",e),emptyString:e=>f(a.emptyString(e),"empty string",e),nonEmptyString:e=>f(a.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>f(a.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>f(a.emptyObject(e),"empty object",e),nonEmptyObject:e=>f(a.nonEmptyObject(e),"non-empty object",e),emptySet:e=>f(a.emptySet(e),"empty set",e),nonEmptySet:e=>f(a.nonEmptySet(e),"non-empty set",e),emptyMap:e=>f(a.emptyMap(e),"empty map",e),nonEmptyMap:e=>f(a.nonEmptyMap(e),"non-empty map",e),evenInteger:e=>f(a.evenInteger(e),"even integer",e),oddInteger:e=>f(a.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>f(a.directInstanceOf(e,t),"T",e),inRange:(e,t)=>f(a.inRange(e,t),"in range",e),any:(e,...t)=>f(a.any(e,...t),"predicate returns truthy for any value",t),all:(e,...t)=>f(a.all(e,...t),"predicate returns truthy for all values",t)},Object.defineProperties(a,{class:{value:a.class_},function:{value:a.function_},null:{value:a.null_}}),Object.defineProperties(t.assert,{class:{value:t.assert.class_},function:{value:t.assert.function_},null:{value:t.assert.null_}}),t.default=a,e.exports=a,e.exports.default=a,e.exports.assert=t.assert},function(e,t,r){"use strict";let n=Buffer;n.alloc||(n=r(254).Buffer),e.exports=n},function(e,t,r){"use strict";var n=r(30);t.__esModule=!0,t.default=E;var i=n(r(112)),o=n(r(113)),s=n(r(666)),a=n(r(700)),A=r(101),c=n(r(706)),u=n(r(272)),l=n(r(707)),h=n(r(102)),g=n(r(708)),f=n(r(192)),p=n(r(153)),d=r(363),C=function(){function e(){this.list=new Set,this.refs=new Map}var t=e.prototype;return t.toArray=function(){return(0,a.default)(this.list).concat((0,a.default)(this.refs.values()))},t.add=function(e){p.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)},t.delete=function(e){p.default.isRef(e)?this.refs.delete(e.key,e):this.list.delete(e)},t.has=function(e,t){if(this.list.has(e))return!0;for(var r,n=this.refs.values();!(r=n.next()).done;)if(t(r.value)===e)return!0;return!1},e}();function E(e){var t=this;if(void 0===e&&(e={}),!(this instanceof E))return new E;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new C,this._blacklist=new C,this.tests=[],this.transforms=[],this.withMutation((function(){t.typeError(A.mixed.notType)})),(0,o.default)(e,"default")&&(this._defaultDefault=e.default),this._type=e.type||"mixed"}for(var I=E.prototype={__isYupSchema__:!0,constructor:E,clone:function(){var e=this;return this._mutate?this:(0,s.default)(this,(function(t){if((0,h.default)(t)&&t!==e)return t}))},label:function(e){var t=this.clone();return t._label=e,t},meta:function(e){if(0===arguments.length)return this._meta;var t=this.clone();return t._meta=(0,i.default)(t._meta||{},e),t},withMutation:function(e){var t=this._mutate;this._mutate=!0;var r=e(this);return this._mutate=t,r},concat:function(e){if(!e||e===this)return this;if(e._type!==this._type&&"mixed"!==this._type)throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+e._type);var t=(0,l.default)(e.clone(),this);return(0,o.default)(e,"_default")&&(t._default=e._default),t.tests=this.tests,t._exclusive=this._exclusive,t.withMutation((function(t){e.tests.forEach((function(e){t.test(e.OPTIONS)}))})),t},isType:function(e){return!(!this._nullable||null!==e)||(!this._typeCheck||this._typeCheck(e))},resolve:function(e){var t=this;if(t._conditions.length){var r=t._conditions;(t=t.clone())._conditions=[],t=(t=r.reduce((function(t,r){return r.resolve(t,e)}),t)).resolve(e)}return t},cast:function(e,t){void 0===t&&(t={});var r=this.resolve((0,i.default)({},t,{value:e})),n=r._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==r.isType(n)){var o=(0,f.default)(e),s=(0,f.default)(n);throw new TypeError("The value of "+(t.path||"field")+' could not be cast to a value that satisfies the schema type: "'+r._type+'". \n\nattempted value: '+o+" \n"+(s!==o?"result of cast: "+s:""))}return n},_cast:function(e){var t=this,r=void 0===e?e:this.transforms.reduce((function(r,n){return n.call(t,r,e)}),e);return void 0===r&&(0,o.default)(this,"_default")&&(r=this.default()),r},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=e,o=null!=t.originalValue?t.originalValue:e,s=this._option("strict",t),a=this._option("abortEarly",t),A=t.sync,c=t.path,l=this._label;s||(n=this._cast(n,(0,i.default)({assert:!1},t)));var h={value:n,path:c,schema:this,options:t,label:l,originalValue:o,sync:A},g=[];return this._typeError&&g.push(this._typeError(h)),this._whitelistError&&g.push(this._whitelistError(h)),this._blacklistError&&g.push(this._blacklistError(h)),(0,u.default)({validations:g,endEarly:a,value:n,path:c,sync:A}).then((function(e){return(0,u.default)({path:c,sync:A,value:e,endEarly:a,validations:r.tests.map((function(e){return e(h)}))})}))},validate:function(e,t){return void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,t)},validateSync:function(e,t){var r,n;if(void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,(0,i.default)({},t,{sync:!0})).then((function(e){return r=e})).catch((function(e){return n=e})),n)throw n;return r},isValid:function(e,t){return this.validate(e,t).then((function(){return!0})).catch((function(e){if("ValidationError"===e.name)return!1;throw e}))},isValidSync:function(e,t){try{return this.validateSync(e,t),!0}catch(e){if("ValidationError"===e.name)return!1;throw e}},getDefault:function(e){return void 0===e&&(e={}),this.resolve(e).default()},default:function(e){if(0===arguments.length){var t=(0,o.default)(this,"_default")?this._default:this._defaultDefault;return"function"==typeof t?t.call(this):(0,s.default)(t)}var r=this.clone();return r._default=e,r},strict:function(e){void 0===e&&(e=!0);var t=this.clone();return t._options.strict=e,t},_isPresent:function(e){return null!=e},required:function(e){return void 0===e&&(e=A.mixed.required),this.test({message:e,name:"required",exclusive:!0,test:function(e){return this.schema._isPresent(e)}})},notRequired:function(){var e=this.clone();return e.tests=e.tests.filter((function(e){return"required"!==e.OPTIONS.name})),e},nullable:function(e){void 0===e&&(e=!0);var t=this.clone();return t._nullable=e,t},transform:function(e){var t=this.clone();return t.transforms.push(e),t},test:function(){var e;if(void 0===(e=1===arguments.length?"function"==typeof(arguments.length<=0?void 0:arguments[0])?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:2===arguments.length?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message&&(e.message=A.mixed.default),"function"!=typeof e.test)throw new TypeError("`test` is a required parameters");var t=this.clone(),r=(0,g.default)(e),n=e.exclusive||e.name&&!0===t._exclusive[e.name];if(e.exclusive&&!e.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t._exclusive[e.name]=!!e.exclusive,t.tests=t.tests.filter((function(t){if(t.OPTIONS.name===e.name){if(n)return!1;if(t.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),t.tests.push(r),t},when:function(e,t){1===arguments.length&&(t=e,e=".");var r=this.clone(),n=[].concat(e).map((function(e){return new p.default(e)}));return n.forEach((function(e){e.isSibling&&r._deps.push(e.key)})),r._conditions.push(new c.default(n,t)),r},typeError:function(e){var t=this.clone();return t._typeError=(0,g.default)({message:e,name:"typeError",test:function(e){return!(void 0!==e&&!this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t},oneOf:function(e,t){void 0===t&&(t=A.mixed.oneOf);var r=this.clone();return e.forEach((function(e){r._whitelist.add(e),r._blacklist.delete(e)})),r._whitelistError=(0,g.default)({message:t,name:"oneOf",test:function(e){if(void 0===e)return!0;var t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},notOneOf:function(e,t){void 0===t&&(t=A.mixed.notOneOf);var r=this.clone();return e.forEach((function(e){r._blacklist.add(e),r._whitelist.delete(e)})),r._blacklistError=(0,g.default)({message:t,name:"notOneOf",test:function(e){var t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},strip:function(e){void 0===e&&(e=!0);var t=this.clone();return t._strip=e,t},_option:function(e,t){return(0,o.default)(t,e)?t[e]:this._options[e]},describe:function(){var e=this.clone();return{type:e._type,meta:e._meta,label:e._label,tests:e.tests.map((function(e){return{name:e.OPTIONS.name,params:e.OPTIONS.params}})).filter((function(e,t,r){return r.findIndex((function(t){return t.name===e.name}))===t}))}}},m=["validate","validateSync"],y=function(){var e=m[w];I[e+"At"]=function(t,r,n){void 0===n&&(n={});var o=(0,d.getIn)(this,t,r,n.context),s=o.parent,a=o.parentPath;return o.schema[e](s&&s[a],(0,i.default)({},n,{parent:s,path:t}))}},w=0;we(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function u(e){const t=new Map,r=c(e.fallbackExclusionList||[],[({name:e,reference:t})=>e,({name:e,reference:t})=>t]);for(const{name:e,reference:n}of r){let r=t.get(e);void 0===r&&t.set(e,r=new Set),r.add(n)}return Array.from(t).map(([e,t])=>[e,Array.from(t)])}function l(e){return c(e.fallbackPool||[],([e])=>e)}function h(e){const t=[];for(const[r,n]of c(e.packageRegistry,([e])=>null===e?"0":`1${e}`)){const e=[];t.push([r,e]);for(const[t,{packageLocation:i,packageDependencies:o,packagePeers:s,linkType:a,discardFromLookup:A}]of c(n,([e])=>null===e?"0":`1${e}`)){const n=[];null===r||null===t||o.has(r)||n.push([r,t]);for(const[e,t]of c(o.entries(),([e])=>e))n.push([e,t]);const u=s&&s.size>0?Array.from(s):void 0,l=A||void 0;e.push([t,{packageLocation:i,packageDependencies:n,packagePeers:u,linkType:a,discardFromLookup:l}])}}return t}function g(e){return c(e.blacklistedLocations||[],e=>e)}function f(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,fallbackExclusionList:u(e),fallbackPool:l(e),locationBlacklistData:g(e),packageRegistryData:h(e)}}var p=r(422),d=r.n(p);function C(e,t){return[e?`${e}\n`:"","/* eslint-disable */\n\n","try {\n"," Object.freeze({}).detectStrictMode = true;\n","} catch (error) {\n"," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n","}\n","\n","var __non_webpack_module__ = module;\n","\n","function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n",t.replace(/^/gm," "),"}\n","\n",d.a].join("")}function E(e){return JSON.stringify(e,null,2)}function I(e){const t=function(e){return[`return hydrateRuntimeState(${A(e)}, {basePath: basePath || __dirname});\n`].join("")}(f(e));return C(e.shebang,t)}function m(e){const t=f(e),r=(n=e.dataLocation,["var path = require('path');\n",`var dataLocation = path.resolve(__dirname, ${JSON.stringify(n)});\n`,"return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n"].join(""));var n;const i=C(e.shebang,r);return{dataFile:E(t),loaderFile:i}}var y=r(9),w=(r(12),r(14)),B=r(4);function Q(e,{basePath:t}){const r=B.d.toPortablePath(t),n=null!==e.ignorePatternData?new RegExp(e.ignorePatternData):null,i=new Map(e.packageRegistryData.map(([e,t])=>[e,new Map(t.map(([e,t])=>[e,{packageLocation:B.e.resolve(r,t.packageLocation),packageDependencies:new Map(t.packageDependencies),packagePeers:new Set(t.packagePeers),linkType:t.linkType,discardFromLookup:t.discardFromLookup||!1}]))])),o=new Map,s=new Set;for(const[t,r]of e.packageRegistryData)for(const[e,n]of r){if(null===t!=(null===e))throw new Error("Assertion failed: The name and reference should be null, or neither should");if(n.discardFromLookup)continue;const r={name:t,reference:e};o.set(n.packageLocation,r),s.add(n.packageLocation.length)}for(const t of e.locationBlacklistData)o.set(t,null);const a=new Map(e.fallbackExclusionList.map(([e,t])=>[e,new Set(t)])),A=new Map(e.fallbackPool),c=e.dependencyTreeRoots,u=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:A,ignorePattern:n,packageLocationLengths:[...s].sort((e,t)=>t-e),packageLocatorsByLocations:o,packageRegistry:i}}var b,D=r(283),v=r(91);!function(e){e.API_ERROR="API_ERROR",e.BLACKLISTED="BLACKLISTED",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED"}(b||(b={}));const S=new Set([b.BLACKLISTED,b.BUILTIN_NODE_RESOLUTION_FAILED,b.MISSING_DEPENDENCY,b.MISSING_PEER_DEPENDENCY,b.QUALIFIED_PATH_RESOLUTION_FAILED,b.UNDECLARED_DEPENDENCY]);function k(e,t,r={}){const n=S.has(e)?"MODULE_NOT_FOUND":e,i={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...i,value:n},pnpCode:{...i,value:e},data:{...i,value:r}})}function x(e,t){const r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),i=new Set(v.Module.builtinModules||Object.keys(process.binding("natives"))),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^\.{0,2}\//,a=/\/$/,A={name:null,reference:null},c=[],u=new Set;if(!0===e.enableTopLevelFallback&&c.push(A),!1!==t.compatibilityMode)for(const t of["react-scripts","gatsby"]){const r=e.packageRegistry.get(t);if(r)for(const e of r.keys()){if(null===e)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:t,reference:e})}}const{ignorePattern:l,packageRegistry:h,packageLocatorsByLocations:g,packageLocationLengths:f}=e;function p(e,t){return{fn:e,args:t,error:null,result:null}}function d(e,r){if(!1===t.allowDebug)return r;if(Number.isFinite(n)){if(n>=2)return(...t)=>{const n=p(e,t);try{return n.result=r(...t)}catch(e){throw n.error=e}finally{console.trace(n)}};if(n>=1)return(...t)=>{try{return r(...t)}catch(r){const n=p(e,t);throw n.error=r,console.trace(n),r}}}return r}function C(e){const t=m(e);if(!t)throw k(b.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return t}function E(t){if(null===t.name)return!0;for(const r of e.dependencyTreeRoots)if(r.name===t.name&&r.reference===t.reference)return!0;return!1}function I(e,t){return t.endsWith("/")&&(t=B.e.join(t,Object(B.f)("internal.js"))),v.Module._resolveFilename(e,function(e){const t=new v.Module(e,null);return t.filename=e,t.paths=v.Module._nodeModulePaths(e),t}(B.d.fromPortablePath(t)),!1,{plugnplay:!1})}function m({name:e,reference:t}){const r=h.get(e);if(!r)return null;const n=r.get(t);return n||null}function y(e,t){const r=new Map,n=t=>{const i=function({name:e,reference:t}){const r=[];for(const[n,i]of h)if(null!==n)for(const[o,s]of i){if(null===o)continue;s.packageDependencies.get(e)===t&&(n===e&&o===t||r.push({name:n,reference:o}))}return r}(t);for(const t of i){if(C(t).packagePeers.has(e))n(t);else{let e=r.get(t.name);void 0===e&&r.set(t.name,e=new Set),e.add(t.reference)}}};n(t);const i=[];for(const e of[...r.keys()].sort())for(const t of[...r.get(e)].sort())i.push({name:e,reference:t});return i}function w(t){let r=(n=B.e.relative(e.basePath,t),B.d.toPortablePath(n));var n;r.match(s)||(r=`./${r}`),t.match(a)&&!r.endsWith("/")&&(r=`${r}/`);let i=0;for(;ir.length;)i+=1;for(let e=i;eE(e))?k(b.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e}):k(b.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e})}else void 0===a&&(l=E(o)?k(b.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t}):k(b.UNDECLARED_DEPENDENCY,`${o.name} tried to access ${t}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t}));if(null==a){if(null===A||null===l)throw l||new Error("Assertion failed: Expected an error to have been set");a=A;const e=l.message.replace(/\n.*/g,"");l.message=e,u.has(e)||(u.add(e),process.emitWarning(l))}const f=Array.isArray(a)?{name:a[0],reference:a[1]}:{name:t,reference:a},p=C(f);if(!p.packageLocation)throw k(b.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${f.name}@${f.reference} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,dependencyLocator:Object.assign({},f)});const d=B.e.resolve(e.basePath,p.packageLocation);h=i?B.e.resolve(d,i):d}else{if(B.e.isAbsolute(n))h=B.e.normalize(n);else{if(!s)throw k(b.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});h=s.match(a)?B.e.normalize(B.e.resolve(s,n)):B.e.normalize(B.e.resolve(B.e.dirname(s),n))}w(h)}return B.e.normalize(h)}function S(e,{extensions:r=Object.keys(v.Module._extensions)}={}){const n=[],i=function e(r,n,{extensions:i}){for(;;){let o;try{n.push(r),o=t.fakeFs.statSync(r)}catch(e){}if(o&&!o.isDirectory())return t.fakeFs.realpathSync(r);if(o&&o.isDirectory()){let o,s;try{o=JSON.parse(t.fakeFs.readFileSync(B.e.join(r,Object(B.f)("package.json")),"utf8"))}catch(e){}if(o&&o.main&&(s=B.e.resolve(r,o.main)),s&&s!==r){const t=e(s,n,{extensions:i});if(null!==t)return t}}const s=i.map(e=>`${r}${e}`).find(e=>(n.push(e),t.fakeFs.existsSync(e)));if(s)return s;if(o&&o.isDirectory()){const e=i.map(e=>B.e.format({dir:r,name:Object(B.f)("index"),ext:e})).find(e=>(n.push(e),t.fakeFs.existsSync(e)));if(e)return e}return null}}(e,n,{extensions:r});if(i)return B.e.normalize(i);throw k(b.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${e}\n${n.map(e=>`Rejected candidate: ${e}\n`).join("")}`,{unqualifiedPath:e})}return{VERSIONS:{std:3,resolveVirtual:1},topLevel:A,getLocator:(e,t)=>Array.isArray(t)?{name:t[0],reference:t[1]}:{name:e,reference:t},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getPackageInformation:e=>{const t=m(e);if(null===t)return null;const r=B.d.fromPortablePath(t.packageLocation);return{...t,packageLocation:r}},findPackageLocator:e=>w(B.d.toPortablePath(e)),resolveToUnqualified:d("resolveToUnqualified",(e,t,r)=>{const n=null!==t?B.d.toPortablePath(t):null,i=Q(B.d.toPortablePath(e),n,r);return null===i?null:B.d.fromPortablePath(i)}),resolveUnqualified:d("resolveUnqualified",(e,t)=>B.d.fromPortablePath(S(B.d.toPortablePath(e),t))),resolveRequest:d("resolveRequest",(e,t,r)=>{const n=null!==t?B.d.toPortablePath(t):null,i=function(e,t,{considerBuiltins:r,extensions:n}={}){const i=Q(e,t,{considerBuiltins:r});if(null===i)return null;try{return S(i,{extensions:n})}catch(r){throw"QUALIFIED_PATH_RESOLUTION_FAILED"===r.pnpCode&&Object.assign(r.data,{request:e,issuer:t}),r}}(B.d.toPortablePath(e),n,r);return null===i?null:B.d.fromPortablePath(i)}),resolveVirtual:d("resolveVirtual",e=>{const t=function(e){const t=B.e.normalize(e),r=D.a.resolveVirtual(t);return r!==t?r:null}(B.d.toPortablePath(e));return null!==t?B.d.fromPortablePath(t):null})}}Object(w.promisify)(y.readFile);const F=(e,t,r)=>{return x(Q(f(e),{basePath:t}),{fakeFs:r,pnpapiResolution:B.d.join(t,".pnp.js")})};r.d(t,"a",(function(){return I})),r.d(t,"b",(function(){return m})),r.d(t,"c",(function(){return F}))},function(e,t,r){"use strict";var n=r(222),i=r(80),o=r(54),s=r(56),a=r(223),A=r(224),c=r(132);r.d(t,"a",(function(){return u}));var u=function(e){if(e&&"function"==typeof e[s.a])return u=e,function(e){var t=u[s.a]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(Object(a.a)(e))return Object(n.a)(e);if(Object(A.a)(e))return r=e,function(e){return r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.a),e};if(e&&"function"==typeof e[o.a])return t=e,function(e){for(var r=t[o.a]();;){var n=r.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return"function"==typeof r.return&&e.add((function(){r.return&&r.return()})),e};var t,r,u,l=Object(c.a)(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+l+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},function(e,t,r){"use strict";function n(e){return null==e}e.exports.isNothing=n,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:n(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n="";for(r=0;r{const n=A++;i(n,t),a[e]=n,s[n]=t,o[n]=new RegExp(t,r?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${s[a.NUMERICIDENTIFIER]})\\.`+`(${s[a.NUMERICIDENTIFIER]})\\.`+`(${s[a.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${s[a.NUMERICIDENTIFIERLOOSE]})\\.`+`(${s[a.NUMERICIDENTIFIERLOOSE]})\\.`+`(${s[a.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${s[a.NUMERICIDENTIFIER]}|${s[a.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${s[a.NUMERICIDENTIFIERLOOSE]}|${s[a.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${s[a.PRERELEASEIDENTIFIER]}(?:\\.${s[a.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${s[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[a.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${s[a.BUILDIDENTIFIER]}(?:\\.${s[a.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${s[a.MAINVERSION]}${s[a.PRERELEASE]}?${s[a.BUILD]}?`),c("FULL",`^${s[a.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${s[a.MAINVERSIONLOOSE]}${s[a.PRERELEASELOOSE]}?${s[a.BUILD]}?`),c("LOOSE",`^${s[a.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${s[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${s[a.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${s[a.XRANGEIDENTIFIER]})`+`(?:\\.(${s[a.XRANGEIDENTIFIER]})`+`(?:\\.(${s[a.XRANGEIDENTIFIER]})`+`(?:${s[a.PRERELEASE]})?${s[a.BUILD]}?`+")?)?"),c("XRANGEPLAINLOOSE",`[v=\\s]*(${s[a.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${s[a.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${s[a.XRANGEIDENTIFIERLOOSE]})`+`(?:${s[a.PRERELEASELOOSE]})?${s[a.BUILD]}?`+")?)?"),c("XRANGE",`^${s[a.GTLT]}\\s*${s[a.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${s[a.GTLT]}\\s*${s[a.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})`+`(?:\\.(\\d{1,${n}}))?`+`(?:\\.(\\d{1,${n}}))?`+"(?:$|[^\\d])"),c("COERCERTL",s[a.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${s[a.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${s[a.LONETILDE]}${s[a.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${s[a.LONETILDE]}${s[a.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${s[a.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${s[a.LONECARET]}${s[a.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${s[a.LONECARET]}${s[a.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${s[a.GTLT]}\\s*(${s[a.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${s[a.GTLT]}\\s*(${s[a.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${s[a.GTLT]}\\s*(${s[a.LOOSEPLAIN]}|${s[a.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${s[a.XRANGEPLAIN]})`+"\\s+-\\s+"+`(${s[a.XRANGEPLAIN]})`+"\\s*$"),c("HYPHENRANGELOOSE",`^\\s*(${s[a.XRANGEPLAINLOOSE]})`+"\\s+-\\s+"+`(${s[a.XRANGEPLAINLOOSE]})`+"\\s*$"),c("STAR","(<|>)?=?\\s*\\*")},function(e,t,r){const{MAX_LENGTH:n}=r(167),{re:i,t:o}=r(110),s=r(39);e.exports=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof s)return e;if("string"!=typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new s(e,t)}catch(e){return null}}},function(e,t){function r(){return e.exports=r=Object.assign||function(e){for(var t=1;t=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=o(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s},function(e,t,r){"use strict";const n={};function i(e,t,r){r||(r=Error);class i extends r{constructor(e,r,n){super(function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(e,r,n))}}i.prototype.name=r.name,i.prototype.code=e,n[e]=i}function o(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>String(e)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:2===r?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}i("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),i("ERR_INVALID_ARG_TYPE",(function(e,t,r){let n;var i,s;let a;if("string"==typeof t&&(i="not ",t.substr(!s||s<0?0:+s,i.length)===i)?(n="must not be",t=t.replace(/^not /,"")):n="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))a=`The ${e} ${n} ${o(t,"type")}`;else{a=`The "${e}" ${function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument"} ${n} ${o(t,"type")}`}return a+=`. Received type ${typeof r}`}),TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=n},function(e,t,r){"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(398),o=r(402);r(92)(c,i);for(var s=n(o.prototype),a=0;a{for(const t of e)t.semver.prerelease&&(t.semver.prerelease=[]);return e.every(e=>e.test(o))})}},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(1),i=r(6);function o(){return function(e){return e.lift(new s(e))}}var s=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new a(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),a=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.b(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.a)},function(e,t,r){"use strict";r.d(t,"a",(function(){return u}));var n=r(1),i=r(19),o=r(217),s=r(18),a=r(210),A=r(58),c=r(221),u=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=n,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=r<1?1:r,r===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return n.b(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var r=this._events;r.push(t),r.length>this._bufferSize&&r.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new l(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._infiniteTimeWindow,n=r?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=n.length;if(this.closed)throw new A.a;if(this.isStopped||this.hasError?t=s.a.EMPTY:(this.observers.push(e),t=new c.a(this,e)),i&&e.add(e=new a.a(e,i)),r)for(var u=0;ut&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.a),l=function(){return function(e,t){this.time=e,this.value=t}}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(8);function i(e,t){return t?new n.a((function(r){return t.schedule(o,0,{error:e,subscriber:r})})):new n.a((function(t){return t.error(e)}))}function o(e){var t=e.error;e.subscriber.error(t)}},function(e,t,r){"use strict";r.d(t,"b",(function(){return u})),r.d(t,"a",(function(){return l}));var n=r(1),i=r(27),o=r(20),s=r(11),a=r(10),A=r(70),c={};function u(){for(var e=[],t=0;tthis.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),p=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.parent=r,i.observable=n,i.stillUnsubscribed=!0,i.buffer=[],i.isComplete=!1,i}return n.b(t,e),t.prototype[c.a]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return Object(A.a)(this,this.observable,this,t)},t}(a.a)},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));const n="2.0.0-rc.36"},function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(17),i=r(24);const o=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],s=80,a=new Set([n.a.FETCH_NOT_CACHED,n.a.UNUSED_CACHE_ENTRY]),A=5,c=process.env.GITHUB_ACTIONS?{start:e=>`::group::${e}\n`,end:e=>"::endgroup::\n"}:process.env.TRAVIS?{start:e=>`travis_fold:start:${e}\n`,end:e=>`travis_fold:end:${e}\n`}:process.env.GITLAB_CI?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K${e}\n`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K`}:null,u=new Date,l=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM),h=(e=>e)({patrick:{date:[17,3],chars:["🍀","🌱"],size:40},simba:{date:[19,7],chars:["🌟","✨"],size:40},jack:{date:[31,10],chars:["🎃","🦇"],size:40},hogsfather:{date:[31,12],chars:["🎉","🎄"],size:40},default:{chars:["=","-"],size:80}}),g=l&&Object.keys(h).find(e=>{const t=h[e];return!t.date||t.date[0]===u.getDate()&&t.date[1]===u.getMonth()+1})||"default";class f extends i.a{constructor({configuration:e,stdout:t,json:r=!1,includeFooter:n=!0,includeLogs:i=!r,includeInfos:o=i,includeWarnings:s=i,forgettableBufferSize:c=A,forgettableNames:u=new Set}){super(),this.cacheHitCount=0,this.cacheMissCount=0,this.warningCount=0,this.errorCount=0,this.startTime=Date.now(),this.indent=0,this.progress=new Map,this.progressTime=0,this.progressFrame=0,this.progressTimeout=null,this.forgettableLines=[],this.configuration=e,this.forgettableBufferSize=c,this.forgettableNames=new Set([...u,...a]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=s,this.json=r,this.stdout=t}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.cacheMissCount+=1,void 0===t||this.configuration.get("preferAggregateCacheInfo")||this.reportInfo(n.a.FETCH_NOT_CACHED,t)}startTimerSync(e,t){this.reportInfo(null,`┌ ${e}`);const r=Date.now();this.indent+=1;try{return t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const e=Date.now();this.indent-=1,this.configuration.get("enableTimers")&&e-r>200?this.reportInfo(null,`└ Completed in ${this.formatTiming(e-r)}`):this.reportInfo(null,"└ Completed")}}async startTimerPromise(e,t){this.reportInfo(null,`┌ ${e}`),null!==c&&this.stdout.write(c.start(e));const r=Date.now();this.indent+=1;try{return await t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const t=Date.now();this.indent-=1,null!==c&&this.stdout.write(c.end(e)),this.configuration.get("enableTimers")&&t-r>200?this.reportInfo(null,`└ Completed in ${this.formatTiming(t-r)}`):this.reportInfo(null,"└ Completed")}}async startCacheReport(e){const t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(e){throw this.reportExceptionOnce(e),e}finally{null!==t&&this.reportCacheChanges(t)}}reportSeparator(){0===this.indent?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(this.includeInfos)if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(t),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(e,this.forgettableLines)}else this.writeLine(`${this.configuration.format("➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`);else this.writeLineWithForgettableReset(`${this.configuration.format("➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`)}reportWarning(e,t){this.warningCount+=1,this.includeWarnings&&(this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","yellowBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`))}reportError(e,t){this.errorCount+=1,this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`)}reportProgress(e){let t=!1;const r=Promise.resolve().then(async()=>{const r={progress:0,title:void 0};this.progress.set(e,r),this.refreshProgress(-1);for await(const{progress:n,title:i}of e)t||r.progress===n&&r.title===i||(r.progress=n,r.title=i,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress(1))};return{...r,stop:n}}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";e=this.errorCount>0?"Failed with errors":this.warningCount>0?"Done with warnings":"Done";const t=this.formatTiming(Date.now()-this.startTime),r=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(n.a.UNNAMED,r):this.warningCount>0?this.reportWarning(n.a.UNNAMED,r):this.reportInfo(n.a.UNNAMED,r)}writeLine(e){this.clearProgress({clear:!0}),this.stdout.write(`${e}\n`),this.writeProgress()}writeLineWithForgettableReset(e){this.forgettableLines=[],this.writeLine(e)}writeLines(e,t){this.clearProgress({delta:t.length});for(const r of t)this.stdout.write(`${this.configuration.format("➤","blueBright")} ${this.formatName(e)}: ${this.formatIndent()}${r}\n`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){const r=this.cacheHitCount-e,i=this.cacheMissCount-t;if(0===r&&0===i)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:1===this.cacheHitCount?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:1===this.cacheMissCount&&(o+=", one had to be fetched"):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:1===this.cacheMissCount&&(o+=" - one package had to be fetched"),this.reportInfo(n.a.FETCH_NOT_CACHED,o)}clearProgress({delta:e=0,clear:t=!1}){this.configuration.get("enableProgressBars")&&!this.json&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write("[0J"))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json)return;if(null!==this.progressTimeout&&clearTimeout(this.progressTimeout),this.progressTimeout=null,0===this.progress.size)return;const e=Date.now();e-this.progressTime>s&&(this.progressFrame=(this.progressFrame+1)%o.length,this.progressTime=e);const t=o[this.progressFrame],r=this.configuration.get("progressBarStyle")||g;if(!Object.prototype.hasOwnProperty.call(h,r))throw new Error("Assertion failed: Invalid progress bar style");const n=h[r],i="➤ YN0000: ┌ ".length,a=Math.max(0,Math.min(process.stdout.columns-i,80)),A=Math.floor(n.size*a/80);for(const{progress:e}of this.progress.values()){const r=A*e,i=n.chars[0].repeat(r),o=n.chars[1].repeat(A-r);this.stdout.write(`${this.configuration.format("➤","blueBright")} ${this.formatName(null)}: ${t} ${i}${o}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},1e3/60)}refreshProgress(e=0){this.clearProgress({delta:e}),this.writeProgress()}formatTiming(e){return e<6e4?`${Math.round(e/10)/100}s`:`${Math.round(e/600)/100}m`}formatName(e){const t=`YN${(null===e?0:e).toString(10).padStart(4,"0")}`;return this.json||null!==e?t:this.configuration.format(t,"grey")}formatNameWithHyperlink(e){const t=this.formatName(e);return this.configuration.get("enableHyperlinks")?null===e||e===n.a.UNNAMED?t:`]8;;${`https://yarnpkg.com/advanced/error-codes#${t}---${n.a[e]}`.toLowerCase()}\\${t}]8;;\\`:t}formatIndent(){return"│ ".repeat(this.indent)}}},function(e,t,r){"use strict";function n(e){return null!==e&&"object"==typeof e}r.d(t,"a",(function(){return n}))},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(6);function i(e){for(;e;){var t=e,r=t.closed,i=t.destination,o=t.isStopped;if(r||o)return!1;e=i&&i instanceof n.a?i:null}return!0}},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(8),i=r(18);function o(e,t){return new n.a((function(r){var n=new i.a,o=0;return n.add(t.schedule((function(){o!==e.length?(r.next(e[o++]),r.closed||n.add(this.schedule())):r.complete()}))),n}))}},function(e,t,r){"use strict";r.r(t);var n=r(29),i=r(4),o=r(3),s=r(15),a=r.n(s),A=r(17),c=r(90),u=r(0),l=r(219),h=r(106),g=r(2),f=r(37),p=r(121);class d{constructor(e){this.opts=e,this.packageRegistry=new Map,this.blacklistedPaths=new Set,this.opts=e}async installPackage(e,t){const r=u.structUtils.requirableIdent(e),n=e.reference,o=e.peerDependencies.size>0&&!u.structUtils.isVirtualLocator(e)&&!this.opts.project.tryWorkspaceByLocator(e),s=o?null:await f.a.tryFind(t.prefixPath,{baseFs:t.packageFs}),a=o?[]:await this.getBuildScripts(e,s,t);a.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(A.a.DISABLED_BUILD_SCRIPTS,`${u.structUtils.prettyLocator(this.opts.project.configuration,e)} lists build scripts, but all build scripts have been disabled.`),a.length=0),a.length>0&&e.linkType!==p.a.HARD&&!this.opts.project.tryWorkspaceByLocator(e)&&(this.opts.report.reportWarningOnce(A.a.SOFT_LINK_BUILD,`${u.structUtils.prettyLocator(this.opts.project.configuration,e)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),a.length=0);const c=this.opts.project.getDependencyMeta(e,e.version);a.length>0&&c&&!1===c.built&&(this.opts.report.reportInfoOnce(A.a.BUILD_DISABLED,`${u.structUtils.prettyLocator(this.opts.project.configuration,e)} lists build scripts, but its build has been explicitly disabled through configuration.`),a.length=0);const l=o||e.linkType===p.a.SOFT?t.packageFs:await this.transformPackage(e,s,t,c,{hasBuildScripts:a.length>0});if(i.e.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);const h=i.e.resolve(l.getRealPath(),t.prefixPath),g=this.normalizeDirectoryPath(h),d=new Map,C=new Set;if(u.structUtils.isVirtualLocator(e))for(const t of e.peerDependencies.values())d.set(u.structUtils.requirableIdent(t),null),C.add(u.structUtils.stringifyIdent(t));return u.miscUtils.getMapWithDefault(this.packageRegistry,r).set(n,{packageLocation:g,packageDependencies:d,packagePeers:C,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),o&&this.blacklistedPaths.add(g),{packageLocation:h,buildDirective:a.length>0?a:null}}async attachInternalDependencies(e,t){const r=this.getPackageInformation(e);for(const[e,n]of t){const t=u.structUtils.areIdentsEqual(e,n)?n.reference:[u.structUtils.requirableIdent(n),n.reference];r.packageDependencies.set(u.structUtils.requirableIdent(e),t)}}async attachExternalDependents(e,t){for(const r of t){this.getDiskInformation(r).packageDependencies.set(u.structUtils.requirableIdent(e),e.reference)}}async finalizeInstall(){this.trimBlacklistedPackages(),this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));const e=this.opts.project.configuration.get("pnpFallbackMode"),t=this.blacklistedPaths,r=this.opts.project.workspaces.map(({anchoredLocator:e})=>({name:u.structUtils.requirableIdent(e),reference:e.reference})),n="none"!==e,i=[],o=this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator).packageDependencies,s=u.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),a=this.packageRegistry,A=this.opts.project.configuration.get("pnpShebang");if("dependencies-only"===e)for(const e of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(e)&&i.push({name:u.structUtils.requirableIdent(e),reference:e.reference});return await this.finalizeInstallWithPnp({blacklistedLocations:t,dependencyTreeRoots:r,enableTopLevelFallback:n,fallbackExclusionList:i,fallbackPool:o,ignorePattern:s,packageRegistry:a,shebang:A})}getPackageInformation(e){const t=u.structUtils.requirableIdent(e),r=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${u.structUtils.prettyIdent(this.opts.project.configuration,e)})`);const i=n.get(r);if(!i)throw new Error(`Assertion failed: The package information should have been available (for ${u.structUtils.prettyLocator(this.opts.project.configuration,e)})`);return i}getDiskInformation(e){const t=u.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),r=this.normalizeDirectoryPath(e);return u.miscUtils.getFactoryWithDefault(t,r,()=>({packageLocation:r,packageDependencies:new Map,packagePeers:new Set,linkType:p.a.SOFT,discardFromLookup:!1}))}trimBlacklistedPackages(){for(const e of this.packageRegistry.values())for(const[t,r]of e)this.blacklistedPaths.has(r.packageLocation)&&e.delete(t)}normalizeDirectoryPath(e){let t=i.e.relative(this.opts.project.cwd,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}}const C=new Set([u.structUtils.makeIdent(null,"nan").identHash,u.structUtils.makeIdent(null,"node-gyp").identHash,u.structUtils.makeIdent(null,"node-pre-gyp").identHash,u.structUtils.makeIdent(null,"node-addon-api").identHash,u.structUtils.makeIdent(null,"fsevents").identHash]),E=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);class I{constructor(){this.mode="strict"}supportsPackage(e,t){return"pnp"===t.project.configuration.get("nodeLinker")&&t.project.configuration.get("pnpMode")===this.mode}async findPackageLocation(e,t){const r=v(t.project).main;if(!o.xfs.existsSync(r))throw new g.UsageError(`The project in ${t.project.cwd}/package.json doesn't seem to have been installed - running an install there might help`);const n=u.miscUtils.dynamicRequireNoCache(r),s={name:u.structUtils.requirableIdent(e),reference:e.reference},a=n.getPackageInformation(s);if(!a)throw new g.UsageError(`Couldn't find ${u.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return i.d.toPortablePath(a.packageLocation)}async findPackageLocator(e,t){const n=v(t.project).main;if(!o.xfs.existsSync(n))return null;const s=i.d.fromPortablePath(n),a=u.miscUtils.dynamicRequire(s);delete r.c[s];const A=a.findPackageLocator(i.d.fromPortablePath(e));return A?u.structUtils.makeLocator(u.structUtils.parseIdent(A.name),A.reference):null}makeInstaller(e){return new m(e)}}class m extends d{constructor(){super(...arguments),this.mode="strict",this.unpluggedPaths=new Set}async getBuildScripts(e,t,r){if(null===t)return[];const n=[];for(const e of["preinstall","install","postinstall"])t.scripts.has(e)&&n.push([c.a.SCRIPT,e]);const o=i.e.join(r.prefixPath,Object(i.f)("binding.gyp"));return!t.scripts.has("install")&&r.packageFs.existsSync(o)&&n.push([c.a.SHELLCODE,"node-gyp rebuild"]),n}async transformPackage(e,t,r,n,{hasBuildScripts:i}){return this.isUnplugged(e,t,r,n,{hasBuildScripts:i})?this.unplugPackage(e,r.packageFs):r.packageFs}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=v(this.opts.project),r=this.opts.project.configuration.get("pnpDataPath");if(await o.xfs.removePromise(t.other),"pnp"!==this.opts.project.configuration.get("nodeLinker"))return await o.xfs.removePromise(t.main),void await o.xfs.removePromise(r);const n=await this.locateNodeModules();if(n.length>0){this.opts.report.reportWarning(A.a.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(const e of n)await o.xfs.removePromise(e)}if(this.opts.project.configuration.get("pnpEnableInlining")){const n=Object(h.a)(e);await o.xfs.changeFilePromise(t.main,n,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.removePromise(r)}else{const n=i.e.relative(i.e.dirname(t.main),r),{dataFile:s,loaderFile:a}=Object(h.b)({...e,dataLocation:n});await o.xfs.changeFilePromise(t.main,a,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.changeFilePromise(r,s,{automaticNewlines:!0}),await o.xfs.chmodPromise(r,420)}const s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(0===this.unpluggedPaths.size)await o.xfs.removePromise(s);else for(const e of await o.xfs.readdirPromise(s)){const t=i.e.resolve(s,e);this.unpluggedPaths.has(t)||await o.xfs.removePromise(t)}}async locateNodeModules(){const e=[];for(const t of this.opts.project.workspaces){const r=i.e.join(t.cwd,Object(i.f)("node_modules"));if(!o.xfs.existsSync(r))continue;const n=await o.xfs.readdirPromise(r,{withFileTypes:!0}),s=n.filter(e=>!e.isDirectory()||".bin"===e.name||!e.name.startsWith("."));if(s.length===n.length)e.push(r);else for(const t of s)e.push(i.e.join(r,t.name))}return e}getUnpluggedPath(e){return i.e.resolve(this.opts.project.configuration.get("pnpUnpluggedFolder"),u.structUtils.slugifyLocator(e))}async unplugPackage(e,t){const r=this.getUnpluggedPath(e);return this.unpluggedPaths.add(r),await o.xfs.mkdirpPromise(r),await o.xfs.copyPromise(r,i.b.dot,{baseFs:t,overwrite:!1}),new l.a(r)}isUnplugged(e,t,r,n,{hasBuildScripts:i}){return void 0!==n.unplugged?n.unplugged:!!C.has(e.identHash)||(null!==t&&null!==t.preferUnplugged?t.preferUnplugged:!(!i&&!r.packageFs.getExtractHint({relevantExtensions:E})))}}var y=r(1),w=r(7),B=r(410),Q=r(319),b=r(131);class D extends w.BaseCommand{constructor(){super(...arguments),this.patterns=[]}async execute(){const e=await n.a.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await B.a.find(e,this.context.cwd),i=await Q.a.find(e);if(!r)throw new w.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=t.topLevelWorkspace;for(const e of this.patterns){const t=u.structUtils.parseDescriptor(e);o.manifest.ensureDependencyMeta(t).unplugged=!0}return await o.persistManifest(),(await b.a.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:i,report:e})})).exitCode()}}D.usage=g.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the specified selectors to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `virtualFolder`.\n\n Unpacking a package isn't advised as a general tool because it makes it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n The unplug command sets a flag that's persisted in your top-level `package.json` through the `dependenciesMeta` field. As such, to undo its effects, just revert the changes made to the manifest and run `yarn install`.\n ",examples:[["Unplug lodash","yarn unplug lodash"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"]]}),Object(y.a)([g.Command.Rest()],D.prototype,"patterns",void 0),Object(y.a)([g.Command.Path("unplug")],D.prototype,"execute",null),r.d(t,"getPnpPath",(function(){return v})),r.d(t,"quotePathIfNeeded",(function(){return S})),r.d(t,"AbstractPnpInstaller",(function(){return d})),r.d(t,"PnpInstaller",(function(){return m})),r.d(t,"PnpLinker",(function(){return I}));const v=e=>{let t,r;return"module"===e.topLevelWorkspace.manifest.type?(t=".pnp.cjs",r=".pnp.js"):(t=".pnp.js",r=".pnp.cjs"),{main:i.e.join(e.cwd,t),other:i.e.join(e.cwd,r)}},S=e=>/\s/.test(e)?JSON.stringify(e):e;const k={hooks:{populateYarnPaths:async function(e,t){t(v(e).main),t(v(e).other),t(e.configuration.get("pnpDataPath")),t(e.configuration.get("pnpUnpluggedFolder"))},setupScriptEnvironment:async function(e,t,r){const n=v(e).main,s=`--require ${S(i.d.fromPortablePath(n))}`;if(n.includes(" ")&&a.a.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(o.xfs.existsSync(n)){let e=t.NODE_OPTIONS||"";const r=/\s*--require\s+\S*\.pnp\.c?js\s*/g;e=(e=e.replace(r," ").trim())?`${s} ${e}`:s,t.NODE_OPTIONS=e}}},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:n.f.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:n.f.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:n.f.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:n.f.STRING,default:[],isArray:!0},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:n.f.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:n.f.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:n.f.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:n.f.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[I],commands:[D]};t.default=k},function(e,t,r){"use strict";var n=r(1),i=1,o=function(){return Promise.resolve()}(),s={};function a(e){return e in s&&(delete s[e],!0)}var A=function(e){var t=i++;return s[t]=!0,o.then((function(){return a(t)&&e()})),t},c=function(e){a(e)},u=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.b(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=A(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(c(r),t.scheduled=void 0)},t}(r(73).a),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.b(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n{for(const n of t){const t=f.e.resolve(e.cwd,n),i=f.e.join("package",n),o=await p.xfs.lstatPromise(t),s={name:i,mtime:new Date(315532800)};let a,A;const c=new Promise((e,t)=>{a=e,A=t}),u=e=>{e?A(e):a()};if(o.isFile()){let i;i="package.json"===n?Buffer.from(JSON.stringify(await k(e),null,2)):await p.xfs.readFilePromise(t),r.entry({...s,type:"file"},i,u)}else o.isSymbolicLink()&&r.entry({...s,type:"symlink",linkname:await p.xfs.readlinkPromise(t)},u);await c}r.finalize()});const n=Object(B.createGzip)();return r.pipe(n),n}async function k(e){const t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t),t}async function x(e){const t=e.project,r=t.configuration,n={accept:[],reject:[]};for(const e of b)n.reject.push(e);for(const e of Q)n.accept.push(e);n.reject.push(r.get("rcFilename"));const i=t=>{if(null===t||!t.startsWith(`${e.cwd}/`))return;const r=f.e.relative(e.cwd,t),i=f.e.resolve(f.b.root,r);n.reject.push(i)};i(f.e.resolve(t.cwd,r.get("lockfileFilename"))),i(r.get("bstatePath")),i(r.get("cacheFolder")),i(r.get("globalFolder")),i(r.get("installStatePath")),i(r.get("virtualFolder")),i(r.get("yarnPath")),await r.triggerHook(e=>e.populateYarnPaths,t,e=>{i(e)});for(const r of t.workspaces){const t=f.e.relative(e.cwd,r.cwd);""===t||t.match(/^(\.\.)?\//)||n.reject.push(`/${t}`)}const o={accept:[],reject:[]};e.manifest.publishConfig&&e.manifest.publishConfig.main?o.accept.push(f.e.resolve(f.b.root,e.manifest.publishConfig.main)):e.manifest.main&&o.accept.push(f.e.resolve(f.b.root,e.manifest.main)),e.manifest.publishConfig&&e.manifest.publishConfig.module?o.accept.push(f.e.resolve(f.b.root,e.manifest.publishConfig.module)):e.manifest.module&&o.accept.push(f.e.resolve(f.b.root,e.manifest.module));const s=null!==e.manifest.files;if(s){o.reject.push("/*");for(const t of e.manifest.files)M(o.accept,t,{cwd:f.b.root})}return await async function(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){const i=[],o=new C.a(e),s=[[f.b.root,[n]]];for(;s.length>0;){const[e,n]=s.pop(),a=await o.lstatPromise(e);if(!N(e,{globalList:r,ignoreLists:a.isDirectory()?null:n}))if(a.isDirectory()){const i=await o.readdirPromise(e);let a=!1,A=!1;if(!t||e!==f.b.root)for(const e of i)a=a||".gitignore"===e,A=A||".npmignore"===e;const c=A?await F(o,e,Object(f.f)(".npmignore")):a?await F(o,e,Object(f.f)(".gitignore")):null;let u=null!==c?[c].concat(n):n;N(e,{globalList:r,ignoreLists:n})&&(u=[...n,{accept:[],reject:["**/*"]}]);for(const t of i)s.push([f.e.resolve(e,t),u])}else i.push(f.e.relative(f.b.root,e))}return i.sort()}(e.cwd,{hasExplicitFileList:s,globalList:n,ignoreList:o})}async function F(e,t,r){const n={accept:[],reject:[]},i=await e.readFilePromise(f.e.join(t,r),"utf8");for(const e of i.split(/\n/g))M(n.reject,e,{cwd:t});return n}function M(e,t,{cwd:r}){const n=t.trim();""!==n&&"#"!==n[0]&&e.push(function(e,{cwd:t}){const r="!"===e[0];return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=f.e.resolve(t,e)),r&&(e=`!${e}`),e}(n,{cwd:r}))}function N(e,{globalList:t,ignoreLists:r}){if(R(e,t.accept))return!1;if(R(e,t.reject))return!0;if(null!==r)for(const t of r){if(R(e,t.accept))return!1;if(R(e,t.reject))return!0}return!1}function R(e,t){let r=t;const n=[];for(let e=0;e{await v(r,{report:t},async()=>{t.reportJson({base:r.cwd});const e=await x(r);for(const r of e)t.reportInfo(null,r),t.reportJson({location:r});if(!this.dryRun){const t=await S(r,e),i=p.xfs.createWriteStream(n);t.pipe(i),await new Promise(e=>{i.on("finish",e)})}}),this.dryRun||(t.reportInfo(s.a.UNNAMED,`Package archive generated in ${e.format(n,"magenta")}`),t.reportJson({output:n}))})).exitCode()}}L.usage=d.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `--install-if-needed` flag is set Yarn will run a preliminary `yarn install` if the package contains build scripts.\n\n If the `-n,--dry-run` flag is set the command will just print the file paths without actually generating the package archive.\n\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]}),Object(a.a)([d.Command.Boolean("--install-if-needed")],L.prototype,"installIfNeeded",void 0),Object(a.a)([d.Command.Boolean("-n,--dry-run")],L.prototype,"dryRun",void 0),Object(a.a)([d.Command.Boolean("--json")],L.prototype,"json",void 0),Object(a.a)([d.Command.String("--filename",{hidden:!1}),d.Command.String("-o,--out")],L.prototype,"out",void 0),Object(a.a)([d.Command.Path("pack")],L.prototype,"execute",null),r.d(t,"packUtils",(function(){return n}));const O=["dependencies","devDependencies","peerDependencies"],T={hooks:{beforeWorkspacePacking:(e,t)=>{t.publishConfig&&(t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));const r=e.project;for(const n of O)for(const a of e.manifest.getForScope(n).values()){const e=r.tryWorkspaceByDescriptor(a),A=i.structUtils.parseRange(a.range);if("workspace:"===A.protocol)if(null===e){if(null===r.tryWorkspaceByIdent(a))throw new o.b(s.a.WORKSPACE_NOT_FOUND,`${i.structUtils.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let r;r=i.structUtils.areDescriptorsEqual(a,e.anchoredDescriptor)||"*"===A.selector?e.manifest.version:A.selector,t[n][i.structUtils.stringifyIdent(a)]=r}}}},commands:[L]};t.default=T},function(e,t,r){"use strict";function n(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=n},function(e,t,r){"use strict";var n=r(109);e.exports=new n({include:[r(292)],implicit:[r(437),r(438)],explicit:[r(439),r(440),r(441),r(442)]})},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(248);t.CancelError=n.CancelError;const i=r(250);t.RequestError=i.RequestError,t.MaxRedirectsError=i.MaxRedirectsError,t.CacheError=i.CacheError,t.UploadError=i.UploadError,t.TimeoutError=i.TimeoutError,t.HTTPError=i.HTTPError,t.ReadError=i.ReadError,t.UnsupportedProtocolError=i.UnsupportedProtocolError;class o extends i.RequestError{constructor(e,t){const{options:r}=t.request;super(`${e.message} in "${r.url.toString()}"`,e,t.request),this.name="ParseError",Object.defineProperty(this,"response",{enumerable:!1,value:t})}}t.ParseError=o},function(e,t,r){"use strict";const n=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);e.exports=e=>e?Object.keys(e).map(t=>[n.has(t)?n.get(t):t,e[t]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}},function(e,t,r){"use strict";const n=r(50),i=r(255),o=Symbol("EOF"),s=Symbol("maybeEmitEnd"),a=Symbol("emittedEnd"),A=Symbol("closed"),c=Symbol("read"),u=Symbol("flush"),l="1"!==process.env._MP_NO_ITERATOR_SYMBOLS_,h=l&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),g=l&&Symbol.iterator||Symbol("iterator not implemented"),f=Symbol("flushChunk"),p=r(157).StringDecoder,d=Symbol("encoding"),C=Symbol("decoder"),E=Symbol("flowing"),I=Symbol("resume"),m=Symbol("bufferLength"),y=Symbol("bufferPush"),w=Symbol("bufferShift"),B=Symbol("objectMode");let Q=Buffer;Q.alloc||(Q=r(254).Buffer),e.exports=class extends n{constructor(e){super(),this[E]=!1,this.pipes=new i,this.buffer=new i,this[B]=e&&e.objectMode||!1,this[B]?this[d]=null:this[d]=e&&e.encoding||null,"buffer"===this[d]&&(this[d]=null),this[C]=this[d]?new p(this[d]):null,this[o]=!1,this[a]=!1,this[A]=!1,this.writable=!0,this.readable=!0,this[m]=0}get bufferLength(){return this[m]}get encoding(){return this[d]}set encoding(e){if(this[B])throw new Error("cannot set encoding in objectMode");if(this[d]&&e!==this[d]&&(this[C]&&this[C].lastNeed||this[m]))throw new Error("cannot change encoding");this[d]!==e&&(this[C]=e?new p(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[C].write(e)))),this[d]=e}setEncoding(e){this.encoding=e}write(e,t,r){if(this[o])throw new Error("write after end");"function"==typeof t&&(r=t,t="utf8"),t||(t="utf8"),"string"!=typeof e||this[B]||t===this[d]&&!this[C].lastNeed||(e=Q.from(e,t)),Q.isBuffer(e)&&this[d]&&(e=this[C].write(e));try{return this.flowing?(this.emit("data",e),this.flowing):(this[y](e),!1)}finally{this.emit("readable"),r&&r()}}read(e){try{return 0===this[m]||0===e||e>this[m]?null:(this[B]&&(e=null),this.buffer.length>1&&!this[B]&&(this.encoding?this.buffer=new i([Array.from(this.buffer).join("")]):this.buffer=new i([Q.concat(Array.from(this.buffer),this[m])])),this[c](e||null,this.buffer.head.value))}finally{this[s]()}}[c](e,t){return e===t.length||null===e?this[w]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[m]-=e),this.emit("data",t),this.buffer.length||this[o]||this.emit("drain"),t}end(e,t,r){"function"==typeof e&&(r=e,e=null),"function"==typeof t&&(r=t,t="utf8"),e&&this.write(e,t),r&&this.once("end",r),this[o]=!0,this.writable=!1,this.flowing&&this[s]()}[I](){this[E]=!0,this.emit("resume"),this.buffer.length?this[u]():this[o]?this[s]():this.emit("drain")}resume(){return this[I]()}pause(){this[E]=!1}get flowing(){return this[E]}[y](e){return this[B]?this[m]+=1:this[m]+=e.length,this.buffer.push(e)}[w](){return this.buffer.length&&(this[B]?this[m]-=1:this[m]-=this.buffer.head.value.length),this.buffer.shift()}[u](){do{}while(this[f](this[w]()));this.buffer.length||this[o]||this.emit("drain")}[f](e){return!!e&&(this.emit("data",e),this.flowing)}pipe(e,t){e!==process.stdout&&e!==process.stderr||((t=t||{}).end=!1);const r={dest:e,opts:t,ondrain:e=>this[I]()};return this.pipes.push(r),e.on("drain",r.ondrain),this[I](),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{"data"!==e||this.pipes.length||this.flowing?"end"===e&&this[a]&&(super.emit("end"),this.removeAllListeners("end")):this[I]()}}get emittedEnd(){return this[a]}[s](){!this[a]&&0===this.buffer.length&&this[o]&&(this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[A]&&this.emit("close"))}emit(e,t){if("data"===e){if(!t)return;this.pipes.length&&this.pipes.forEach(e=>e.dest.write(t)||this.pause())}else if("end"===e){if(!0===this[a])return;this[a]=!0,this.readable=!1,this[C]&&(t=this[C].end())&&(this.pipes.forEach(e=>e.dest.write(t)),super.emit("data",t)),this.pipes.forEach(e=>{e.dest.removeListener("drain",e.ondrain),e.opts&&!1===e.opts.end||e.dest.end()})}else if("close"===e&&(this[A]=!0,!this[a]))return;const r=new Array(arguments.length);if(r[0]=e,r[1]=t,arguments.length>2)for(let e=2;e{const r=[];this.on("data",e=>r.push(e)),this.on("end",()=>e(r)),this.on("error",t)})}[h](){return{next:()=>{const e=this.read();if(null!==e)return Promise.resolve({done:!1,value:e});if(this[o])return Promise.resolve({done:!0});let t=null,r=null;const n=e=>{this.removeListener("data",i),this.removeListener("end",s),r(e)},i=e=>{this.removeListener("error",n),this.removeListener("end",s),this.pause(),t({value:e,done:!!this[o]})},s=()=>{this.removeListener("error",n),this.removeListener("data",i),t({done:!0})};return new Promise((e,o)=>{r=o,t=e,this.once("error",n),this.once("end",s),this.once("data",i)})}}}[g](){return{next:()=>{const e=this.read();return{value:e,done:null===e}}}}}},function(e,t,r){"use strict";const n=r(96),i=r(177),o=r(12).posix,s=r(622),a=Symbol("slurp"),A=Symbol("type");const c=(e,t)=>{let r,i=e,s="";const a=o.parse(e).root||".";if(n.byteLength(i)<100)r=[i,s,!1];else{s=o.dirname(i),i=o.basename(i);do{n.byteLength(i)<=100&&n.byteLength(s)<=t?r=[i,s,!1]:n.byteLength(i)>100&&n.byteLength(s)<=t?r=[i.substr(0,99),s,!0]:(i=o.join(o.basename(s),i),s=o.dirname(s))}while(s!==a&&!r);r||(r=[e.substr(0,99),"",!0])}return r},u=(e,t,r)=>e.slice(t,t+r).toString("utf8").replace(/\0.*/,""),l=(e,t,r)=>h(g(e,t,r)),h=e=>null===e?null:new Date(1e3*e),g=(e,t,r)=>128&e[t]?s.parse(e.slice(t,t+r)):f(e,t,r),f=(e,t,r)=>(e=>isNaN(e)?null:e)(parseInt(e.slice(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),p={12:8589934591,8:2097151},d=(e,t,r,n)=>null!==n&&(n>p[r]||n<0?(s.encode(n,e.slice(t,t+r)),!0):(C(e,t,r,n),!1)),C=(e,t,r,n)=>e.write(E(n,r),t,r,"ascii"),E=(e,t)=>I(Math.floor(e).toString(8),t),I=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",m=(e,t,r,n)=>null!==n&&d(e,t,r,n.getTime()/1e3),y=new Array(156).join("\0"),w=(e,t,r,i)=>null!==i&&(e.write(i+y,t,r,"utf8"),i.length!==n.byteLength(i)||i.length>r);e.exports=class{constructor(e,t,r,i){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[A]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,n.isBuffer(e)?this.decode(e,t||0,r,i):e&&this.set(e)}decode(e,t,r,n){if(t||(t=0),!(e&&e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=u(e,t,100),this.mode=g(e,t+100,8),this.uid=g(e,t+108,8),this.gid=g(e,t+116,8),this.size=g(e,t+124,12),this.mtime=l(e,t+136,12),this.cksum=g(e,t+148,12),this[a](r),this[a](n,!0),this[A]=u(e,t+156,1),""===this[A]&&(this[A]="0"),"0"===this[A]&&"/"===this.path.substr(-1)&&(this[A]="5"),"5"===this[A]&&(this.size=0),this.linkpath=u(e,t+157,100),"ustar\x0000"===e.slice(t+257,t+265).toString())if(this.uname=u(e,t+265,32),this.gname=u(e,t+297,32),this.devmaj=g(e,t+329,8),this.devmin=g(e,t+337,8),0!==e[t+475]){const r=u(e,t+345,155);this.path=r+"/"+this.path}else{const r=u(e,t+345,130);r&&(this.path=r+"/"+this.path),this.atime=l(e,t+476,12),this.ctime=l(e,t+488,12)}let i=256;for(let r=t;r=t+512))throw new Error("need 512 bytes for header");const r=this.ctime||this.atime?130:155,i=c(this.path||"",r),o=i[0],s=i[1];this.needPax=i[2],this.needPax=w(e,t,100,o)||this.needPax,this.needPax=d(e,t+100,8,this.mode)||this.needPax,this.needPax=d(e,t+108,8,this.uid)||this.needPax,this.needPax=d(e,t+116,8,this.gid)||this.needPax,this.needPax=d(e,t+124,12,this.size)||this.needPax,this.needPax=m(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[A].charCodeAt(0),this.needPax=w(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=w(e,t+265,32,this.uname)||this.needPax,this.needPax=w(e,t+297,32,this.gname)||this.needPax,this.needPax=d(e,t+329,8,this.devmaj)||this.needPax,this.needPax=d(e,t+337,8,this.devmin)||this.needPax,this.needPax=w(e,t+345,r,s)||this.needPax,0!==e[t+475]?this.needPax=w(e,t+345,155,s)||this.needPax:(this.needPax=w(e,t+345,130,s)||this.needPax,this.needPax=m(e,t+476,12,this.atime)||this.needPax,this.needPax=m(e,t+488,12,this.ctime)||this.needPax);let a=256;for(let r=t;rthis[m](e,t))}[m](e,t){e?this[I](e):(this[l]=t,this.emit("open",t),this[v]())}[d](){return Buffer.allocUnsafe(Math.min(this[S],this[x]))}[v](){if(!this[k]){this[k]=!0;const e=this[d]();if(0===e.length)return process.nextTick(()=>this[y](null,0,e));o.read(this[l],e,0,e.length,null,(e,t,r)=>this[y](e,t,r))}}[y](e,t,r){this[k]=!1,e?this[I](e):this[p](t,r)&&this[v]()}[c](){this[A]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}[I](e){this[k]=!0,this[c](),this.emit("error",e)}[p](e,t){let r=!1;return this[x]-=e,e>0&&(r=super.write(ethis[m](e,t))}[m](e,t){this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code?(this[g]="w",this[B]()):e?this[I](e):(this[l]=t,this.emit("open",t),this[f]())}end(e,t){e&&this.write(e,t),this[u]=!0,this[N]||this[D].length||"number"!=typeof this[l]||this[w](null,0)}write(e,t){return"string"==typeof e&&(e=new Buffer(e,t)),this[u]?(this.emit("error",new Error("write() after end()")),!1):null===this[l]||this[N]||this[D].length?(this[D].push(e),this[E]=!0,!1):(this[N]=!0,this[M](e),!0)}[M](e){o.write(this[l],e,0,e.length,this[b],(e,t)=>this[w](e,t))}[w](e,t){e?this[I](e):(null!==this[b]&&(this[b]+=t),this[D].length?this[f]():(this[N]=!1,this[u]&&!this[h]?(this[h]=!0,this[c](),this.emit("finish")):this[E]&&(this[E]=!1,this.emit("drain"))))}[f](){if(0===this[D].length)this[u]&&this[w](null,0);else if(1===this[D].length)this[M](this[D].pop());else{const e=this[D];this[D]=[],O(this[l],e,this[b],(e,t)=>this[w](e,t))}}[c](){this[A]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}}const O=(e,t,r,n)=>{const i=new a;i.oncomplete=(e,r)=>n(e,r,t),s.writeBuffers(e,t,r,i)};t.ReadStream=K,t.ReadStreamSync=class extends K{[B](){let e=!0;try{this[m](null,o.openSync(this[Q],"r")),e=!1}finally{e&&this[c]()}}[v](){let e=!0;try{if(!this[k]){for(this[k]=!0;;){const e=this[d](),t=0===e.length?0:o.readSync(this[l],e,0,e.length,null);if(!this[p](t,e))break}this[k]=!1}e=!1}finally{e&&this[c]()}}[c](){if(this[A]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}},t.WriteStream=L,t.WriteStreamSync=class extends L{[B](){let e;try{e=o.openSync(this[Q],this[g],this[C])}catch(e){if(this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code)return this[g]="w",this[B]();throw e}this[m](null,e)}[c](){if(this[A]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}[M](e){try{this[w](null,o.writeSync(this[l],e,0,e.length,this[b]))}catch(e){this[w](e,0)}}}},function(e,t,r){var n=r(40),i=r(259),o=r(640),s=r(150);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:o(s(e))}},function(e,t,r){var n=r(77),i=r(78),o="[object AsyncFunction]",s="[object Function]",a="[object GeneratorFunction]",A="[object Proxy]";e.exports=function(e){if(!i(e))return!1;var t=n(e);return t==s||t==a||t==o||t==A}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,r){var n=r(664);e.exports=function(e){return null==e?"":n(e)}},function(e,t,r){var n=r(685),i=r(261),o=r(686),s=r(349),a=r(687),A=r(77),c=r(337),u=c(n),l=c(i),h=c(o),g=c(s),f=c(a),p=A;(n&&"[object DataView]"!=p(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=p(new i)||o&&"[object Promise]"!=p(o.resolve())||s&&"[object Set]"!=p(new s)||a&&"[object WeakMap]"!=p(new a))&&(p=function(e){var t=A(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case u:return"[object DataView]";case l:return"[object Map]";case h:return"[object Promise]";case g:return"[object Set]";case f:return"[object WeakMap]"}return t}),e.exports=p},function(e,t,r){var n=r(77),i=r(40),o=r(60),s="[object String]";e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&n(e)==s}},function(e,t,r){"use strict";var n=r(30);t.__esModule=!0,t.default=void 0;var i=n(r(112)),o=r(194),s={context:"$",value:"."},a=function(){function e(e,t){if(void 0===t&&(t={}),"string"!=typeof e)throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),""===e)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===s.context,this.isValue=this.key[0]===s.value,this.isSibling=!this.isContext&&!this.isValue;var r=this.isContext?s.context:this.isValue?s.value:"";this.path=this.key.slice(r.length),this.getter=this.path&&(0,o.getter)(this.path,!0),this.map=t.map}var t=e.prototype;return t.getValue=function(e){var t=this.isContext?e.context:this.isValue?e.value:e.parent;return this.getter&&(t=this.getter(t||{})),this.map&&(t=this.map(t)),t},t.cast=function(e,t){return this.getValue((0,i.default)({},t,{value:e}))},t.resolve=function(){return this},t.describe=function(){return{type:"ref",key:this.key}},t.toString=function(){return"Ref("+this.key+")"},e.isRef=function(e){return e&&e.__isYupRef},e}();t.default=a,a.prototype.__isYupRef=!0,e.exports=t.default},function(e,t,r){var n=r(77),i=r(60),o="[object Number]";e.exports=function(e){return"number"==typeof e||i(e)&&n(e)==o}},function(e,t){e.exports=function(e,t,r,n,i){this.confidence=r,this.name=n||t.name(e),this.lang=i}},function(e,t,r){var n=r(13);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):((t=e.exports=r(398)).Stream=n||t,t.Readable=t,t.Writable=r(402),t.Duplex=r(119),t.Transform=r(404),t.PassThrough=r(859),t.finished=r(280),t.pipeline=r(860))},function(e,t){e.exports=require("string_decoder")},function(e,t){e.exports=require("https")},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(24);class i extends n.a{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}},function(e,t,r){"use strict";r.r(t),r.d(t,"makeScriptEnv",(function(){return m})),r.d(t,"prepareExternalProject",(function(){return y})),r.d(t,"hasPackageScript",(function(){return w})),r.d(t,"executePackageScript",(function(){return B})),r.d(t,"executePackageShellcode",(function(){return Q})),r.d(t,"executeWorkspaceScript",(function(){return D})),r.d(t,"hasWorkspaceScript",(function(){return v})),r.d(t,"getPackageAccessibleBinaries",(function(){return S})),r.d(t,"getWorkspaceAccessibleBinaries",(function(){return k})),r.d(t,"executePackageAccessibleBinary",(function(){return x})),r.d(t,"executeWorkspaceAccessibleBinary",(function(){return F}));var n,i=r(4),o=r(220),s=r(219),a=r(3),A=r(36),c=r(226),u=r(13),l=r(37),h=r(17),g=r(24),f=r(131),p=r(130),d=r(55),C=r(22),E=r(5);async function I(e,t,r,n=[]){"win32"===process.platform&&await a.xfs.writeFilePromise(i.e.format({dir:e,name:t,ext:".cmd"}),`@"${r}" ${n.map(e=>`"${e.replace('"','""')}"`).join(" ")} %*\n`),await a.xfs.writeFilePromise(i.e.join(e,t),`#!/bin/sh\nexec "${r}" ${n.map(e=>`'${e.replace(/'/g,"'\"'\"'")}'`).join(" ")} "$@"\n`),await a.xfs.chmodPromise(i.e.join(e,t),493)}async function m({project:e,binFolder:t,lifecycleScript:r}){const n={};for(const[e,t]of Object.entries(process.env))void 0!==t&&(n["path"!==e.toLowerCase()?e:"PATH"]=t);const o=i.d.fromPortablePath(t);n.BERRY_BIN_FOLDER=i.d.fromPortablePath(o),await I(t,Object(i.f)("node"),process.execPath),null!==p.a&&(await I(t,Object(i.f)("run"),process.execPath,[process.argv[1],"run"]),await I(t,Object(i.f)("yarn"),process.execPath,[process.argv[1]]),await I(t,Object(i.f)("yarnpkg"),process.execPath,[process.argv[1]]),await I(t,Object(i.f)("node-gyp"),process.execPath,[process.argv[1],"run","--top-level","node-gyp"])),e&&(n.INIT_CWD=i.d.fromPortablePath(e.configuration.startingCwd)),n.PATH=n.PATH?`${o}${i.d.delimiter}${n.PATH}`:`${o}`,n.npm_execpath=`${o}${i.d.sep}yarn`,n.npm_node_execpath=`${o}${i.d.sep}node`;const s=null!==p.a?`yarn/${p.a}`:`yarn/${C.dynamicRequire("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${s} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,r&&(n.npm_lifecycle_event=r),e&&await e.configuration.triggerHook(e=>e.setupScriptEnvironment,e,n,async(e,r,n)=>await I(t,Object(i.f)(e),r,n)),n}async function y(e,t,{configuration:r,report:o,workspace:s=null}){await a.xfs.mktempPromise(async A=>{const c=i.e.join(A,"pack.log"),{stdout:l,stderr:f}=r.getSubprocessStreams(c,{prefix:e,report:o}),p=await async function(e){let t=null;try{t=await a.xfs.readFilePromise(i.e.join(e,i.a.lockfile),"utf8")}catch(e){}return null!==t?t.match(/^__metadata:$/m)?n.Yarn2:n.Yarn1:a.xfs.existsSync(i.e.join(e,"package-lock.json"))?n.Npm:a.xfs.existsSync(i.e.join(e,"pnpm-lock.yaml"))?n.Pnpm:null}(e);let E;null!==p?(l.write(`Installing the project using ${p}\n\n`),E=p):(l.write("No package manager detected; defaulting to Yarn\n\n"),E=n.Yarn2),await a.xfs.mktempPromise(async r=>{const o=await m({binFolder:r}),p=new Map([[n.Yarn1,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",["set","version","classic","--only-if-needed"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==n.code)return n.code;await a.xfs.appendFilePromise(i.e.join(e,".npmignore"),"/.yarn\n"),l.write("\n");const A=await d.pipevp("yarn",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==A.code)return A.code;l.write("\n");const c=await d.pipevp("yarn",[...r,"pack","--filename",i.d.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==c.code?c.code:0}],[n.Yarn2,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",[...r,"pack","--install-if-needed","--filename",i.d.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==n.code?n.code:0}],[n.Npm,async()=>{if(null!==s)throw new Error(`Workspaces aren't supported by npm, which has been detected as the primary package manager for ${e}`);delete o.npm_config_user_agent;const r=await d.pipevp("npm",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==r.code)return r.code;const n=new u.PassThrough,A=C.bufferStream(n);n.pipe(l);const c=await d.pipevp("npm",["pack","--silent"],{cwd:e,env:o,stdin:null,stdout:n,stderr:f});if(0!==c.code)return c.code;const h=(await A).toString().trim(),g=i.e.resolve(e,i.d.toPortablePath(h));return await a.xfs.renamePromise(g,t),0}]]).get(E);if(void 0===p)throw new Error("Assertion failed: Unsupported workflow");const I=await p();if(0!==I&&void 0!==I)throw a.xfs.detachTemp(A),new g.b(h.a.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${I}, logs can be found here: ${c})`)})})}async function w(e,t,{project:r}){const n=r.storedPackages.get(e.locatorHash);if(!n)throw new Error(`Package for ${E.prettyLocator(r.configuration,e)} not found in the project`);return await o.a.openPromise(async e=>{const o=r.configuration,a=r.configuration.getLinkers(),A={project:r,report:new f.a({stdout:new u.PassThrough,configuration:o})},c=a.find(e=>e.supportsPackage(n,A));if(!c)throw new Error(`The package ${E.prettyLocator(r.configuration,n)} isn't supported by any of the available linkers`);const h=await c.findPackageLocation(n,A),g=new s.a(h,{baseFs:e});return(await l.a.find(i.b.dot,{baseFs:g})).scripts.has(t)},{libzip:await Object(A.getLibzipPromise)()})}async function B(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:A}){return await a.xfs.mktempPromise(async a=>{const{manifest:u,env:l,cwd:h}=await b(e,{project:i,binFolder:a,cwd:n,lifecycleScript:t}),g=u.scripts.get(t);if(void 0===g)return 1;const f=await i.configuration.reduceHook(e=>e.wrapScriptExecution,async()=>await Object(c.execute)(g,r,{cwd:h,env:l,stdin:o,stdout:s,stderr:A}),i,e,t,{script:g,args:r,cwd:h,env:l,stdin:o,stdout:s,stderr:A});return await f()})}async function Q(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:A}){return await a.xfs.mktempPromise(async a=>{const{env:u,cwd:l}=await b(e,{project:i,binFolder:a,cwd:n});return await Object(c.execute)(t,r,{cwd:l,env:u,stdin:o,stdout:s,stderr:A})})}async function b(e,{project:t,binFolder:r,cwd:n,lifecycleScript:a}){const c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${E.prettyLocator(t.configuration,e)} not found in the project`);return await o.a.openPromise(async o=>{const A=t.configuration,h=t.configuration.getLinkers(),g={project:t,report:new f.a({stdout:new u.PassThrough,configuration:A})},p=h.find(e=>e.supportsPackage(c,g));if(!p)throw new Error(`The package ${E.prettyLocator(t.configuration,c)} isn't supported by any of the available linkers`);const d=await m({project:t,binFolder:r,lifecycleScript:a});for(const[n,[,o]]of await S(e,{project:t}))await I(r,Object(i.f)(n),process.execPath,[o]);const C=await p.findPackageLocation(c,g),y=new s.a(C,{baseFs:o}),w=await l.a.find(i.b.dot,{baseFs:y});return void 0===n&&(n=C),{manifest:w,binFolder:r,env:d,cwd:n}},{libzip:await Object(A.getLibzipPromise)()})}async function D(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await B(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:i,stdout:o,stderr:s})}async function v(e,t){return e.manifest.scripts.has(t)}async function S(e,{project:t}){const r=t.configuration,n=new Map,o=t.storedPackages.get(e.locatorHash);if(!o)throw new Error(`Package for ${E.prettyLocator(r,e)} not found in the project`);const s=new u.Writable,a=r.getLinkers(),A={project:t,report:new f.a({configuration:r,stdout:s})},c=new Set([e.locatorHash]);for(const e of o.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(!n)throw new Error(`Assertion failed: The resolution (${E.prettyDescriptor(r,e)}) should have been registered`);c.add(n)}for(const e of c){const r=t.storedPackages.get(e);if(!r)throw new Error(`Assertion failed: The package (${e}) should have been registered`);if(0===r.bin.size)continue;const o=a.find(e=>e.supportsPackage(r,A));if(!o)continue;const s=await o.findPackageLocation(r,A);for(const[e,t]of r.bin)n.set(e,[r,i.d.fromPortablePath(i.e.resolve(s,t))])}return n}async function k(e){return await S(e.anchoredLocator,{project:e.project})}async function x(e,t,r,{cwd:n,project:o,stdin:s,stdout:A,stderr:c,nodeArgs:u=[]}){const l=await S(e,{project:o}),h=l.get(t);if(!h)throw new Error(`Binary not found (${t}) for ${E.prettyLocator(o.configuration,e)}`);return await a.xfs.mktempPromise(async e=>{const[,t]=h,g=await m({project:o,binFolder:e});for(const[e,[,t]]of l)await I(g.BERRY_BIN_FOLDER,Object(i.f)(e),process.execPath,[t]);let f;try{f=await d.pipevp(process.execPath,[...u,t,...r],{cwd:n,env:g,stdin:s,stdout:A,stderr:c})}finally{await a.xfs.removePromise(g.BERRY_BIN_FOLDER)}return f.code})}async function F(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await x(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:i,stdout:o,stderr:s})}!function(e){e.Yarn1="Yarn Classic",e.Yarn2="Yarn",e.Npm="npm",e.Pnpm="pnpm"}(n||(n={}))},function(e,t,r){var n=r(275);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=function(){return Date.now()},e}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(5);class i{constructor(e){this.resolvers=e.filter(e=>e)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.getResolverByDescriptor(e,r).bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,r){const n=this.getResolverByDescriptor(e,r);return await n.getCandidates(e,t,r)}async resolve(e,t){const r=this.getResolverByLocator(e,t);return await r.resolve(e,t)}tryResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));return r||null}getResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));if(!r)throw new Error(`${n.prettyDescriptor(t.project.configuration,e)} isn't supported by any available resolver`);return r}tryResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));return r||null}getResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));if(!r)throw new Error(`${n.prettyLocator(t.project.configuration,e)} isn't supported by any available resolver`);return r}}},function(e,t,r){"use strict";const n=r(494),i=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let r=0;const i=()=>{r--,t.length>0&&t.shift()()},o=(e,t,...o)=>{r++;const s=n(e,...o);t(s),s.then(i,i)},s=(n,...i)=>new Promise(s=>((n,i,...s)=>{rr},pendingCount:{get:()=>t.length}}),s};e.exports=i,e.exports.default=i},function(e,t,r){"use strict";const n=r(87),i=r(569),o=r(580);function s(e,t,r){const s=i(e,t,r),a=n.spawn(s.command,s.args,s.options);return o.hookChildProcess(a,s),a}e.exports=s,e.exports.spawn=s,e.exports.sync=function(e,t,r){const s=i(e,t,r),a=n.spawnSync(s.command,s.args,s.options);return a.error=a.error||o.verifyENOENTSync(a.status,s),a},e.exports._parse=i,e.exports._enoent=o},function(e,t,r){"use strict";var n=r(109);e.exports=n.DEFAULT=new n({include:[r(140)],explicit:[r(443),r(444),r(445)]})},function(e,t){const r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:r,MAX_SAFE_COMPONENT_LENGTH:16}},function(e,t){const r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>n(e,t,r)>0},function(e,t,r){"use strict";const n=r(12),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHAR:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?o:i}},function(e,t,r){var n=r(242);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}e.exports=n(i),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0})}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(518),i=r(527),o=r(528),s=r(530);function a(e={}){return e instanceof s.default?e:new s.default(e)}t.Settings=s.default,t.walk=function(e,t,r){if("function"==typeof t)return new n.default(e,a()).read(t);new n.default(e,a(t)).read(r)},t.walkSync=function(e,t){const r=a(t);return new o.default(e,r).read()},t.walkStream=function(e,t){const r=a(t);return new i.default(e,r).read()}},function(e,t,r){"use strict";const n=r(12),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?o:i}},function(e,t){e.exports=require("net")},function(e,t){e.exports=require("tls")},function(e,t,r){"use strict";r(177);const n=r(144),i=Symbol("slurp");e.exports=class extends n{constructor(e,t,r){switch(super(),this.extended=t,this.globalExtended=r,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=4095&this.mode),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[i](t),r&&this[i](r,!0)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");const r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),!!this.ignore||(r>=t?super.write(e):super.write(e.slice(0,r)))}[i](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}}},function(e,t,r){"use strict";t.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),t.code=new Map(Array.from(t.name).map(e=>[e[1],e[0]]))},function(e,t,r){"use strict";const n=r(257),i=(r(12),r(145)),o=r(50),s=r(255),a=r(176),A=r(256),c=r(330),u=r(96),l=u.from([31,139]),h=Symbol("state"),g=Symbol("writeEntry"),f=Symbol("readEntry"),p=Symbol("nextEntry"),d=Symbol("processEntry"),C=Symbol("extendedHeader"),E=Symbol("globalExtendedHeader"),I=Symbol("meta"),m=Symbol("emitMeta"),y=Symbol("buffer"),w=Symbol("queue"),B=Symbol("ended"),Q=Symbol("emittedEnd"),b=Symbol("emit"),D=Symbol("unzip"),v=Symbol("consumeChunk"),S=Symbol("consumeChunkSub"),k=Symbol("consumeBody"),x=Symbol("consumeMeta"),F=Symbol("consumeHeader"),M=Symbol("consuming"),N=Symbol("bufferConcat"),R=Symbol("maybeEnd"),K=Symbol("writing"),L=Symbol("aborted"),O=Symbol("onDone"),T=e=>!0;e.exports=n(class extends o{constructor(e){super(e=e||{}),e.ondone?this.on(O,e.ondone):this.on(O,e=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||1048576,this.filter="function"==typeof e.filter?e.filter:T,this.writable=!0,this.readable=!1,this[w]=new s,this[y]=null,this[f]=null,this[g]=null,this[h]="begin",this[I]="",this[C]=null,this[E]=null,this[B]=!1,this[D]=null,this[L]=!1,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),"function"==typeof e.onentry&&this.on("entry",e.onentry)}[F](e,t){const r=new i(e,t,this[C],this[E]);if(r.nullBlock)this[b]("nullBlock");else if(r.cksumValid)if(r.path){const e=r.type;if(/^(Symbolic)?Link$/.test(e)&&!r.linkpath)this.warn("invalid: linkpath required",r);else if(!/^(Symbolic)?Link$/.test(e)&&r.linkpath)this.warn("invalid: linkpath forbidden",r);else{const e=this[g]=new a(r,this[C],this[E]);e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[b]("ignoredEntry",e),this[h]="ignore"):e.size>0&&(this[I]="",e.on("data",e=>this[I]+=e),this[h]="meta"):(this[C]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[b]("ignoredEntry",e),this[h]=e.remain?"ignore":"begin"):(e.remain?this[h]="body":(this[h]="begin",e.end()),this[f]?this[w].push(e):(this[w].push(e),this[p]())))}}else this.warn("invalid: path is required",r);else this.warn("invalid entry",r)}[d](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[f]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",e=>this[p]()),t=!1)):(this[f]=null,t=!1),t}[p](){do{}while(this[d](this[w].shift()));if(!this[w].length){const e=this[f];!e||e.flowing||e.size===e.remain?this[K]||this.emit("drain"):e.once("drain",e=>this.emit("drain"))}}[k](e,t){const r=this[g],n=r.blockRemain,i=n>=e.length&&0===t?e:e.slice(t,t+n);return r.write(i),r.blockRemain||(this[h]="begin",this[g]=null,r.end()),i.length}[x](e,t){const r=this[g],n=this[k](e,t);return this[g]||this[m](r),n}[b](e,t,r){this[w].length||this[f]?this[w].push([e,t,r]):this.emit(e,t,r)}[m](e){switch(this[b]("meta",this[I]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[C]=A.parse(this[I],this[C],!1);break;case"GlobalExtendedHeader":this[E]=A.parse(this[I],this[E],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[C]=this[C]||Object.create(null),this[C].path=this[I].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[C]=this[C]||Object.create(null),this[C].linkpath=this[I].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e,t){this[L]=!0,this.warn(e,t),this.emit("abort",t),this.emit("error",t)}write(e){if(this[L])return;if(null===this[D]&&e){if(this[y]&&(e=u.concat([this[y],e]),this[y]=null),e.lengththis[v](e)),this[D].on("error",e=>this.abort(e.message,e)),this[D].on("end",e=>{this[B]=!0,this[v]()}),this[K]=!0;const r=this[D][t?"end":"write"](e);return this[K]=!1,r}}this[K]=!0,this[D]?this[D].write(e):this[v](e),this[K]=!1;const t=!this[w].length&&(!this[f]||this[f].flowing);return t||this[w].length||this[f].once("drain",e=>this.emit("drain")),t}[N](e){e&&!this[L]&&(this[y]=this[y]?u.concat([this[y],e]):e)}[R](){if(this[B]&&!this[Q]&&!this[L]&&!this[M]){this[Q]=!0;const e=this[g];if(e&&e.blockRemain){const t=this[y]?this[y].length:0;this.warn("Truncated input (needed "+e.blockRemain+" more bytes, only "+t+" available)",e),this[y]&&e.write(this[y]),e.end()}this[b](O)}}[v](e){if(this[M])this[N](e);else if(e||this[y]){if(this[M]=!0,this[y]){this[N](e);const t=this[y];this[y]=null,this[S](t)}else this[S](e);for(;this[y]&&this[y].length>=512&&!this[L];){const e=this[y];this[y]=null,this[S](e)}this[M]=!1}else this[R]();this[y]&&!this[B]||this[R]()}[S](e){let t=0,r=e.length;for(;t+512<=r&&!this[L];)switch(this[h]){case"begin":this[F](e,t),t+=512;break;case"ignore":case"body":t+=this[k](e,t);break;case"meta":t+=this[x](e,t);break;default:throw new Error("invalid state: "+this[h])}t-1&&e%1==0&&e=this._maxSize&&this.clear(),this._values.hasOwnProperty(e)||this._size++,this._values[e]=t};var i=/[^.^\]^[]+|(?=\[\]|\.\.)/g,o=/^\d+$/,s=/^\d/,a=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,A=/^\s*(['"]?)(.*?)(\1)\s*$/,c=!1,u=new n(512),l=new n(512),h=new n(512);try{new Function("")}catch(e){c=!0}function g(e){return u.get(e)||u.set(e,f(e).map((function(e){return e.replace(A,"$2")})))}function f(e){return e.match(i)}function p(e,t,r){return"string"==typeof t&&(r=t,t=!1),r=r||"data",(e=e||"")&&"["!==e.charAt(0)&&(e="."+e),t?function(e,t){var r,n=t,i=f(e);return d(i,(function(e,t,i,o,s){r=o===s.length-1,n+=(e=t||i?"["+e+"]":"."+e)+(r?")":" || {})")})),new Array(i.length+1).join("(")+n}(e,r):r+e}function d(e,t,r){var n,i,o,s,a=e.length;for(i=0;ie.length).splice(0,t)),s=n.flatten(s)),s.length<=r)return e;this.pointer0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(cancelAnimationFrame(r),t.scheduled=void 0)},t}(p.a),C=r(71),E=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f.b(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++nt.index?1:-1:e.delay>t.delay?1:-1},t}(p.a),y=r(162),w=r(18),B=r(6),Q=r(48),b=r(103),D=r(42),v=r(52);function S(e){return!!e&&(e instanceof n.a||"function"==typeof e.lift&&"function"==typeof e.subscribe)}var k=r(63),x=r(69),F=r(58),M=r(105),N=r(211),R=r(26),K=r(133),L=r(20),O=r(27);function T(e,t,r){if(t){if(!Object(O.a)(t))return function(){for(var n=[],i=0;i1?n.next(Array.prototype.slice.call(arguments)):n.next(e)}),n,r)}))}function te(e,t,r){return r?te(e,t).pipe(Object(R.a)((function(e){return Object(L.a)(e)?r.apply(void 0,e):r(e)}))):new n.a((function(r){var n,i=function(){for(var e=[],t=0;t=t){n.complete();break}if(n.next(o++),n.closed)break}}))}function ye(e){var t=e.start,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t),i.closed||(e.index=r+1,e.start=t+1,this.schedule(e)))}var we=r(125),Be=r(215);function Qe(e,t){return new n.a((function(r){var n,i;try{n=e()}catch(e){return void r.error(e)}try{i=t(n)}catch(e){return void r.error(e)}var o=(i?Object(V.a)(i):q.a).subscribe(r);return function(){o.unsubscribe(),n&&n.unsubscribe()}}))}var be=r(129),De=r(216),ve=r(38);r.d(t,"Observable",(function(){return n.a})),r.d(t,"ConnectableObservable",(function(){return i.a})),r.d(t,"GroupedObservable",(function(){return o.a})),r.d(t,"observable",(function(){return s.a})),r.d(t,"Subject",(function(){return a.a})),r.d(t,"BehaviorSubject",(function(){return A.a})),r.d(t,"ReplaySubject",(function(){return c.a})),r.d(t,"AsyncSubject",(function(){return u.a})),r.d(t,"asapScheduler",(function(){return l.a})),r.d(t,"asyncScheduler",(function(){return h.a})),r.d(t,"queueScheduler",(function(){return g.a})),r.d(t,"animationFrameScheduler",(function(){return E})),r.d(t,"VirtualTimeScheduler",(function(){return I})),r.d(t,"VirtualAction",(function(){return m})),r.d(t,"Scheduler",(function(){return y.a})),r.d(t,"Subscription",(function(){return w.a})),r.d(t,"Subscriber",(function(){return B.a})),r.d(t,"Notification",(function(){return Q.a})),r.d(t,"NotificationKind",(function(){return Q.b})),r.d(t,"pipe",(function(){return b.a})),r.d(t,"noop",(function(){return D.a})),r.d(t,"identity",(function(){return v.a})),r.d(t,"isObservable",(function(){return S})),r.d(t,"ArgumentOutOfRangeError",(function(){return k.a})),r.d(t,"EmptyError",(function(){return x.a})),r.d(t,"ObjectUnsubscribedError",(function(){return F.a})),r.d(t,"UnsubscriptionError",(function(){return M.a})),r.d(t,"TimeoutError",(function(){return N.a})),r.d(t,"bindCallback",(function(){return T})),r.d(t,"bindNodeCallback",(function(){return _})),r.d(t,"combineLatest",(function(){return J.b})),r.d(t,"concat",(function(){return H.a})),r.d(t,"defer",(function(){return z.a})),r.d(t,"empty",(function(){return q.b})),r.d(t,"forkJoin",(function(){return X})),r.d(t,"from",(function(){return V.a})),r.d(t,"fromEvent",(function(){return ee})),r.d(t,"fromEventPattern",(function(){return te})),r.d(t,"generate",(function(){return re})),r.d(t,"iif",(function(){return ie})),r.d(t,"interval",(function(){return se})),r.d(t,"merge",(function(){return Ae.a})),r.d(t,"never",(function(){return ue})),r.d(t,"of",(function(){return le.a})),r.d(t,"onErrorResumeNext",(function(){return he})),r.d(t,"pairs",(function(){return ge})),r.d(t,"partition",(function(){return Ee})),r.d(t,"race",(function(){return Ie.a})),r.d(t,"range",(function(){return me})),r.d(t,"throwError",(function(){return we.a})),r.d(t,"timer",(function(){return Be.a})),r.d(t,"using",(function(){return Qe})),r.d(t,"zip",(function(){return be.b})),r.d(t,"scheduled",(function(){return De.a})),r.d(t,"EMPTY",(function(){return q.a})),r.d(t,"NEVER",(function(){return ce})),r.d(t,"config",(function(){return ve.a}))},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(1),i=r(2);class o extends i.Command{}Object(n.a)([i.Command.String("--cwd",{hidden:!0})],o.prototype,"cwd",void 0)},function(e,t,r){"use strict";r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return a}));var n=r(15),i=r.n(n),o=r(5);const s=/^(?!v)[a-z0-9-.]+$/i;class a{supportsDescriptor(e,t){return!!i.a.validRange(e.range)||!!s.test(e.range)}supportsLocator(e,t){return!!i.a.validRange(e.reference)||!!s.test(e.reference)}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,r){return r.resolver.bindDescriptor(this.forwardDescriptor(e,r),t,r)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,r){return await r.resolver.getCandidates(this.forwardDescriptor(e,r),t,r)}async resolve(e,t){const r=await t.resolver.resolve(this.forwardLocator(e,t),t);return o.renamePackage(r,e)}forwardDescriptor(e,t){return o.makeDescriptor(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return o.makeLocator(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(283),i=r(281),o=r(4),s=r(5);class a{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n);return t.fetcher.getLocalPath(i,t)}async fetch(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n),o=await t.fetcher.fetch(i,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return s.slugifyLocator(e)}async ensureVirtualLink(e,t,r){const s=t.packageFs.getRealPath(),a=r.project.configuration.get("virtualFolder"),A=this.getLocatorFilename(e),c=n.a.makeVirtualPath(a,A,s),u=new i.a(c,{baseFs:t.packageFs,pathUtils:o.e});return{...t,packageFs:u}}}},function(e,t,r){t.getPluginConfiguration=()=>({modules:new Map([[r(303).name,r(7)],[r(581).name,r(0)],[r(629).name,r(3)],[r(630).name,r(36)],[r(631).name,r(23)],[r(632).name,r(226)],[r(633).name,r(2)],[r(634).name,r(15)],[r(635).name,r(636)],[r(369).name,r(867)],[r(387).name,r(872)],[r(388).name,r(875)],[r(389).name,r(869)],[r(390).name,r(285)],[r(391).name,r(876)],[r(392).name,r(874)],[r(393).name,r(878)],[r(394).name,r(870)],[r(395).name,r(873)],[r(396).name,r(25)],[r(397).name,r(871)],[r(406).name,r(138)],[r(407).name,r(868)],[r(409).name,r(135)]]),plugins:new Set([r(369).name,r(387).name,r(388).name,r(389).name,r(390).name,r(391).name,r(392).name,r(393).name,r(394).name,r(395).name,r(396).name,r(397).name,r(406).name,r(407).name,r(409).name])})},function(e,t,r){"use strict";r.d(t,"a",(function(){return g}));var n=r(3),i=r(4),o=r(416),s=r.n(o),a=r(15),A=r.n(a),c=r(37),u=r(53),l=r(47),h=r(5);class g{constructor(e,{project:t}){this.workspacesCwds=new Set,this.dependencies=new Map,this.project=t,this.cwd=e}async setup(){this.manifest=n.xfs.existsSync(i.e.join(this.cwd,c.a.fileName))?await c.a.find(this.cwd):new c.a,this.relativeCwd=i.e.relative(this.project.cwd,this.cwd)||i.b.dot;const e=this.manifest.name?this.manifest.name:h.makeIdent(null,`${this.computeCandidateName()}-${l.makeHash(this.relativeCwd).substr(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=h.makeLocator(e,t),this.anchoredDescriptor=h.makeDescriptor(this.locator,`${u.a.protocol}${this.relativeCwd}`),this.anchoredLocator=h.makeLocator(this.locator,`${u.a.protocol}${this.relativeCwd}`);for(const e of this.manifest.workspaceDefinitions){const t=await s()(e.pattern,{absolute:!0,cwd:i.d.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["node_modules",".git"]});t.sort();for(const e of t){const t=i.e.resolve(this.cwd,i.d.toPortablePath(e));n.xfs.existsSync(i.e.join(t,Object(i.f)("package.json")))&&this.workspacesCwds.add(t)}}}accepts(e){const t=e.indexOf(":"),r=-1!==t?e.slice(0,t+1):null,n=-1!==t?e.slice(t+1):e;return r===u.a.protocol&&n===this.relativeCwd||(r===u.a.protocol&&"*"===n||!!A.a.validRange(n)&&(r===u.a.protocol?A.a.satisfies(null!==this.manifest.version?this.manifest.version:"0.0.0",n):!!this.project.configuration.get("enableTransparentWorkspaces")&&(null!==this.manifest.version&&A.a.satisfies(this.manifest.version,n))))}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${i.e.basename(this.cwd)}`||"unnamed-workspace"}async persistManifest(){const e={};this.manifest.exportTo(e);const t=i.e.join(this.cwd,c.a.fileName),r=`${JSON.stringify(e,null,this.manifest.indent)}\n`;await n.xfs.changeFilePromise(t,r,{automaticNewlines:!0})}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return c})),r.d(t,"b",(function(){return u}));var n=r(1),i=r(19),o=r(8),s=r(6),a=r(18),A=r(123),c=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subjectFactory=r,n._refCount=0,n._isComplete=!1,n}return n.b(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new a.a).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed&&(this._connection=null,e=a.a.EMPTY)),e},t.prototype.refCount=function(){return Object(A.a)()(this)},t}(o.a),u=function(){var e=c.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),l=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.b(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.b);s.a},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(1),i=r(19),o=r(58),s=function(e){function t(t){var r=e.call(this)||this;return r._value=t,r}return n.b(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.a;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.a)},function(e,t,r){"use strict";r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return A}));var n=r(1),i=r(6),o=r(48);function s(e,t){return void 0===t&&(t=0),function(r){return r.lift(new a(e,t))}}var a=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.scheduler,this.delay))},e}(),A=function(e){function t(t,r,n){void 0===n&&(n=0);var i=e.call(this,t)||this;return i.scheduler=r,i.delay=n,i}return n.b(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.a.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.a.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(o.a.createComplete()),this.unsubscribe()},t}(i.a),c=function(){return function(e,t){this.notification=e,this.destination=t}}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(127);function i(){return Object(n.a)(1)}},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(8),i=r(27),o=r(127),s=r(70);function a(){for(var e=[],t=0;t1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof A&&(r=e.pop()),null===a&&1===e.length&&e[0]instanceof n.a?e[0]:Object(o.a)(r)(Object(s.a)(e,a))}},function(e,t,r){"use strict";r.d(t,"a",(function(){return A}));var n=r(1),i=r(20),o=r(70),s=r(11),a=r(10);function A(){for(var e=[],t=0;t0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(r(73).a),o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.b(t,e),t}(r(71).a);r.d(t,"a",(function(){return s}));var s=new o(i)},function(e,t,r){"use strict";var n=r(29),i=r(4),o=r(3),s=r(87),a=r(2),A=r(9),c=r(1),u=r(203);const l=e=>`\n${e.format("Welcome on Yarn 2!","bold")} 🎉 Thanks for helping us shape our vision of how projects\nshould be managed going forward.\n\nBeing still in RC, Yarn 2 isn't completely stable yet. Some features might be\nmissing, and some behaviors may have received major overhaul. In case of doubt,\nuse the following URLs to get some insight:\n\n - The changelog:\n ${e.format("https://github.com/yarnpkg/berry/tree/CHANGELOG.md","cyan")}\n\n - Our issue tracker:\n ${e.format("https://github.com/yarnpkg/berry","cyan")}\n\n - Our Discord server:\n ${e.format("https://discord.gg/yarnpkg","cyan")}\n\nWe're hoping you will enjoy the experience. For now, a good start is to run\nthe two following commands:\n\n ${e.format("find . -name node_modules -prune -exec rm -r {} \\;","magenta")}\n ${e.format("yarn install","magenta")}\n\nOne last trick! If you need at some point to upgrade Yarn to a nightly build,\nthe following command will install the CLI straight from master:\n\n ${e.format("yarn set version from sources","magenta")}\n\nSee you later 👋\n`;class h extends u.a{async execute(){const e=await n.a.find(this.context.cwd,this.context.plugins);this.context.stdout.write(`${l(e).trim()}\n`)}}async function g({binaryVersion:e,pluginConfiguration:t}){async function r(){const c=new a.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:e});c.register(h);try{await async function(e){const a=await n.a.find(i.d.toPortablePath(process.cwd()),t,{usePath:!0,strict:!1}),c=a.get("yarnPath"),u=a.get("ignorePath"),l=a.get("ignoreCwd");if(null===c||u){u&&delete process.env.YARN_IGNORE_PATH;for(const t of a.plugins.values())for(const r of t.commands||[])e.register(r);const n=e.process(process.argv.slice(2)),o=n.cwd;if(void 0!==o&&!l){const e=Object(A.realpathSync)(process.cwd()),t=Object(A.realpathSync)(o);if(e!==t)return process.chdir(o),void await r()}e.runExit(n,{cwd:i.d.toPortablePath(process.cwd()),plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}else if(o.xfs.existsSync(c))try{!function(e){const t=i.d.fromPortablePath(e);process.on("SIGINT",()=>{}),t?Object(s.execFileSync)(process.execPath,[t,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):Object(s.execFileSync)(t,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}(c)}catch(e){process.exitCode=e.code||1}else process.stdout.write(e.error(new Error(`The "yarn-path" option has been set (in ${a.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1}(c)}catch(e){process.stdout.write(c.error(e)),process.exitCode=1}}return r().catch(e=>{process.stdout.write(e.stack||e.message),process.exitCode=1})}Object(c.a)([a.Command.Path("--welcome")],h.prototype,"execute",null),r.d(t,"a",(function(){return g}))},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(32),i=r(44),o=r(4);class s extends i.a{constructor(e,{baseFs:t=new n.a}={}){super(o.e),this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?o.e.normalize(e):this.baseFs.resolve(o.e.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(9),i=r(43),o=r(32),s=r(57),a=r(4);const A=2147483648;class c extends i.a{constructor({libzip:e,baseFs:t=new o.a,filter:r=null,maxOpenFiles:n=1/0,readOnlyArchives:i=!1,useCache:s=!0}){super(),this.fdMap=new Map,this.nextFd=3,this.isZip=new Set,this.notZip=new Set,this.libzip=e,this.baseFs=t,this.zipInstances=s?new Map:null,this.filter=r,this.maxOpenFiles=n,this.readOnlyArchives=i,this.isZip=new Set,this.notZip=new Set}static async openPromise(e,t){const r=new c(t);try{return await e(r)}finally{r.saveAndClose()}}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,t){const r=this.nextFd++|A;return this.fdMap.set(r,[e,t]),r}async openPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,t,r),async(e,{subPath:n})=>this.remapFd(e,await e.openPromise(n,t,r)))}openSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,r),(e,{subPath:n})=>this.remapFd(e,e.openSync(n,t,r)))}async readPromise(e,t,r,n,i){if(0==(e&A))return await this.baseFs.readPromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,a]=o;return await s.readPromise(a,t,r,n,i)}readSync(e,t,r,n,i){if(0==(e&A))return this.baseFs.readSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,a]=o;return s.readSync(a,t,r,n,i)}async writePromise(e,t,r,n,i){if(0==(e&A))return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,a]=o;return"string"==typeof t?await s.writePromise(a,t,r):await s.writePromise(a,t,r,n,i)}writeSync(e,t,r,n,i){if(0==(e&A))return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,a]=o;return"string"==typeof t?s.writeSync(a,t,r):s.writeSync(a,t,r,n,i)}async closePromise(e){if(0==(e&A))return await this.baseFs.closePromise(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return await r.closePromise(n)}closeSync(e){if(0==(e&A))return this.baseFs.closeSync(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return r.closeSync(n)}createReadStream(e,t){return null===e?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(e,{subPath:r})=>e.createReadStream(r,t))}createWriteStream(e,t){return null===e?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(e,{subPath:r})=>e.createWriteStream(r,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(await this.baseFs.realpathPromise(t),this.pathUtils.relative(a.b.root,await e.realpathPromise(r))))}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(this.baseFs.realpathSync(t),this.pathUtils.relative(a.b.root,e.realpathSync(r))))}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(e,{subPath:t})=>await e.existsPromise(t))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(e,{subPath:t})=>e.existsSync(t))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(e,{subPath:r})=>await e.accessPromise(r,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(e,{subPath:r})=>e.accessSync(r,t))}async statPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e),async(e,{subPath:t})=>await e.statPromise(t))}statSync(e){return this.makeCallSync(e,()=>this.baseFs.statSync(e),(e,{subPath:t})=>e.statSync(t))}async lstatPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e),async(e,{subPath:t})=>await e.lstatPromise(t))}lstatSync(e){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e),(e,{subPath:t})=>e.lstatSync(t))}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(e,{subPath:r})=>await e.chmodPromise(r,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(e,{subPath:r})=>e.chmodSync(r,t))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(e,{subPath:r})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await e.renamePromise(r,n)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(e,{subPath:r})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return e.renameSync(r,n)}))}async copyFilePromise(e,t,r=0){const i=async(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&await this.existsPromise(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=await e.readFilePromise(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}await i.writeFilePromise(o,s)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,r),async(t,{subPath:r})=>await i(this.baseFs,e,t,r)),async(e,{subPath:n})=>await this.makeCallPromise(t,async()=>await i(e,n,this.baseFs,t),async(t,{subPath:o})=>e!==t?await i(e,n,t,o):await e.copyFilePromise(n,o,r)))}copyFileSync(e,t,r=0){const i=(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&this.existsSync(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=e.readFileSync(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}i.writeFileSync(o,s)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,r),(t,{subPath:r})=>i(this.baseFs,e,t,r)),(e,{subPath:n})=>this.makeCallSync(t,()=>i(e,n,this.baseFs,t),(t,{subPath:o})=>e!==t?i(e,n,t,o):e.copyFileSync(n,o,r)))}async appendFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,r),async(e,{subPath:n})=>await e.appendFilePromise(n,t,r))}appendFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,r),(e,{subPath:n})=>e.appendFileSync(n,t,r))}async writeFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,r),async(e,{subPath:n})=>await e.writeFilePromise(n,t,r))}writeFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,r),(e,{subPath:n})=>e.writeFileSync(n,t,r))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(e,{subPath:t})=>await e.unlinkPromise(t))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(e,{subPath:t})=>e.unlinkSync(t))}async utimesPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,r),async(e,{subPath:n})=>await e.utimesPromise(n,t,r))}utimesSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,r),(e,{subPath:n})=>e.utimesSync(n,t,r))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(e,{subPath:r})=>await e.mkdirPromise(r,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(e,{subPath:r})=>e.mkdirSync(r,t))}async rmdirPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e),async(e,{subPath:t})=>await e.rmdirPromise(t))}rmdirSync(e){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e),(e,{subPath:t})=>e.rmdirSync(t))}async symlinkPromise(e,t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,r),async(t,{subPath:r})=>await t.symlinkPromise(e,r))}symlinkSync(e,t,r){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,r),(t,{subPath:r})=>t.symlinkSync(e,r))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":default:return await this.baseFs.readFilePromise(e,t)}},async(e,{subPath:r})=>await e.readFilePromise(r,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":default:return this.baseFs.readFileSync(e,t)}},(e,{subPath:r})=>e.readFileSync(r,t))}async readdirPromise(e,{withFileTypes:t}={}){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,{withFileTypes:t}),async(e,{subPath:r})=>await e.readdirPromise(r,{withFileTypes:t}),{requireSubpath:!1})}readdirSync(e,{withFileTypes:t}={}){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,{withFileTypes:t}),(e,{subPath:r})=>e.readdirSync(r,{withFileTypes:t}),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(e,{subPath:t})=>await e.readlinkPromise(t))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(e,{subPath:t})=>e.readlinkSync(t))}watch(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,r),(e,{subPath:n})=>e.watch(n,t,r))}async makeCallPromise(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return await t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?await t():await this.getZipPromise(o.archivePath,async e=>await r(e,o)):await t()}makeCallSync(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?t():this.getZipSync(o.archivePath,e=>r(e,o)):t()}findZip(e){if(this.filter&&!this.filter.test(e))return null;const t=e.split(/\//g);for(let e=2;e<=t.length;++e){const r=t.slice(0,e).join("/");if(this.notZip.has(r))continue;if(this.isZip.has(r))return{archivePath:r,subPath:this.pathUtils.resolve(a.b.root,t.slice(e).join("/"))};let n,i=r;for(;;){try{n=this.baseFs.lstatSync(i)}catch(e){return null}if(!n.isSymbolicLink())break;i=this.pathUtils.resolve(this.pathUtils.dirname(i),this.baseFs.readlinkSync(i))}if(n.isFile()&&".zip"===this.pathUtils.extname(i))return this.isZip.add(r),{archivePath:r,subPath:this.pathUtils.resolve(a.b.root,t.slice(e).join("/"))};if(this.notZip.add(r),n.isFile())return null}return null}limitOpenFiles(e){if(null===this.zipInstances)return;let t=this.zipInstances.size-e;for(const[e,r]of this.zipInstances.entries()){if(t<=0)break;r.saveAndClose(),this.zipInstances.delete(e),t-=1}}async getZipPromise(e,t){const r=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){const t=await r();(n=this.zipInstances.get(e))||(n=new s.b(e,t))}return this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),await t(n)}{const n=new s.b(e,await r());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){const r=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n=new s.b(e,r())),this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),t(n)}{const n=new s.b(e,r());try{return t(n)}finally{n.saveAndClose()}}}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(1),i=function(e){function t(t,r){var n=e.call(this)||this;return n.subject=t,n.subscriber=r,n.closed=!1,n}return n.b(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(r(18).a)},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(e){return function(t){for(var r=0,n=e.length;r(t.close(),r.close(),e))}async run(){const e=[];for(let t=this;t;t=t.ancestor)e.push(t.exec());return(await Promise.all(e))[0]}}function E(e,t){return C.start(e,t)}function I(e,t={}){const r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}r.d(t,"execute",(function(){return F}));const m=new Map([["cd",async([e,...t],r,n)=>{const s=i.e.resolve(n.cwd,i.d.toPortablePath(e));return(await o.xfs.statPromise(s)).isDirectory()?(n.cwd=s,0):(n.stderr.write("cd: not a directory\n"),1)}],["pwd",async(e,t,r)=>(r.stdout.write(`${i.d.fromPortablePath(r.cwd)}\n`),0)],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,n)=>n.exitCode=parseInt(e,10)],["echo",async(e,t,r)=>(r.stdout.write(`${e.join(" ")}\n`),0)],["__ysh_run_procedure",async(e,t,r)=>{const n=r.procedures[e[0]];return await E(n,{stdin:new p(r.stdin),stdout:new p(r.stdout),stderr:new p(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let n=r.stdin,s=r.stdout;const a=r.stderr,A=[],c=[];let l=0;for(;"--"!==e[l];){const t=e[l++],n=Number(e[l++]),s=l+n;for(let n=l;no.xfs.createReadStream(i.e.resolve(r.cwd,i.d.toPortablePath(e[n]))));break;case"<<<":A.push(()=>{const t=new u.PassThrough;return process.nextTick(()=>{t.write(`${e[n]}\n`),t.end()}),t});break;case">":c.push(o.xfs.createWriteStream(i.e.resolve(r.cwd,i.d.toPortablePath(e[n]))));break;case">>":c.push(o.xfs.createWriteStream(i.e.resolve(r.cwd,i.d.toPortablePath(e[n])),{flags:"a"}))}}if(A.length>0){const e=new u.PassThrough;n=e;const t=r=>{if(r===A.length)e.end();else{const n=A[r]();n.pipe(e,{end:!1}),n.on("end",()=>{t(r+1)})}};t(0)}if(c.length>0){const e=new u.PassThrough;s=e;for(const t of c)e.pipe(t)}const h=await E(Q(e.slice(l+1),t,r),{stdin:new p(n),stdout:new p(s),stderr:new p(a)}).run();return await Promise.all(c.map(e=>new Promise(t=>{e.on("close",()=>{t()}),e.end()}))),h}]]);async function y(e,t,r){const n=[],i=new u.PassThrough;return i.on("data",e=>n.push(e)),await S(e,t,I(r,{stdout:i})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function w(e,t,r){const n=e.map(async e=>{const n=await B(e.args,t,r);return{name:e.name,value:n.join(" ")}});return(await Promise.all(n)).reduce((e,t)=>(e[t.name]=t.value,e),{})}async function B(e,t,r){const n=new Map,i=[];let o=[];const s=e=>e.match(/[^ \r\n\t]+/g)||[],a=e=>{o.push(e)},A=()=>{o.length>0&&i.push(o.join("")),o=[]},c=e=>{a(e),A()},u=(e,t)=>{let r=n.get(e);void 0===r&&n.set(e,r=[]),r.push(t)};for(const n of e){switch(n.type){case"redirection":{const e=await B(n.args,t,r);for(const t of e)u(n.subtype,t)}break;case"argument":for(const e of n.segments)switch(e.type){case"text":a(e.text);break;case"glob":{const n=await t.glob.match(e.pattern,{cwd:r.cwd});if(!n.length)throw new Error(`No file matches found: "${e.pattern}". Note: Glob patterns currently only support files that exist on the filesystem (Help Wanted)`);for(const e of n.sort())c(e)}break;case"shell":{const n=await y(e.shell,t,r);if(e.quoted)a(n);else{const e=s(n);for(let t=0;t=0&&n0){const e=[];for(const[t,r]of n.entries())e.splice(e.length,0,t,String(r.length),...r);i.splice(0,0,"__ysh_set_redirects",...e,"--")}return i}function Q(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);const n=i.d.fromPortablePath(r.cwd);let o=r.environment;void 0!==o.PWD&&(o={...o,PWD:n});const[s,...a]=e;if("command"===s)return function(e,t,r,n){return r=>{const i=r[0]instanceof u.Transform?"pipe":r[0],o=r[1]instanceof u.Transform?"pipe":r[1],s=r[2]instanceof u.Transform?"pipe":r[2],a=h()(e,t,{...n,stdio:[i,o,s]});return 0==f++&&process.on("SIGINT",g),r[0]instanceof u.Transform&&r[0].pipe(a.stdin),r[1]instanceof u.Transform&&a.stdout.pipe(r[1],{end:!1}),r[2]instanceof u.Transform&&a.stderr.pipe(r[2],{end:!1}),{stdin:a.stdin,promise:new Promise(t=>{a.on("error",n=>{switch(0==--f&&process.off("SIGINT",g),n.code){case"ENOENT":r[2].write(`command not found: ${e}\n`),t(127);break;case"EACCESS":r[2].write(`permission denied: ${e}\n`),t(128);break;default:r[2].write(`uncaught error: ${n.message}\n`),t(1)}}),a.on("exit",e=>{0==--f&&process.off("SIGINT",g),t(null!==e?e:129)})})}}}(a[0],a.slice(1),0,{cwd:n,env:o});const A=t.builtins.get(s);if(void 0===A)throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return function(e){return t=>{const r="pipe"===t[0]?new u.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}(async({stdin:e,stdout:n,stderr:i})=>(r.stdin=e,r.stdout=n,r.stderr=i,await A(a,t,r)))}function b(e,t,r){return n=>{const i=new u.PassThrough;return{stdin:i,promise:S(e,t,I(r,{stdin:i}))}}}async function D(e,t,r){let n=e,i=null,o=null;for(;n;){const e=n.then?{...r}:r;let s;switch(n.type){case"command":{const i=await B(n.args,t,r),o=await w(n.envs,t,r);s=n.envs.length?Q(i,t,I(e,{environment:o})):Q(i,t,e)}break;case"subshell":{const i=await B(n.args,t,r),o=b(n.subshell,t,e);if(0===i.length)s=o;else{let r;do{r=String(Math.random())}while(Object.prototype.hasOwnProperty.call(e.procedures,r));e.procedures={...e.procedures},e.procedures[r]=o,s=Q([...i,"__ysh_run_procedure",r],t,e)}}break;case"envs":{const i=await w(n.envs,t,r);e.environment={...e.environment,...i},s=Q(["true"],t,e)}}if(void 0===s)throw new Error("Assertion failed: An action should have been generated");if(null===i)o=E(s,{stdin:new p(e.stdin),stdout:new p(e.stdout),stderr:new p(e.stderr)});else{if(null===o)throw new Error("The execution pipeline should have been setup");switch(i){case"|":case"|&":o=o.pipeTo(s)}}n.then?(i=n.then.type,n=n.then.chain):n=null}if(null===o)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function v(e,t,r){if(!e.then)return await D(e.chain,t,r);const n=await D(e.chain,t,r);if(null!==r.exitCode)return r.exitCode;switch(r.variables["?"]=String(n),e.then.type){case"&&":return 0===n?await v(e.then.line,t,r):n;case"||":return 0!==n?await v(e.then.line,t,r):n;default:throw new Error(`Unsupported command type: "${e.then.type}"`)}}async function S(e,t,r){let n=0;for(const i of e){if(n=await v(i,t,r),null!==r.exitCode)return r.exitCode;r.variables["?"]=String(n)}return n}function k(e){switch(e.type){case"redirection":return e.args.some(e=>k(e));case"argument":return e.segments.some(e=>(function(e){switch(e.type){case"variable":return"@"===e.name||"#"===e.name||"*"===e.name||Number.isFinite(parseInt(e.name,10))||!!e.defaultValue&&e.defaultValue.some(e=>k(e));case"shell":return x(e.shell);default:return!1}})(e));default:throw new Error("Unreacheable")}}function x(e){return e.some(e=>{for(;e;){let t=e.chain;for(;t;){let e;switch(t.type){case"subshell":e=x(t.subshell);break;case"command":e=t.envs.some(e=>e.args.some(e=>k(e)))||t.args.some(e=>k(e))}if(e)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function F(e,t=[],{builtins:r={},cwd:n=i.d.toPortablePath(process.cwd()),env:A=process.env,stdin:l=process.stdin,stdout:h=process.stdout,stderr:g=process.stderr,variables:f={},glob:p={isGlobPattern:c.a.isDynamicPattern,match:(e,{cwd:t,fs:r=o.xfs})=>c()(e,{cwd:i.d.fromPortablePath(t),fs:new s.a(r)})}}={}){const d={};for(const[e,t]of Object.entries(A))void 0!==t&&(d[e]=t);const C=new Map(m);for(const[e,t]of Object.entries(r))C.set(e,t);null===l&&(l=new u.PassThrough).end();const E=Object(a.parseShell)(e,p);if(!x(E)&&E.length>0&&t.length>0){let e=E[E.length-1];for(;e.then;)e=e.then.line;let r=e.chain;for(;r.then;)r=r.then.chain;"command"===r.type&&(r.args=r.args.concat(t.map(e=>({type:"argument",segments:[{type:"text",text:e}]}))))}return await S(E,{args:t,builtins:C,initialStdin:l,initialStdout:h,initialStderr:g,glob:p},{cwd:n,environment:d,exitCode:null,procedures:{},stdin:l,stdout:h,stderr:g,variables:Object.assign(Object.create(f),{"?":0})})}},function(e,t,r){"use strict";e.exports=r(456).isCI},function(e,t,r){"use strict";var n=r(109);e.exports=new n({explicit:[r(430),r(431),r(432)]})},function(e,t){const r=/^[0-9]+$/,n=(e,t)=>{const n=r.test(e),i=r.test(t);return n&&i&&(e=+e,t=+t),e===t?0:n&&!i?-1:i&&!n?1:en(t,e)}},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>0===n(e,t,r)},function(e,t,r){const n=r(39);e.exports=(e,t,r)=>{const i=new n(e,r),o=new n(t,r);return i.compare(o)||i.compareBuild(o)}},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>n(e,t,r)<0},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>n(e,t,r)>=0},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>n(e,t,r)<=0},function(e,t,r){const n=Symbol("SemVer ANY");class i{static get ANY(){return n}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}A("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===n?this.value="":this.value=this.operator+this.semver.version,A("comp",this)}parse(e){const t=this.options.loose?o[s.COMPARATORLOOSE]:o[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(A("Comparator.test",e,this.options.loose),this.semver===n||e===n)return!0;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}return a(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new u(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new u(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),A=a(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=a(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||o&&s||A||c}}e.exports=i;const{re:o,t:s}=r(110),a=r(297),A=r(168),c=r(39),u=r(65)},function(e,t,r){const n=r(39),i=r(235),{ANY:o}=i,s=r(65),a=r(298),A=r(169),c=r(232),u=r(234),l=r(233);e.exports=(e,t,r,h)=>{let g,f,p,d,C;switch(e=new n(e,h),t=new s(t,h),r){case">":g=A,f=u,p=c,d=">",C=">=";break;case"<":g=c,f=l,p=A,d="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(a(e,t,h))return!1;for(let r=0;r{e.semver===o&&(e=new i(">=0.0.0")),s=s||e,a=a||e,g(e.semver,s.semver,h)?s=e:p(e.semver,a.semver,h)&&(a=e)}),s.operator===d||s.operator===C)return!1;if((!a.operator||a.operator===d)&&f(e,a.semver))return!1;if(a.operator===C&&p(e,a.semver))return!1}return!0}},function(e,t,r){"use strict";const n=r(238);e.exports=(e,t={})=>{let r=(e,i={})=>{let o=t.escapeInvalid&&n.isInvalidBrace(i),s=!0===e.invalid&&!0===t.escapeInvalid,a="";if(e.value)return(o||s)&&n.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)a+=r(t);return a};return r(e)}},function(e,t,r){"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,r,n=1,i)=>!1!==i&&(!(!t.isInteger(e)||!t.isInteger(r))&&(Number(r)-Number(e))/Number(n)>=i),t.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||"open"===n.type||"close"===n.type)&&!0!==n.escaped&&(n.value="\\"+n.value,n.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0?(e.invalid=!0,!0):(!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0))),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],r=e=>{for(let n=0;nnull!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>o.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(s,"\\$1"),t.toPosixSlashes=e=>e.replace(/\\/g,"/"),t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{let i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):e.slice(0,i)+"\\"+e.slice(i)}},function(e,t,r){e.exports=f,f.Minimatch=p;var n={sep:"/"};try{n=r(12)}catch(e){}var i=f.GLOBSTAR=p.GLOBSTAR={},o=r(498),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},a="[^/]",A=a+"*?",c="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",u="(?:(?!(?:\\/|^)\\.).)*?",l="().*{}+?[]^$\\!".split("").reduce((function(e,t){return e[t]=!0,e}),{});var h=/\/+/;function g(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach((function(e){r[e]=t[e]})),Object.keys(e).forEach((function(t){r[t]=e[t]})),r}function f(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new p(t,r).match(e))}function p(e,t){if(!(this instanceof p))return new p(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==n.sep&&(e=e.split(n.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function d(e,t){if(t||(t=this instanceof p?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:o(e)}f.filter=function(e,t){return t=t||{},function(r,n,i){return f(r,e,t)}},f.defaults=function(e){if(!e||!Object.keys(e).length)return f;var t=f,r=function(r,n,i){return t.minimatch(r,n,g(e,i))};return r.Minimatch=function(r,n){return new t.Minimatch(r,g(e,n))},r},p.defaults=function(e){return e&&Object.keys(e).length?f.defaults(e).Minimatch:p},p.prototype.debug=function(){},p.prototype.make=function(){if(this._made)return;var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,r),r=this.globParts=r.map((function(e){return e.split(h)})),this.debug(this.pattern,r),r=r.map((function(e,t,r){return e.map(this.parse,this)}),this),this.debug(this.pattern,r),r=r.filter((function(e){return-1===e.indexOf(!1)})),this.debug(this.pattern,r),this.set=r},p.prototype.parseNegate=function(){var e=this.pattern,t=!1,r=this.options,n=0;if(r.nonegate)return;for(var i=0,o=e.length;i65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,o="",c=!!r.nocase,u=!1,h=[],g=[],f=!1,p=-1,d=-1,E="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",I=this;function m(){if(n){switch(n){case"*":o+=A,c=!0;break;case"?":o+=a,c=!0;break;default:o+="\\"+n}I.debug("clearStateChar %j %j",n,o),n=!1}}for(var y,w=0,B=e.length;w-1;x--){var F=g[x],M=o.slice(0,F.reStart),N=o.slice(F.reStart,F.reEnd-8),R=o.slice(F.reEnd-8,F.reEnd),K=o.slice(F.reEnd);R+=K;var L=M.split("(").length-1,O=K;for(w=0;w=0&&!(i=e[o]);o--);for(o=0;o>> no match, partial?",e,h,t,g),h!==a))}if("string"==typeof u?(c=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(o===a&&s===A)return!0;if(o===a)return r;if(s===A)return o===a-1&&""===e[o];throw new Error("wtf?")}},function(e,t,r){"use strict";function n(e){return"/"===e.charAt(0)}function i(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}e.exports="win32"===process.platform?i:n,e.exports.posix=n,e.exports.win32=i},function(e,t){e.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");Object.keys(t).forEach((function(e){n[e]=t[e]}));return n;function n(){for(var e=new Array(arguments.length),r=0;rnull!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>a.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(A,"\\$1"),t.toPosixSlashes=e=>e.replace(o,"/"),t.removeBackslashes=e=>e.replace(s,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{const i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):`${e.slice(0,i)}\\${e.slice(i)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let n=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(n=`(?:^(?!${n}).*$)`),n}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(12),i=r(559),o=r(562),s=r(563),a=r(564);t.default=class{constructor(e){this._settings=e,this.errorFilter=new s.default(this._settings),this.entryFilter=new o.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new i.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new a.default(this._settings)}_getRootDirectory(e){return n.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},function(e,t,r){"use strict";class n extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}class i{static fn(e){return(...t)=>new i((r,n,i)=>{t.push(i),e(...t).then(r,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,r)=>{this._reject=r;const n=e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(n,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(e=>{this._isPending=!1,t(e)},e=>{this._isPending=!1,r(e)},n)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._cancelHandlers.length>0)try{for(const e of this._cancelHandlers)e()}catch(e){this._reject(e)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new n(e))}}get isCanceled(){return this._isCanceled}}Object.setPrototypeOf(i.prototype,Promise.prototype),e.exports=i,e.exports.CancelError=n},function(e,t,r){"use strict";const n=r(583),i=r(585);class o extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function s(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let s;return await new Promise((a,A)=>{const c=e=>{e&&(e.bufferedData=s.getBufferedValue()),A(e)};(s=n(e,i(t),e=>{e?c(e):a()})).on("data",()=>{s.getBufferedLength()>r&&c(new o)})}),s.getBufferedValue()}e.exports=s,e.exports.default=s,e.exports.buffer=(e,t)=>s(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>s(e,{...t,array:!0}),e.exports.MaxBufferError=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(14),i=r(13),o=r(9),s=r(68),a=r(120),A=r(120),c=r(158),u=r(587),l=r(589),h=r(591),g=r(594),f=r(603),p=r(251),d=r(249),C=r(95),E=r(610),I=r(328),m=r(329),y=r(611),w=r(613),B=r(614),Q=r(615),b=Symbol("request"),D=Symbol("response"),v=Symbol("responseSize"),S=Symbol("downloadedSize"),k=Symbol("bodySize"),x=Symbol("uploadedSize"),F=Symbol("serverResponsesPiped"),M=Symbol("unproxyEvents"),N=Symbol("isFromCache"),R=Symbol("cancelTimeouts"),K=Symbol("startedReading"),L=Symbol("stopReading"),O=Symbol("triggerRead"),T=Symbol("body"),P=Symbol("jobs"),U=Symbol("originalResponse");t.kIsNormalizedAlready=Symbol("isNormalizedAlready");const _=C.default.string(process.versions.brotli);t.withoutBody=new Set(["GET","HEAD"]),t.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError"];const j=new Q.default,Y=async e=>new Promise((t,r)=>{const n=e=>{r(e)};e.once("error",n),e.once("open",()=>{e.off("error",n),t()})}),G=new Set([300,301,302,303,304,307,308]),J=["context","body","json","form"],H=(e,t)=>{const r={};for(const t of e)if(t)for(const e of J)e in t&&(r[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,r)};class z extends Error{constructor(e,t,r){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,r instanceof re?(Object.defineProperty(this,"request",{enumerable:!1,value:r}),Object.defineProperty(this,"response",{enumerable:!1,value:r[D]}),Object.defineProperty(this,"options",{enumerable:!1,value:r.options})):Object.defineProperty(this,"options",{enumerable:!1,value:r}),this.timings=null===(n=this.request)||void 0===n?void 0:n.timings,!C.default.undefined(t.stack)){const e=this.stack.indexOf(this.message)+this.message.length,r=this.stack.slice(e).split("\n").reverse(),n=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split("\n").reverse();for(;0!==n.length&&n[0]===r[0];)r.shift();this.stack=`${this.stack.slice(0,e)}${r.reverse().join("\n")}${n.reverse().join("\n")}`}}}t.RequestError=z;class q extends z{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}}t.MaxRedirectsError=q;class W extends z{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}}t.HTTPError=W;class V extends z{constructor(e,t){super(e.message,e,t),this.name="CacheError"}}t.CacheError=V;class X extends z{constructor(e,t){super(e.message,e,t),this.name="UploadError"}}t.UploadError=X;class Z extends z{constructor(e,t,r){super(e.message,e,r),this.name="TimeoutError",this.event=e.event,this.timings=t}}t.TimeoutError=Z;class $ extends z{constructor(e,t){super(e.message,e,t),this.name="ReadError"}}t.ReadError=$;class ee extends z{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}}t.UnsupportedProtocolError=ee;const te=["socket","connect","continue","information","upgrade","timeout"];class re extends i.Duplex{constructor(e,r={},n){super({highWaterMark:0}),this[S]=0,this[x]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[L]=!1,this[O]=!1,this[P]=[],this._progressCallbacks=[];const i=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",e=>{e.prependListener("data",i),e.on("data",s),e.prependListener("end",i),e.on("end",s)}),this.on("unpipe",e=>{e.off("data",i),e.off("data",s),e.off("end",i),e.off("end",s)}),this.on("pipe",e=>{e instanceof A.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});const{json:a,body:c,form:u}=r;(a||c||u)&&this._lockWrite(),(async r=>{var i;try{r.body instanceof o.ReadStream&&await Y(r.body),t.kIsNormalizedAlready in r?this.options=r:this.options=this.constructor.normalizeArguments(e,r,n);const{url:s}=this.options;if(!s)throw new TypeError("Missing `url` property");if(this.requestUrl=s.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed)return void(null===(i=this[b])||void 0===i||i.destroy());for(const e of this[P])e();this.requestInitialized=!0}catch(e){if(e instanceof z)return void this._beforeError(e);this.destroyed||this.destroy(e)}})(r)}static normalizeArguments(e,r,i){var o,a,A,c;const u=r;if(C.default.object(e)&&!C.default.urlInstance(e))r={...i,...e,...r};else{if(e&&r&&r.url)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...i,...r},e&&(r.url=e),C.default.urlInstance(r.url)&&(r.url=new s.URL(r.url.toString()))}if(!1===r.cache&&(r.cache=void 0),!1===r.dnsCache&&(r.dnsCache=void 0),C.assert.any([C.default.string,C.default.undefined],r.method),C.assert.any([C.default.object,C.default.undefined],r.headers),C.assert.any([C.default.string,C.default.urlInstance,C.default.undefined],r.prefixUrl),C.assert.any([C.default.object,C.default.undefined],r.cookieJar),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.searchParams),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.cache),C.assert.any([C.default.object,C.default.number,C.default.undefined],r.timeout),C.assert.any([C.default.object,C.default.undefined],r.context),C.assert.any([C.default.object,C.default.undefined],r.hooks),C.assert.any([C.default.boolean,C.default.undefined],r.decompress),C.assert.any([C.default.boolean,C.default.undefined],r.ignoreInvalidCookies),C.assert.any([C.default.boolean,C.default.undefined],r.followRedirect),C.assert.any([C.default.number,C.default.undefined],r.maxRedirects),C.assert.any([C.default.boolean,C.default.undefined],r.throwHttpErrors),C.assert.any([C.default.boolean,C.default.undefined],r.http2),C.assert.any([C.default.boolean,C.default.undefined],r.allowGetBody),C.assert.any([C.default.boolean,C.default.undefined],r.rejectUnauthorized),C.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(null==i?void 0:i.headers)?r.headers={...r.headers}:r.headers=p({...null==i?void 0:i.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(null==i?void 0:i.searchParams)){C.default.string(r.searchParams)||r.searchParams instanceof s.URLSearchParams||function(e){for(const t in e){const r=e[t];if(!(C.default.string(r)||C.default.number(r)||C.default.boolean(r)||C.default.null_(r)))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}(r.searchParams);const e=new s.URLSearchParams(r.searchParams);null===(o=null==i?void 0:i.searchParams)||void 0===o||o.forEach((t,r)=>{e.has(r)||e.append(r,t)}),r.searchParams=e}if(r.username=null!==(a=r.username)&&void 0!==a?a:"",r.password=null!==(A=r.password)&&void 0!==A?A:"",r.prefixUrl?(r.prefixUrl=r.prefixUrl.toString(),""===r.prefixUrl||r.prefixUrl.endsWith("/")||(r.prefixUrl+="/")):r.prefixUrl="",C.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=B.default(r.prefixUrl+r.url,r)}else(C.default.undefined(r.url)&&""!==r.prefixUrl||r.protocol)&&(r.url=B.default(r.prefixUrl,r));if(r.url){let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{const n=r.url;if(!n.href.startsWith(t))throw new Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new s.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if("unix:"===t&&(t="http:",r.url=new s.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),r.url.search){const e="_GOT_INTERNAL_TRIGGER_NORMALIZATION";r.url.searchParams.append(e,""),r.url.searchParams.delete(e)}if("http:"!==t&&"https:"!==t)throw new ee(r);""===r.username?r.username=r.url.username:r.url.username=r.username,""===r.password?r.password=r.url.password:r.url.password=r.password}const{cookieJar:l}=r;if(l){let{setCookie:e,getCookieString:t}=l;C.assert.function_(e),C.assert.function_(t),4===e.length&&0===t.length&&(e=n.promisify(e.bind(r.cookieJar)),t=n.promisify(t.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:t})}const{cache:f}=r;if(f&&(j.has(f)||j.set(f,new g((e,t)=>e[b](e,t),f))),!0===r.dnsCache)r.dnsCache=new h.default;else if(!(C.default.undefined(r.dnsCache)||r.dnsCache instanceof h.default))throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${C.default(r.dnsCache)}`);C.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout={...i.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});const d=r.hooks===(null==i?void 0:i.hooks);r.hooks={...r.hooks};for(const e of t.knownHookEvents)if(e in r.hooks){if(!C.default.array(r.hooks[e]))throw new TypeError(`Parameter \`${e}\` must be an Array, got ${C.default(r.hooks[e])}`);r.hooks[e]=[...r.hooks[e]]}else r.hooks[e]=[];if(i&&!d)for(const e of t.knownHookEvents){0!==i.hooks[e].length&&(r.hooks[e]=[...i.hooks[e],...r.hooks[e]])}if("followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent)for(const e in r.agent)if("http"!==e&&"https"!==e&&"http2"!==e)throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``);return r.maxRedirects=null!==(c=r.maxRedirects)&&void 0!==c?c:0,H([i,u],r),r}_lockWrite(){const e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){const{options:e}=this,{headers:r}=e,n=!C.default.undefined(e.form),o=!C.default.undefined(e.json),a=!C.default.undefined(e.body),A=n||o||a,c=t.withoutBody.has(e.method)&&!("GET"===e.method&&e.allowGetBody);if(this._cannotHaveBody=c,A){if(c)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([a,n,o].filter(e=>e).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(a&&!(e.body instanceof i.Readable)&&!C.default.string(e.body)&&!C.default.buffer(e.body)&&!I.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!C.default.object(e.form))throw new TypeError("The `form` option must be an Object");{const t=!C.default.string(r["content-type"]);a?(I.default(e.body)&&t&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[T]=e.body):n?(t&&(r["content-type"]="application/x-www-form-urlencoded"),this[T]=new s.URLSearchParams(e.form).toString()):(t&&(r["content-type"]="application/json"),this[T]=JSON.stringify(e.json));const i=await E.default(this[T],e.headers);C.default.undefined(r["content-length"])&&C.default.undefined(r["transfer-encoding"])&&(c||C.default.undefined(i)||(r["content-length"]=String(i)))}}else c?this._lockWrite():this._unlockWrite();this[k]=Number(r["content-length"])||void 0}async _onResponse(e){const{options:t}=this,{url:r}=t;this[U]=e,t.decompress&&(e=l(e));const n=e.statusCode,i=e;i.statusMessage=i.statusMessage?i.statusMessage:a.STATUS_CODES[n],i.url=t.url.toString(),i.requestUrl=this.requestUrl,i.redirectUrls=this.redirects,i.request=this,i.isFromCache=e.fromCache||!1,i.ip=this.ip,this[N]=i.isFromCache,this[v]=Number(e.headers["content-length"])||void 0,this[D]=e,e.once("end",()=>{this[v]=this[S],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",t=>{e.destroy(),this._beforeError(new $(t,this))}),e.once("aborted",()=>{this.aborted||this._beforeError(new $({name:"Error",message:"The server aborted the pending request"},this))}),this.emit("downloadProgress",this.downloadProgress);const o=e.headers["set-cookie"];if(C.default.object(t.cookieJar)&&o){let e=o.map(async e=>t.cookieJar.setCookie(e,r.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){return void this._beforeError(e)}}if(t.followRedirect&&e.headers.location&&G.has(n)){if(e.resume(),this[b]&&(this[R](),delete this[b],this[M]()),!(303===n&&"GET"!==t.method&&"HEAD"!==t.method)&&t.methodRewriting||(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form),this.redirects.length>=t.maxRedirects)return void this._beforeError(new q(this));try{const n=Buffer.from(e.headers.location,"binary").toString(),o=new s.URL(n,r),a=o.toString();decodeURI(a),o.hostname!==r.hostname&&("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(delete t.username,delete t.password)),this.redirects.push(a),t.url=o;for(const e of t.hooks.beforeRedirect)await e(t,i);this.emit("redirect",i,t),await this._makeRequest()}catch(e){return void this._beforeError(e)}return}const A=t.followRedirect?299:399,c=n>=200&&n<=A||304===n;if(!t.throwHttpErrors||c||(await this._beforeError(new W(i)),!this.destroyed)){e.on("readable",()=>{this[O]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(const r of this[F])if(!r.headersSent){for(const n in e.headers){const i=!t.decompress||"content-encoding"!==n,o=e.headers[n];i&&r.setHeader(n,o)}r.statusCode=n}}}_onRequest(e){const{options:t}=this,{timeout:r,url:n}=t;u.default(e),this[R]=y.default(e,r,n);const i=t.cache?"cacheableResponse":"response";e.once(i,e=>{this._onResponse(e)}),e.once("error",t=>{e.destroy(),t=t instanceof y.TimeoutError?new Z(t,this.timings,this):new z(t.message,t,this),this._beforeError(t)}),this[M]=m.default(e,this,te),this[b]=e,this.emit("uploadProgress",this.uploadProgress);const o=this[T],s=0===this.redirects.length?this:e;C.default.nodeStream(o)?(o.pipe(s),o.once("error",e=>{this._beforeError(new X(e,this))}),o.once("end",()=>{delete t.body})):(this._unlockWrite(),C.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(s.end(),this._lockWrite()):(this._writeRequest(o,null,()=>{}),s.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((r,n)=>{Object.assign(t,w.default(e)),delete t.url;const i=j.get(t.cache)(t,e=>{const t=e,{req:n}=t;n&&n.emit("cacheableResponse",t),r(t)});t.url=e,i.once("error",n),i.once("request",r)})}async _makeRequest(){var e;const{options:t}=this,{url:r,headers:n,request:i,agent:o,timeout:s}=t;for(const e in n)if(C.default.undefined(n[e]))delete n[e];else if(C.default.null_(n[e]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(t.decompress&&C.default.undefined(n["accept-encoding"])&&(n["accept-encoding"]=_?"gzip, deflate, br":"gzip, deflate"),t.cookieJar){const e=await t.cookieJar.getCookieString(t.url.toString());C.default.nonEmptyString(e)&&(t.headers.cookie=e)}for(const e of t.hooks.beforeRequest){const r=await e(t);if(!C.default.undefined(r)){t.request=()=>r;break}}if(!t.dnsCache||"lookup"in t||(t.lookup=t.dnsCache.lookup),"unix"===r.hostname){const e=/(?.+?):(?.+)/.exec(`${r.pathname}${r.search}`);if(null==e?void 0:e.groups){const{socketPath:r,path:n}=e.groups;Object.assign(t,{socketPath:r,path:n,host:""})}}const A="https:"===r.protocol;let u;u=t.http2?f.auto:A?c.request:a.request;const l=null!==(e=t.request)&&void 0!==e?e:u,h=t.cache?this._createCacheableRequest:l;o&&!t.http2&&(t.agent=o[A?"https":"http"]),t[b]=l,delete t.request,delete t.timeout;try{let e=await h(r,t);C.default.undefined(e)&&(e=u(r,t)),t.request=i,t.timeout=s,t.agent=o,p=e,!C.default.object(p)||"statusCode"in p?this.writable?(this.once("finish",()=>{this._onResponse(e)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(e):this._onRequest(e)}catch(e){if(e instanceof g.CacheError)throw new V(e,this);throw new z(e.message,e,this)}var p}async _beforeError(e){this[L]=!0,e instanceof z||(e=new z(e.message,e,this));try{const{response:t}=e;t&&(t.setEncoding(this._readableState.encoding),t.rawBody=await d.buffer(t),t.body=t.rawBody.toString())}catch(e){}try{for(const t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new z(t.message,t,this)}this.destroyed||this.destroy(e)}_read(){this[O]=!0;const e=this[D];if(e&&!this[L]){let t;for(e.readableLength&&(this[O]=!1);null!==(t=e.read());){this[S]+=t.length,this[K]=!0;const e=this.downloadProgress;e.percent<1&&this.emit("downloadProgress",e),this.push(t)}}}_write(e,t,r){const n=()=>{this._writeRequest(e,t,r)};this.requestInitialized?n():this[P].push(n)}_writeRequest(e,t,r){this._progressCallbacks.push(()=>{this[x]+=Buffer.byteLength(e,t);const r=this.uploadProgress;r.percent<1&&this.emit("uploadProgress",r)}),this[b].write(e,t,e=>{e||0===this._progressCallbacks.length||this._progressCallbacks.shift()(),r(e)})}_final(e){const t=()=>{for(;0!==this._progressCallbacks.length;)this._progressCallbacks.shift()();b in this?this[b].end(t=>{t||(this[k]=this[x],this.emit("uploadProgress",this.uploadProgress),this[b].emit("upload-complete")),e(t)}):e()};this.requestInitialized?t():this[P].push(t)}_destroy(e,t){var r;b in this&&(this[R](),(null===(r=this[D])||void 0===r?void 0:r.complete)||this[b].destroy()),null===e||C.default.undefined(e)||e instanceof z||(e=new z(e.message,e,this)),t(e)}get ip(){var e;return null===(e=this[b])||void 0===e?void 0:e.socket.remoteAddress}get aborted(){var e,t,r;return(null!==(t=null===(e=this[b])||void 0===e?void 0:e.destroyed)&&void 0!==t?t:this.destroyed)&&!(null===(r=this[U])||void 0===r?void 0:r.complete)}get socket(){var e;return null===(e=this[b])||void 0===e?void 0:e.socket}get downloadProgress(){let e;return{percent:e=this[v]?this[S]/this[v]:this[v]===this[S]?1:0,transferred:this[S],total:this[v]}}get uploadProgress(){let e;return{percent:e=this[k]?this[x]/this[k]:this[k]===this[x]?1:0,transferred:this[x],total:this[k]}}get timings(){var e;return null===(e=this[b])||void 0===e?void 0:e.timings}get isFromCache(){return this[N]}pipe(e,t){if(this[K])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof A.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof A.ServerResponse&&this[F].delete(e),super.unpipe(e),this}}t.default=re},function(e,t,r){"use strict";e.exports=e=>{const t={};for(const[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}},function(e,t){e.exports=require("http2")},function(e,t,r){"use strict";const n=r(96);class i{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}}const o=r(144),s=r(330),a=r(176),A=r(331),c=A.Sync,u=A.Tar,l=r(255),h=n.alloc(1024),g=Symbol("onStat"),f=Symbol("ended"),p=Symbol("queue"),d=Symbol("current"),C=Symbol("process"),E=Symbol("processing"),I=Symbol("processJob"),m=Symbol("jobs"),y=Symbol("jobDone"),w=Symbol("addFSEntry"),B=Symbol("addTarEntry"),Q=Symbol("stat"),b=Symbol("readdir"),D=Symbol("onreaddir"),v=Symbol("pipe"),S=Symbol("entry"),k=Symbol("entryOpt"),x=Symbol("writeEntryClass"),F=Symbol("write"),M=Symbol("ondrain"),N=r(9),R=r(12),K=r(257)(class extends o{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[x]=A,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),this.zip=null,e.gzip?("object"!=typeof e.gzip&&(e.gzip={}),this.zip=new s.Gzip(e.gzip),this.zip.on("data",e=>super.write(e)),this.zip.on("end",e=>super.end()),this.zip.on("drain",e=>this[M]()),this.on("resume",e=>this.zip.resume())):this.on("drain",this[M]),this.portable=!!e.portable,this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter="function"==typeof e.filter?e.filter:e=>!0,this[p]=new l,this[m]=0,this.jobs=+e.jobs||4,this[E]=!1,this[f]=!1}[F](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[C](),this}write(e){if(this[f])throw new Error("write after end");return e instanceof a?this[B](e):this[w](e),this.flowing}[B](e){const t=R.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),this.filter(e.path,e)){const r=new i(e.path,t,!1);r.entry=new u(e,this[k](r)),r.entry.on("end",e=>this[y](r)),this[m]+=1,this[p].push(r)}else e.resume();this[C]()}[w](e){const t=R.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[p].push(new i(e,t)),this[C]()}[Q](e){e.pending=!0,this[m]+=1;const t=this.follow?"stat":"lstat";N[t](e.absolute,(t,r)=>{e.pending=!1,this[m]-=1,t?this.emit("error",t):this[g](e,r)})}[g](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[C]()}[b](e){e.pending=!0,this[m]+=1,N.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[m]-=1,t)return this.emit("error",t);this[D](e,r)})}[D](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[C]()}[C](){if(!this[E]){this[E]=!0;for(let e=this[p].head;null!==e&&this[m]{this.warn(e,t)},noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[S](e){this[m]+=1;try{return new this[x](e.path,this[k](e)).on("end",()=>this[y](e)).on("error",e=>this.emit("error",e))}catch(e){this.emit("error",e)}}[M](){this[d]&&this[d].entry&&this[d].entry.resume()}[v](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)});const t=e.entry,r=this.zip;r?t.on("data",e=>{r.write(e)||t.pause()}):t.on("data",e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});K.Sync=class extends K{constructor(e){super(e),this[x]=c}pause(){}resume(){}[Q](e){const t=this.follow?"statSync":"lstatSync";this[g](e,N[t](e.absolute))}[b](e,t){this[D](e,N.readdirSync(e.absolute))}[v](e){const t=e.entry,r=this.zip;e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)}),r?t.on("data",e=>{r.write(e)}):t.on("data",e=>{super[F](e)})}},e.exports=K},function(e,t,r){var n=r(59),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=s),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(tthis.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&ithis.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)r.push(o.value);return r},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;null!==r;r=r.prev){var n=r.prev;r.prev=r.next,r.next=n}return this.head=t,this.tail=e,this};try{r(620)(n)}catch(e){}},function(e,t,r){"use strict";const n=r(96),i=r(145),o=r(12);class s{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){const e=this.encodeBody();if(""===e)return null;const t=n.byteLength(e),r=512*Math.ceil(1+t/512),s=n.allocUnsafe(r);for(let e=0;e<512;e++)s[e]=0;new i({path:("PaxHeader/"+o.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(s),s.write(e,512,t,"utf8");for(let e=t+512;e=Math.pow(10,i)&&(i+=1),i+r+t}}s.parse=(e,t,r)=>new s(a(A(e),t),r);const a=(e,t)=>t?Object.keys(e).reduce((t,r)=>(t[r]=e[r],t),t):e,A=e=>e.replace(/\n$/,"").split("\n").reduce(c,Object.create(null)),c=(e,t)=>{const r=parseInt(t,10);if(r!==n.byteLength(t)+1)return e;const i=(t=t.substr((r+" ").length)).split("="),o=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!o)return e;const s=i.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(1e3*s):/^[0-9]+$/.test(s)?+s:s,e};e.exports=s},function(e,t,r){"use strict";e.exports=e=>(class extends e{warn(e,t){if(this.strict)if(t instanceof Error)this.emit("error",t);else{const r=new Error(e);r.data=t,this.emit("error",r)}else this.emit("warn",e,t)}})},function(e,t,r){"use strict";const n=r(96),i=r(143),o=r(178),s=r(9),a=r(146),A=r(12),c=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const n=i(e);if(n.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!n.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&u(n,t),n.noResume||c(n),n.file&&n.sync?l(n):n.file?h(n,r):g(n)},e=>{const t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()}),u=(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||A.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(A.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))},l=e=>{const t=g(e),r=e.file;let i,o=!0;try{const a=s.statSync(r),A=e.maxReadSize||16777216;if(a.size{const r=new o(e),n=e.maxReadSize||16777216,i=e.file,A=new Promise((e,t)=>{r.on("error",t),r.on("end",e),s.stat(i,(e,o)=>{if(e)t(e);else{const e=new a.ReadStream(i,{readSize:n,size:o.size});e.on("error",t),e.pipe(r)}})});return t?A.then(t,t):A},g=e=>new o(e)},function(e,t,r){var n=r(40),i=r(179),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||(s.test(e)||!o.test(e)||null!=t&&e in Object(t))}},function(e,t,r){var n=r(643),i=r(659),o=r(661),s=r(662),a=r(663);function A(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=r}},function(e,t,r){var n=r(181),i=r(667),o=r(668),s=r(669),a=r(670),A=r(671);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=a,c.prototype.set=A,e.exports=c},function(e,t,r){(function(e){var n=r(66),i=r(675),o=t&&!t.nodeType&&t,s=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=s&&s.exports===o?n.Buffer:void 0,A=(a?a.isBuffer:void 0)||i;e.exports=A}).call(this,r(141)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,r){(function(e){var n=r(336),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=o&&o.exports===i&&n.process,a=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=a}).call(this,r(141)(e))},function(e,t,r){var n=r(343),i=r(344),o=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,a=s?function(e){return null==e?[]:(e=Object(e),n(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=a},function(e,t){e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,a)}a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a.isError=function(e){return e&&"ValidationError"===e.name},a.formatError=function(e,t){"string"==typeof e&&(e=s(e));var r=function(t){return t.path=t.label||t.path||"this","function"==typeof e?e(t):e};return 1===arguments.length?r:r(t)},e.exports=t.default},function(e,t,r){var n=r(709),i=r(82);e.exports=function(e,t){return e&&n(e,t,i)}},function(e,t,r){var n=r(147),i=r(114);e.exports=function(e,t){for(var r=0,o=(t=n(t,e)).length;null!=e&&r",pointerSmall:"»",info:"i",warning:"‼",hamburger:"≡",smiley:"☺",mustache:"┌─┐",heart:o.heart,nodejs:"♦",arrowUp:o.arrowUp,arrowDown:o.arrowDown,arrowLeft:o.arrowLeft,arrowRight:o.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",questionMarkPrefix:"?",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};"linux"===i&&(o.questionMarkPrefix="?");const a="win32"===i?s:o;e.exports=Object.assign(e=>{if(a===o)return e;for(const[t,r]of Object.entries(o))r!==a[t]&&(e=e.replace(new RegExp(n(r),"g"),a[t]));return e},a),e.exports.main=o,e.exports.windows=s},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,r){var n=r(766);e.exports=function(e){return(null==e?0:e.length)?n(e,1):[]}},function(e){e.exports=JSON.parse('[["0","\\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]')},function(e,t,r){"use strict";var n=r(118).codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(r){t||(t=!0,e.call(this,r))}}(o||i);var s=t._writableState,a=t._readableState,A=r.readable||!1!==r.readable&&t.readable,c=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||l()},l=function(){c=!1,A||o.call(t)},h=function(){A=!1,c||o.call(t)},g=function(e){o.call(t,e)},f=function(){return(!A||a&&a.ended)&&(!c||s&&s.ended)?void 0:o.call(t,new n)},p=function(){t.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?c&&!s&&(t.on("end",u),t.on("close",u)):(t.on("complete",l),t.on("abort",f),t.req?p():t.on("request",p)),t.on("end",h),t.on("finish",l),!1!==r.error&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",p),t.req&&t.req.removeListener("finish",l),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",l),t.removeListener("end",h),t.removeListener("error",g),t.removeListener("close",f)}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(44);class i extends n.a{constructor(e,{baseFs:t,pathUtils:r}){super(r),this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(44);class i extends n.a{constructor(e,t){super(t),this.instance=null,this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(32),i=r(44),o=r(4);const s=/^[0-9]+$/,a=/^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,A=/^([^/]+-)?[a-f0-9]+$/;class c extends i.a{constructor({baseFs:e=new n.a}={}){super(o.e),this.baseFs=e}static makeVirtualPath(e,t,r){if("$$virtual"!==o.e.basename(e))throw new Error('Assertion failed: Virtual folders must be named "$$virtual"');if(!o.e.basename(t).match(A))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");const n=o.e.relative(o.e.dirname(e),r).split("/");let i=0;for(;i!!e.match(t))}function p(e){const t=(e=d(e)).indexOf("#");if(-1===t)return{repo:e,treeish:{protocol:g.Head,request:"master"},extra:{}};const r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){const e=A.a.parse(n);for(const[t,r]of Object.entries(e))if("string"!=typeof r)throw new Error(`Assertion failed: The ${t} parameter must be a literal string`);const t=Object.values(g).find(t=>Object.prototype.hasOwnProperty.call(e,t));let i,o;void 0!==t?(i=t,o=e[t]):(i=g.Head,o="master");for(const t of Object.values(g))delete e[t];return{repo:r,treeish:{protocol:i,request:o},extra:e}}{const e=n.indexOf(":");let t,i;return-1===e?(t=null,i=n):(t=n.slice(0,e),i=n.slice(e+1)),{repo:r,treeish:{protocol:t,request:i},extra:{}}}}function d(e){return e=(e=(e=e.replace(/^git\+https:/,"https:")).replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3")).replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3")}function C(e){return i.structUtils.makeLocator(e,d(e.reference))}async function E(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);let r;try{r=await i.execUtils.execvp("git",["ls-remote","--refs",d(e)],{cwd:t.startingCwd,env:l(),strict:!0})}catch(t){throw t.message=`Listing the refs for ${e} failed`,t}const n=new Map,o=/^([a-f0-9]{40})\t(refs\/[^\n]+)/gm;let s;for(;null!==(s=o.exec(r.stdout));)n.set(s[2],s[1]);return n}async function I(e,t){const{repo:r,treeish:{protocol:n,request:i},extra:o}=p(e),s=await E(r,t),a=(e,t)=>{switch(e){case g.Commit:if(!t.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return A.a.stringify({...o,commit:t});case g.Head:{const e=s.get(`refs/heads/${t}`);if(void 0===e)throw new Error(`Unknown head ("${t}")`);return A.a.stringify({...o,commit:e})}case g.Tag:{const e=s.get(`refs/tags/${t}`);if(void 0===e)throw new Error(`Unknown tag ("${t}")`);return A.a.stringify({...o,commit:e})}case g.Semver:{if(!u.a.validRange(t))throw new Error(`Invalid range ("${t}")`);const e=new Map([...s.entries()].filter(([e])=>e.startsWith("refs/tags/")).map(([e,t])=>[u.a.parse(e.slice(10)),t]).filter(e=>null!==e[0])),r=u.a.maxSatisfying([...e.keys()],t);if(null===r)throw new Error(`No matching range ("${t}")`);return A.a.stringify({...o,commit:e.get(r)})}case null:{let e;if(null!==(e=c(g.Commit,t)))return e;if(null!==(e=c(g.Tag,t)))return e;if(null!==(e=c(g.Head,t)))return e;throw t.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${e}")`)}},c=(e,t)=>{try{return a(e,t)}catch(e){return null}};return`${r}#${a(n,i)}`}async function m(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);const{repo:r,treeish:{protocol:n,request:a}}=p(e);if("commit"!==n)throw new Error("Invalid treeish protocol when cloning");const A=await s.xfs.mktempPromise(),c={cwd:A,env:l(),strict:!0};try{await i.execUtils.execvp("git",["clone","-c core.autocrlf=false",`${d(r)}`,o.d.fromPortablePath(A)],c),await i.execUtils.execvp("git",["checkout",`${a}`],c)}catch(e){throw e.message=`Repository clone failed: ${e.message}`,e}return A}!function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"}(g||(g={}));var y=r(121),w=r(37);r.d(t,"gitUtils",(function(){return n}));const B={fetchers:[class{supports(e,t){return f(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,n=C(e),o=await this.downloadHosted(n,t);if(null!==o)return o;const[s,a,A]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${i.structUtils.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,t)});return{packageFs:s,releaseFs:a,prefixPath:i.structUtils.getIdentVendorPath(e),checksum:A}}async downloadHosted(e,t){return t.project.configuration.reduceHook(e=>e.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){const r=await m(e.reference,t.project.configuration),n=p(e.reference),a=o.e.join(r,"package.tgz");await i.scriptUtils.prepareExternalProject(r,a,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace});const A=await s.xfs.readFilePromise(a);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.convertToZip(A,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:i.structUtils.getIdentVendorPath(e),stripComponents:1}))}}],resolvers:[class{supportsDescriptor(e,t){return f(e.range)}supportsLocator(e,t){return f(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=await I(e.range,r.project.configuration);return[i.structUtils.makeLocator(e,n)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await w.a.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:y.a.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]};t.default=B},function(e,t,r){"use strict";var n=r(427);e.exports=n},function(e,t,r){var n,i=r(492),o=r(304),s=function(e,t){return t.description=e,t},a=function(e,t,r){return s(e,(function(e){return e instanceof t[r]}))};(n={}).isNumTerm=s("a NumTerm (non-zero integer)",(function(e){return e===(0|e)&&0!==e})),n.isNameTerm=s("a NameTerm (string)",(function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)})),n.isTerm=s("a Term (appropriate string or number)",(function(e){return n.isNumTerm(e)||n.isNameTerm(e)})),n.isWholeNumber=s("a whole number (integer >= 0)",(function(e){return e===(0|e)&&e>=0})),n.isFormula=a("a Formula",n,"Formula"),n.isClause=a("a Clause",n,"Clause"),n.isBits=a("a Bits",n,"Bits"),n._isInteger=s("an integer",(function(e){return e===(0|e)})),n._isFunction=s("a Function",(function(e){return"function"==typeof e})),n._isString=s("a String",(function(e){return"string"==typeof e})),n._isArrayWhere=function(e){var t="an array";return e.description&&(t+=" of "+e.description),s(t,(function(t){if(o.isArray(t)){for(var r=0;r=t.length)throw new Error("Bad variable num: "+e);return t[e]},n.Solver.prototype.toNumTerm=function(e,t){if(p&&p(e,n.isTerm),"number"==typeof e)return e;for(var r=!1;"-"===e.charAt(0);)e=e.slice(1),r=!r;var i=this.getVarNum(e,t);return i?r?-i:i:0},n.Solver.prototype.toNameTerm=function(e){if(p&&p(e,n.isTerm),"string"==typeof e){for(;"--"===e.slice(0,2);)e=e.slice(2);return e}var t=!1;return e<0&&(t=!0,e=-e),e=this.getVarName(e),t&&(e="-"+e),e},n.Solver.prototype._addClause=function(e,t,r){p&&p(e,n.isClause);var i=null;t&&(i=t,p&&p(i,l(n.isNumTerm)));var o=!1,s=!1,a=e.terms.length;i&&(e=e.append(i));for(var A=0;A=this._num2name.length)throw new Error("Bad variable number: "+u);A0,u=null;if(t?s=t:(u=[],s=function(e,t){u.push({clauses:e,extraTerms:t})}),c&&!A.occursPositively){A.occursPositively=!0;var l=r._generateFormula(!0,a);s(l,[-i])}else if(!c&&!A.occursNegatively){A.occursNegatively=!0;l=r._generateFormula(!1,a);s(l,[i])}if(A.occursPositively&&A.occursNegatively&&delete r._ungeneratedFormulas[i],u&&u.length)for(var h=function(e){r._useFormulaTerm(e,s)};u.length;){var g=u.pop();r._addClauses(g.clauses,g.extraTerms,h)}}},n.Solver.prototype._addClauses=function(e,t,r){p&&p(e,l(n.isClause));var i=this;o.each(e,(function(e){i._addClause(e,t,r)}))},n.Solver.prototype.require=function(){this._requireForbidImpl(!0,o.flatten(arguments))},n.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,o.flatten(arguments))},n.Solver.prototype._requireForbidImpl=function(e,t){var r=this;p&&p(t,l(h)),o.each(t,(function(t){if(t instanceof n.NotFormula)r._requireForbidImpl(!e,[t.operand]);else if(t instanceof n.Formula){var i=r._getFormulaInfo(t);if(null!==i.varNum){var o=e?1:-1;r._addClause(new n.Clause(o*i.varNum))}else r._addClauses(r._generateFormula(e,t));e?i.isRequired=!0:i.isForbidden=!0}else r._addClauses(r._generateFormula(e,t))}))},n.Solver.prototype._generateFormula=function(e,t,r){if(p&&p(t,h),t instanceof n.NotFormula)return this._generateFormula(!e,t.operand);if(t instanceof n.Formula){var i=this._getFormulaInfo(t);if(e&&i.isRequired||!e&&i.isForbidden)return[];if(e&&i.isForbidden||!e&&i.isRequired)return[new n.Clause];var s=t.generateClauses(e,r||this._termifier);return o.isArray(s)?s:[s]}var a=this.toNumTerm(t),A=e?1:-1;return a===A*n.NUM_TRUE||a===-A*n.NUM_FALSE?[]:a===A*n.NUM_FALSE||a===-A*n.NUM_TRUE?[new n.Clause]:[new n.Clause(A*a)]},n.Solver.prototype._clauseData=function(){var e=o.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},n.Solver.prototype._clauseStrings=function(){var e=this,t=e._clauseData();return o.map(t,(function(t){return o.map(t,(function(t){var r=e.toNameTerm(t);if(/\s/.test(r)){var n="";"-"===r.charAt(0)&&(n="-",r=r.slice(1)),r=n+'"'+r+'"'}return r})).join(" v ")}))},n.Solver.prototype._getFormulaInfo=function(e,t){var r=e.guid();if(!this._formulaInfo[r]){if(t)return null;this._formulaInfo[r]=new d}return this._formulaInfo[r]},n.Solver.prototype._formulaToTerm=function(e){if(o.isArray(e))return p&&p(e,l(h)),o.map(e,o.bind(this._formulaToTerm,this));if(p&&p(e,h),e instanceof n.NotFormula)return n.not(this._formulaToTerm(e.operand));if(e instanceof n.Formula){var t=this._getFormulaInfo(e);if(t.isRequired)return n.NUM_TRUE;if(t.isForbidden)return n.NUM_FALSE;if(null===t.varNum){var r=e.type;this._nextFormulaNumByType[r]||(this._nextFormulaNumByType[r]=1);var i=this._nextFormulaNumByType[r]++;t.varName="$"+e.type+i,t.varNum=this.getVarNum(t.varName,!1,!0),this._ungeneratedFormulas[t.varNum]=e}return t.varNum}return this.toNumTerm(e)},n.or=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.OrFormula(e)},n.OrFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.OrFormula,"or",{generateClauses:function(e,t){if(e)return t.clause(this.operands);var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!1,e))})),r}}),n.NotFormula=function(e){p&&p(e,h),this.operand=e},n._defineFormula(n.NotFormula,"not"),n.and=function(){var e=o.flatten(arguments);return 0===e.length?n.TRUE:1===e.length?(p&&p(e[0],h),e[0]):new n.AndFormula(e)},n.AndFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AndFormula,"and",{generateClauses:function(e,t){if(e){var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!0,e))})),r}return t.clause(o.map(this.operands,n.not))}});var C=function(e,t){for(var r=[],n=0;n3)return t.generate(e,n.xor(o.map(C(this.operands,3),(function(e){return n.xor(e)}))));if(e){if(0===r.length)return t.clause();if(1===r.length)return t.clause(r[0]);if(2===r.length){var s=r[0],a=r[1];return[t.clause(s,a),t.clause(i(s),i(a))]}if(3===r.length){s=r[0],a=r[1];var A=r[2];return[t.clause(s,a,A),t.clause(s,i(a),i(A)),t.clause(i(s),a,i(A)),t.clause(i(s),i(a),A)]}}else{if(0===r.length)return[];if(1===r.length)return t.clause(i(r[0]));if(2===r.length){s=r[0],a=r[1];return[t.clause(s,i(a)),t.clause(i(s),a)]}if(3===r.length){s=r[0],a=r[1],A=r[2];return[t.clause(i(s),i(a),i(A)),t.clause(i(s),a,A),t.clause(s,i(a),A),t.clause(s,a,i(A))]}}}}),n.atMostOne=function(){var e=o.flatten(arguments);return e.length<=1?n.TRUE:new n.AtMostOneFormula(e)},n.AtMostOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AtMostOneFormula,"atMostOne",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length<=1)return[];if(2===r.length)return t.generate(e,n.not(n.and(r)));if(e&&3===r.length){for(var s=[],a=0;a>>=1;return new n.Bits(t)},n.variableBits=function(e,t){p&&p(t,n.isWholeNumber);for(var r=[],i=0;iA.length;){var c=a.pop();s.push(r.clause(n.not(c)))}for(var u=o.map(A,(function(e,t){return t=0;l--)s.push(r.clause(u.slice(l+1),n.not(a[l]),A[l]));return i&&s.push.apply(s,r.generate(!0,n.or(u))),s};n._defineFormula(n.LessThanOrEqualFormula,"lte",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!1):E(this.bits2,this.bits1,t,!0)}}),n.lessThan=function(e,t){return new n.LessThanFormula(e,t)},n.LessThanFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t},n._defineFormula(n.LessThanFormula,"lt",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!0):E(this.bits2,this.bits1,t,!1)}}),n.greaterThan=function(e,t){return n.lessThan(t,e)},n.greaterThanOrEqual=function(e,t){return n.lessThanOrEqual(t,e)},n.equalBits=function(e,t){return new n.EqualBitsFormula(e,t)},n.EqualBitsFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Logic.equalBits"),this.bits1=e,this.bits2=t},n._defineFormula(n.EqualBitsFormula,"equalBits",{generateClauses:function(e,t){for(var r=this.bits1.bits,i=this.bits2.bits,o=Math.max(r.length,i.length),s=[],a=0;a=r.length?s.push(n.not(i[a])):a>=i.length?s.push(n.not(r[a])):s.push(n.equiv(r[a],i[a]));return t.generate(e,n.and(s))}}),n.HalfAdderSum=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderSum,"hsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b))}}),n.HalfAdderCarry=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderCarry,"hcarry",{generateClauses:function(e,t){return t.generate(e,n.and(this.a,this.b))}}),n.FullAdderSum=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderSum,"fsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b,this.c))}}),n.FullAdderCarry=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderCarry,"fcarry",{generateClauses:function(e,t){return t.generate(!e,n.atMostOne(this.a,this.b,this.c))}});var I=function(e){p&&p(e,l(l(h)));for(var t=o.map(e,o.clone),r=0,i=[];r=e.length;)e.push([]);e[t].push(r)},y=function(e,t){if(p&&p(e,l(h)),"number"==typeof t)p&&p(t,n.isWholeNumber);else if(p&&p(t,l(n.isWholeNumber)),e.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+e.length+" and "+t.length)};n.weightedSum=function(e,t){if(y(e,t),0===e.length)return new n.Bits([]);"number"==typeof t&&(t=o.map(e,(function(){return t})));var r=[];return o.each(e,(function(e,n){for(var i=t[n],o=0;i;)1&i&&m(r,o,e),i>>>=1,o++})),new n.Bits(I(r))},n.sum=function(){var e=o.flatten(arguments);p&&p(e,l(g));var t=[];return o.each(e,(function(e){e instanceof n.Bits?o.each(e.bits,(function(e,r){m(t,r,e)})):m(t,0,e)})),new n.Bits(I(t))},n.Solver.prototype.solve=function(e){if(void 0!==e&&!(e>=1))throw new Error("_assumpVar must be a variable number");if(this._unsat)return null;for(;this._numClausesAddedToMiniSat0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(r);var i=this.solve(r);return this._minisat.retireVar(r),i},n.Assumption=function(e){p&&p(e,h),this.formula=e},n._defineFormula(n.Assumption,"assump",{generateClauses:function(e,t){return e?t.clause(this.formula):t.clause(n.not(this.formula))}}),n.Solution=function(e,t){var r=this;r._solver=e,r._assignment=t,r._ungeneratedFormulas=o.clone(e._ungeneratedFormulas),r._formulaValueCache={},r._termifier=new n.Termifier(r._solver),r._termifier.term=function(e){return r.evaluate(e)?n.NUM_TRUE:n.NUM_FALSE},r._ignoreUnknownVariables=!1},n.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},n.Solution.prototype.getMap=function(){for(var e=this._solver,t=this._assignment,r={},n=1;n=a.length){d=C;if(C>=1&&C0){u&&u("trying",0);var g=null;h=w(r,i),(g=e.solveAssuming(n.not(n.or(h))))&&(a=g,A=0)}if(s&&"bottom-up"===l)for(var f=1;f0;){u&&u("improving",A);var d,C=(s?n.lessThan:n.greaterThan)(c,n.constantBits(A));if(!(d=e.solveAssuming(C)))break;e.require(C),A=(a=d).getWeightedSum(r,i)}return s&&0===A?(h||(h=w(r,i)),e.forbid(h)):e.require(n.equalBits(c,n.constantBits(A))),u&&u("finished",A),a};n.Solver.prototype.minimizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!0)},n.Solver.prototype.maximizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!1)},e.exports=n},function(e,t){e.exports=require("v8")},function(e,t,r){"use strict";const n=r(546),i=r(558),o=r(565),s=r(566),a=r(568),A=r(81);async function c(e,t){l(e);const r=u(e,i.default,t),n=await Promise.all(r);return A.array.flatten(n)}function u(e,t,r){const i=[].concat(e),o=new a.default(r),s=n.generate(i,o),A=new t(o);return s.map(A.read,A)}function l(e){if(![].concat(e).every(e=>A.string.isString(e)&&!A.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){e.sync=function(e,t){l(e);const r=u(e,s.default,t);return A.array.flatten(r)},e.stream=function(e,t){l(e);const r=u(e,o.default,t);return A.stream.merge(r)},e.generateTasks=function(e,t){l(e);const r=[].concat(e),i=new a.default(t);return n.generate(r,i)},e.isDynamicPattern=function(e,t){l(e);const r=new a.default(t);return A.pattern.isDynamicPattern(e,r)},e.escapePath=function(e){return l(e),A.path.escape(e)}}(c||(c={})),e.exports=c},function(e,t,r){e.exports=r(582)},,function(e,t,r){"use strict";var n=r(109);e.exports=new n({include:[r(293)]})},function(e,t,r){"use strict";var n=r(109);e.exports=new n({include:[r(228)],implicit:[r(433),r(434),r(435),r(436)]})},function(e,t,r){const n=r(450),i={};for(const e of Object.keys(n))i[n[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:r})}o.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=o-i;let a,A;o===i?a=0:t===o?a=(r-n)/s:r===o?a=2+(n-t)/s:n===o&&(a=4+(t-r)/s),(a=Math.min(60*a,360))<0&&(a+=360);const c=(i+o)/2;return[a,100*(A=o===i?0:c<=.5?s/(o+i):s/(2-o-i)),100*c]},o.rgb.hsv=function(e){let t,r,n,i,o;const s=e[0]/255,a=e[1]/255,A=e[2]/255,c=Math.max(s,a,A),u=c-Math.min(s,a,A),l=function(e){return(c-e)/6/u+.5};return 0===u?(i=0,o=0):(o=u/c,t=l(s),r=l(a),n=l(A),s===c?i=n-r:a===c?i=1/3+t-n:A===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*c]},o.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];return[o.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(r,n))),100*(n=1-1/255*Math.max(t,Math.max(r,n)))]},o.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,o=1/0;for(const t of Object.keys(n)){const i=n[t],A=(a=i,((s=e)[0]-a[0])**2+(s[1]-a[1])**2+(s[2]-a[2])**2);A.04045?((t+.055)/1.055)**2.4:t/12.92)+.3576*(r=r>.04045?((r+.055)/1.055)**2.4:r/12.92)+.1805*(n=n>.04045?((n+.055)/1.055)**2.4:n/12.92)),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];return[116*(n=(n/=100)>.008856?n**(1/3):7.787*n+16/116)-16,500*((r=(r/=95.047)>.008856?r**(1/3):7.787*r+16/116)-n),200*(n-(i=(i/=108.883)>.008856?i**(1/3):7.787*i+16/116))]},o.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,o,s;if(0===r)return[s=255*n,s,s];const a=2*n-(i=n<.5?n*(1+r):n+r-n*r),A=[0,0,0];for(let e=0;e<3;e++)(o=t+1/3*-(e-1))<0&&o++,o>1&&o--,s=6*o<1?a+6*(i-a)*o:2*o<1?i:3*o<2?a+(i-a)*(2/3-o)*6:a,A[e]=255*s;return A},o.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const o=Math.max(n,.01);return r*=(n*=2)<=1?n:2-n,i*=o<=1?o:2-o,[t,100*(0===n?2*i/(o+i):2*r/(n+r)),100*((n+r)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),s=255*n*(1-r),a=255*n*(1-r*o),A=255*n*(1-r*(1-o));switch(n*=255,i){case 0:return[n,A,s];case 1:return[a,n,s];case 2:return[s,n,A];case 3:return[s,a,n];case 4:return[A,s,n];case 5:return[n,s,a]}},o.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let o,s;s=(2-r)*n;const a=(2-r)*i;return o=r*i,[t,100*(o=(o/=a<=1?a:2-a)||0),100*(s/=2)]},o.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let o;i>1&&(r/=i,n/=i);const s=Math.floor(6*t),a=1-n;o=6*t-s,0!=(1&s)&&(o=1-o);const A=r+o*(a-r);let c,u,l;switch(s){default:case 6:case 0:c=a,u=A,l=r;break;case 1:c=A,u=a,l=r;break;case 2:c=r,u=a,l=A;break;case 3:c=r,u=A,l=a;break;case 4:c=A,u=r,l=a;break;case 5:c=a,u=r,l=A}return[255*c,255*u,255*l]},o.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,o,s;return i=(i=3.2406*t+-1.5372*r+-.4986*n)>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=(o=-.9689*t+1.8758*r+.0415*n)>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=(s=.0557*t+-.204*r+1.057*n)>.0031308?1.055*s**(1/2.4)-.055:12.92*s,[255*(i=Math.min(Math.max(0,i),1)),255*(o=Math.min(Math.max(0,o),1)),255*(s=Math.min(Math.max(0,s),1))]},o.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];return[116*(r=(r/=100)>.008856?r**(1/3):7.787*r+16/116)-16,500*((t=(t/=95.047)>.008856?t**(1/3):7.787*t+16/116)-r),200*(r-(n=(n/=108.883)>.008856?n**(1/3):7.787*n+16/116))]},o.lab.xyz=function(e){let t,r,n;const i=(r=(e[0]+16)/116)**3,o=(t=e[1]/500+r)**3,s=(n=r-e[2]/200)**3;return r=i>.008856?i:(r-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,n=s>.008856?s:(n-16/116)/7.787,[t*=95.047,r*=100,n*=108.883]},o.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;return(i=360*Math.atan2(n,r)/2/Math.PI)<0&&(i+=360),[t,Math.sqrt(r*r+n*n),i]},o.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},o.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let s=null===t?o.rgb.hsv(e)[2]:t;if(0===(s=Math.round(s/50)))return 30;let a=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===s&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;return e-=16,[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},o.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),s=i-o;let a,A;return A=s<=0?0:i===t?(r-n)/s%6:i===r?2+(n-t)/s:4+(t-r)/s,A/=6,[360*(A%=1),100*s,100*(a=s<1?o/(1-s):0)]},o.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],o=t%1*6,s=o%1,a=1-s;let A=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return A=(1-r)*n,[255*(r*i[0]+A),255*(r*i[1]+A),255*(r*i[2]+A)]},o.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},o.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},o.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},o.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},function(e,t){e.exports=require("tty")},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>0!==n(e,t,r)},function(e,t,r){const n=r(230),i=r(296),o=r(169),s=r(233),a=r(232),A=r(234);e.exports=(e,t,r,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return i(e,r,c);case">":return o(e,r,c);case">=":return s(e,r,c);case"<":return a(e,r,c);case"<=":return A(e,r,c);default:throw new TypeError(`Invalid operator: ${t}`)}}},function(e,t,r){const n=r(65);e.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}},function(e,t,r){"use strict";
+/*!
+ * fill-range
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */const n=r(14),i=r(482),o=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=e=>"number"==typeof e||"string"==typeof e&&""!==e,a=e=>Number.isInteger(+e),A=e=>{let t=`${e}`,r=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++r];);return r>0},c=(e,t,r)=>{if(t>0){let r="-"===e[0]?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return!1===r?String(e):e},u=(e,t)=>{let r="-"===e[0]?"-":"";for(r&&(e=e.slice(1),t--);e.length{if(r)return i(e,t,{wrap:!1,...n});let o=String.fromCharCode(e);return e===t?o:`[${o}-${String.fromCharCode(t)}]`},h=(e,t,r)=>{if(Array.isArray(e)){let t=!0===r.wrap,n=r.capture?"":"?:";return t?`(${n}${e.join("|")})`:e.join("|")}return i(e,t,r)},g=(...e)=>new RangeError("Invalid range arguments: "+n.inspect(...e)),f=(e,t,r)=>{if(!0===r.strictRanges)throw g([e,t]);return[]},p=(e,t,r=1,n={})=>{let i=Number(e),o=Number(t);if(!Number.isInteger(i)||!Number.isInteger(o)){if(!0===n.strictRanges)throw g([e,t]);return[]}0===i&&(i=0),0===o&&(o=0);let s=i>o,a=String(e),f=String(t),p=String(r);r=Math.max(Math.abs(r),1);let d=A(a)||A(f)||A(p),C=d?Math.max(a.length,f.length,p.length):0,E=!1===d&&!1===((e,t,r)=>"string"==typeof e||"string"==typeof t||!0===r.stringify)(e,t,n),I=n.transform||(e=>t=>!0===e?Number(t):String(t))(E);if(n.toRegex&&1===r)return l(u(e,C),u(t,C),!0,n);let m={negatives:[],positives:[]},y=e=>m[e<0?"negatives":"positives"].push(Math.abs(e)),w=[],B=0;for(;s?i>=o:i<=o;)!0===n.toRegex&&r>1?y(i):w.push(c(I(i,B),C,E)),i=s?i-r:i+r,B++;return!0===n.toRegex?r>1?((e,t)=>{e.negatives.sort((e,t)=>et?1:0),e.positives.sort((e,t)=>et?1:0);let r,n=t.capture?"":"?:",i="",o="";return e.positives.length&&(i=e.positives.join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.join("|")})`),r=i&&o?`${i}|${o}`:i||o,t.wrap?`(${n}${r})`:r})(m,n):h(w,null,{wrap:!1,...n}):w},d=(e,t,r,n={})=>{if(null==t&&s(e))return[e];if(!s(e)||!s(t))return f(e,t,n);if("function"==typeof r)return d(e,t,1,{transform:r});if(o(r))return d(e,t,0,r);let i={...n};return!0===i.capture&&(i.wrap=!0),r=r||i.step||1,a(r)?a(e)&&a(t)?p(e,t,r,i):((e,t,r=1,n={})=>{if(!a(e)&&e.length>1||!a(t)&&t.length>1)return f(e,t,n);let i=n.transform||(e=>String.fromCharCode(e)),o=`${e}`.charCodeAt(0),s=`${t}`.charCodeAt(0),A=o>s,c=Math.min(o,s),u=Math.max(o,s);if(n.toRegex&&1===r)return l(c,u,!1,n);let g=[],p=0;for(;A?o>=s:o<=s;)g.push(i(o,p)),o=A?o-r:o+r,p++;return!0===n.toRegex?h(g,null,{wrap:!1,options:n}):g})(e,t,Math.max(Math.abs(r),1),i):null==r||o(r)?d(e,t,1,r):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(r,i)};e.exports=d},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=300},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(32),i=r(44),o=r(4);const s=o.b.root;class a extends i.a{constructor(e,{baseFs:t=new n.a}={}){super(o.e),this.target=this.pathUtils.resolve(o.b.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(o.b.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){const t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(s,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(s,this.pathUtils.relative(this.target,e))}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(44),i=r(4);class o extends n.a{constructor(e){super(i.d),this.baseFs=e}mapFromBase(e){return i.d.fromPortablePath(e)}mapToBase(e){return i.d.toPortablePath(e)}}},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.0.0-rc.36","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/libzip":"workspace:^2.0.0-rc.13","@yarnpkg/parsers":"workspace:^2.0.0-rc.13","@yarnpkg/plugin-compat":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-dlx":"workspace:^2.0.0-rc.16","@yarnpkg/plugin-essentials":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-file":"workspace:^2.0.0-rc.16","@yarnpkg/plugin-git":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-github":"workspace:^2.0.0-rc.18","@yarnpkg/plugin-http":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-init":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-link":"workspace:^2.0.0-rc.13","@yarnpkg/plugin-node-modules":"workspace:^2.0.0-rc.12","@yarnpkg/plugin-npm":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-npm-cli":"workspace:^2.0.0-rc.20","@yarnpkg/plugin-pack":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-patch":"workspace:^2.0.0-rc.10","@yarnpkg/plugin-pnp":"workspace:^2.0.0-rc.24","@yarnpkg/shell":"workspace:^2.0.0-rc.13","chalk":"^3.0.0","clipanion":"^2.4.1","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.0.0-rc.23","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.0.0-rc.25","micromatch":"^4.0.2","typescript":"^3.9.5"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},function(e,t,r){(function(e){var r;!function(){var n="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},i=n._,o=Array.prototype,s=Object.prototype,a="undefined"!=typeof Symbol?Symbol.prototype:null,A=o.push,c=o.slice,u=s.toString,l=s.hasOwnProperty,h=Array.isArray,g=Object.keys,f=Object.create,p=function(){},d=function(e){return e instanceof d?e:this instanceof d?void(this._wrapped=e):new d(e)};t.nodeType?n._=d:(!e.nodeType&&e.exports&&(t=e.exports=d),t._=d),d.VERSION="1.9.1";var C,E=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},I=function(e,t,r){return d.iteratee!==C?d.iteratee(e,t):null==e?d.identity:d.isFunction(e)?E(e,t,r):d.isObject(e)&&!d.isArray(e)?d.matcher(e):d.property(e)};d.iteratee=C=function(e,t){return I(e,t,1/0)};var m=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i=0&&t<=b};d.each=d.forEach=function(e,t,r){var n,i;if(t=E(t,r),v(e))for(n=0,i=e.length;n0?0:s-1;for(i||(n=t[o?o[a]:a],a+=e);a>=0&&a=3;return t(e,E(r,i,4),n,o)}};d.reduce=d.foldl=d.inject=S(1),d.reduceRight=d.foldr=S(-1),d.find=d.detect=function(e,t,r){var n=(v(e)?d.findIndex:d.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},d.filter=d.select=function(e,t,r){var n=[];return t=I(t,r),d.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},d.reject=function(e,t,r){return d.filter(e,d.negate(I(t)),r)},d.every=d.all=function(e,t,r){t=I(t,r);for(var n=!v(e)&&d.keys(e),i=(n||e).length,o=0;o=0},d.invoke=m((function(e,t,r){var n,i;return d.isFunction(t)?i=t:d.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),d.map(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=Q(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))})),d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,r){var n,i,o=-1/0,s=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var a=0,A=(e=v(e)?e:d.values(e)).length;ao&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&o===-1/0)&&(o=e,s=i)}));return o},d.min=function(e,t,r){var n,i,o=1/0,s=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var a=0,A=(e=v(e)?e:d.values(e)).length;an||void 0===r)return 1;if(r0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(r&&o&&a)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(c.call(n,s,a),d.isNaN))>=0?o+s:-1;for(o=e>0?s:a-1;o>=0&&ot?(n&&(clearTimeout(n),n=null),a=c,s=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(A,u)),s};return c.cancel=function(){clearTimeout(n),a=0,n=i=o=null},c},d.debounce=function(e,t,r){var n,i,o=function(t,r){n=null,r&&(i=e.apply(t,r))},s=m((function(s){if(n&&clearTimeout(n),r){var a=!n;n=setTimeout(o,t),a&&(i=e.apply(this,s))}else n=d.delay(o,t,this,s);return i}));return s.cancel=function(){clearTimeout(n),n=null},s},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},d.once=d.partial(d.before,2),d.restArguments=m;var K=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],O=function(e,t){var r=L.length,n=e.constructor,i=d.isFunction(n)&&n.prototype||s,o="constructor";for(B(e,o)&&!d.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!d.contains(t,o)&&t.push(o)};d.keys=function(e){if(!d.isObject(e))return[];if(g)return g(e);var t=[];for(var r in e)B(e,r)&&t.push(r);return K&&O(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var r in e)t.push(r);return K&&O(e,t),t},d.values=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i1&&(n=E(n,t[1])),t=d.allKeys(e)):(n=_,t=F(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i1&&(r=t[1])):(t=d.map(F(t,!1,!1),String),n=function(e,r){return!d.contains(t,r)}),d.pick(e,n,r)})),d.defaults=T(d.allKeys,!0),d.create=function(e,t){var r=y(e);return t&&d.extendOwn(r,t),r},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var r=d.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o":">",'"':""","'":"'","`":"`"},G=d.invert(Y),J=function(e){var t=function(t){return e[t]},r="(?:"+d.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};d.escape=J(Y),d.unescape=J(G),d.result=function(e,t,r){d.isArray(t)||(t=[t]);var n=t.length;if(!n)return d.isFunction(r)?r.call(e):r;for(var i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var z=/(.)^/,q={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,V=function(e){return"\\"+q[e]};d.template=function(e,t,r){!t&&r&&(t=r),t=d.defaults({},t,d.templateSettings);var n,i=RegExp([(t.escape||z).source,(t.interpolate||z).source,(t.evaluate||z).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,(function(t,r,n,i,a){return s+=e.slice(o,a).replace(W,V),o=a+t.length,r?s+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?s+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(s+="';\n"+i+"\n__p+='"),t})),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{n=new Function(t.variable||"obj","_",s)}catch(e){throw e.source=s,e}var a=function(e){return n.call(this,e,d)},A=t.variable||"obj";return a.source="function("+A+"){\n"+s+"}",a},d.chain=function(e){var t=d(e);return t._chain=!0,t};var X=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){return d.each(d.functions(e),(function(t){var r=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return A.apply(e,arguments),X(this,r.apply(d,e))}})),d},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];d.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],X(this,r)}})),d.each(["concat","join","slice"],(function(e){var t=o[e];d.prototype[e]=function(){return X(this,t.apply(this._wrapped,arguments))}})),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return String(this._wrapped)},void 0===(r=function(){return d}.apply(t,[]))||(e.exports=r)}()}).call(this,r(141)(e))},function(e,t,r){e.exports=I;var n=r(9),i=r(306),o=r(240),s=(o.Minimatch,r(92)),a=r(50).EventEmitter,A=r(12),c=r(93),u=r(241),l=r(502),h=r(307),g=(h.alphasort,h.alphasorti,h.setopts),f=h.ownProp,p=r(503),d=(r(14),h.childrenIgnored),C=h.isIgnored,E=r(171);function I(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return l(e,t)}return new y(e,t,r)}I.sync=l;var m=I.GlobSync=l.GlobSync;function y(e,t,r){if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new m(e,t)}if(!(this instanceof y))return new y(e,t,r);g(this,e,t),this._didRealPath=!1;var n=this.minimatch.set.length;this.matches=new Array(n),"function"==typeof r&&(r=E(r),this.on("error",r),this.on("end",(function(e){r(null,e)})));var i=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===n)return a();for(var o=!0,s=0;s1)return!0;for(var i=0;ithis.maxLength)return t();if(!this.stat&&f(this.cache,r)){var o=this.cache[r];if(Array.isArray(o)&&(o="DIR"),!i||"DIR"===o)return t(null,o);if(i&&"FILE"===o)return t()}var s=this.statCache[r];if(void 0!==s){if(!1===s)return t(null,s);var a=s.isDirectory()?"DIR":"FILE";return i&&"FILE"===a?t():t(null,a,s)}var A=this,c=p("stat\0"+r,(function(i,o){if(o&&o.isSymbolicLink())return n.stat(r,(function(n,i){n?A._stat2(e,r,null,o,t):A._stat2(e,r,n,i,t)}));A._stat2(e,r,i,o,t)}));c&&n.lstat(r,c)},y.prototype._stat2=function(e,t,r,n,i){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,i();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return i(null,!1,n);var s=!0;return n&&(s=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,o&&"FILE"===s?i():i(null,s,n)}},function(e,t,r){e.exports=u,u.realpath=u,u.sync=l,u.realpathSync=l,u.monkeypatch=function(){n.realpath=u,n.realpathSync=l},u.unmonkeypatch=function(){n.realpath=i,n.realpathSync=o};var n=r(9),i=n.realpath,o=n.realpathSync,s=process.version,a=/^v[0-5]\./.test(s),A=r(497);function c(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function u(e,t,r){if(a)return i(e,t,r);"function"==typeof t&&(r=t,t=null),i(e,t,(function(n,i){c(n)?A.realpath(e,t,r):r(n,i)}))}function l(e,t){if(a)return o(e,t);try{return o(e,t)}catch(r){if(c(r))return A.realpathSync(e,t);throw r}}},function(e,t,r){function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.alphasort=c,t.alphasorti=A,t.setopts=function(e,t,r){r||(r={});if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0);e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),function(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]);e.ignore.length&&(e.ignore=e.ignore.map(u))}(e,r),e.changedCwd=!1;var o=process.cwd();n(r,"cwd")?(e.cwd=i.resolve(r.cwd),e.changedCwd=e.cwd!==o):e.cwd=o;e.root=r.root||i.resolve(e.cwd,"/"),e.root=i.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/"));e.cwdAbs=s(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/"));e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new a(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(e){for(var t=e.nounique,r=t?[]:Object.create(null),n=0,i=e.matches.length;n0||(t=!1,r())}function s(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),o()}if(e._readableState.endEmitted)return o();e.on("merge2UnpipeEnd",t),e.on("end",t),e.pipe(A,{end:!1}),e.resume()}for(let e=0;ethis._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),s()}).catch(s);for(let e=0;ethis._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),i=r(243),o=r(525),s=r(244),a=r(315);class A extends a.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=i.scandir,this._emitter=new n.EventEmitter,this._queue=o(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const r={directory:e,base:t};this._queue.push(r,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(r,n)=>{if(null!==r)return t(r,void 0);for(const t of n)this._handleEntry(t,e.base);t(null,void 0)})}_handleError(e){s.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const r=e.path;void 0!==t&&(e.path=s.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),s.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&s.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=A},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=process.versions.node.split("."),i=parseInt(n[0],10),o=parseInt(n[1],10),s=i>10,a=10===i&&o>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=s||a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(521);t.fs=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(244);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=n.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(12),i=r(76),o=r(94);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:o.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!o.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(13),i=r(76),o=r(172),s=r(318);class a extends s.default{constructor(){super(...arguments),this._walkStream=o.walkStream,this._stat=i.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const r=e.map(this._getFullEntryPath,this),i=new n.PassThrough({objectMode:!0});i._write=(n,o,s)=>this._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),s()}).catch(s);for(let e=0;ethis._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(12),i=r(76),o=r(81);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:o.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!o.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},function(e,t,r){"use strict";r.d(t,"a",(function(){return C}));var n=r(32),i=r(57),o=r(282),s=r(4),a=r(3),A=r(36),c=r(9),u=r.n(c),l=r(17),h=r(24),g=r(47),f=r(22),p=r(5);const d=4;class C{constructor(e,{configuration:t,immutable:r=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set,this.mutexes=new Map,this.configuration=t,this.cwd=e,this.immutable=r,this.check=n;const o=t.get("cacheKeyOverride");if(null!==o)this.cacheKey=`${o}`;else{const e=t.get("compressionLevel"),r=e!==i.a?`c${e}`:"";this.cacheKey=[d,r].join("")}}static async find(e,{immutable:t,check:r}={}){const n=new C(e.get("cacheFolder"),{configuration:e,immutable:t,check:r});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;const e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${p.slugifyLocator(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){const r=function(e){const t=e.indexOf("/");return-1!==t?e.slice(t+1):e}(t).slice(0,10);return`${p.slugifyLocator(e)}-${r}.zip`}getLocatorPath(e,t){if(null===this.mirrorCwd)return s.e.resolve(this.cwd,this.getVersionFilename(e));if(null===t)return null;return E(t)!==this.cacheKey?null:s.e.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){const t=this.mirrorCwd;return null!==t?s.e.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache")){await a.xfs.mkdirpPromise(this.cwd);const e=s.e.resolve(this.cwd,Object(s.f)(".gitignore"));await a.xfs.existsPromise(e)||await a.xfs.writeFilePromise(e,"/.gitignore\n*.lock\n")}}async fetchPackageFromCache(e,t,{onHit:r,onMiss:c,loader:d}){const C=this.getLocatorMirrorPath(e),I=new n.a,m=async(e,r=null)=>{const n=`${this.cacheKey}/${await g.checksumFile(e)}`;if(null!==r){if(n!==`${this.cacheKey}/${await g.checksumFile(r)}`)throw new h.b(l.a.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(null!==t&&n!==t){let e;switch(e=this.check?"throw":E(t)!==E(n)?"update":this.configuration.get("checksumBehavior")){case"ignore":return t;case"update":return n;default:case"throw":throw new h.b(l.a.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return n},y=async t=>{if(!d)throw new Error(`Cache check required but no loader configured for ${p.prettyLocator(this.configuration,e)}`);const r=await d(),n=r.getRealPath();return r.saveAndClose(),await a.xfs.chmodPromise(n,420),await m(t,n)},w=async()=>{if(null===C||!a.xfs.existsSync(C))return await d();const t=await a.xfs.mktempPromise(),r=s.e.join(t,this.getVersionFilename(e));return await a.xfs.copyFilePromise(C,r,u.a.constants.COPYFILE_FICLONE),new i.b(r,{libzip:await Object(A.getLibzipPromise)()})},B=async()=>{if(!d)throw new Error(`Cache entry required but missing for ${p.prettyLocator(this.configuration,e)}`);if(this.immutable)throw new h.b(l.a.IMMUTABLE_CACHE,`Cache entry required but missing for ${p.prettyLocator(this.configuration,e)}`);const t=await w(),r=t.getRealPath();t.saveAndClose(),await a.xfs.chmodPromise(r,420);const n=await m(r),i=this.getLocatorPath(e,n);if(!i)throw new Error("Assertion failed: Expected the cache path to be available");return await this.writeFileWithLock(i,async()=>await this.writeFileWithLock(C,async()=>(await a.xfs.movePromise(r,i),null!==C&&await a.xfs.copyFilePromise(i,C,u.a.constants.COPYFILE_FICLONE),[i,n])))},Q=async()=>{const t=B();this.mutexes.set(e.locatorHash,t);try{return await t}finally{this.mutexes.delete(e.locatorHash)}};for(let t;t=this.mutexes.get(e.locatorHash);)await t;const b=this.getLocatorPath(e,t),D=null!==b&&I.existsSync(b),v=D?r:c;let S,k;v&&v(),D?(S=b,k=this.check?await y(S):await m(S)):[S,k]=await Q(),this.markedFiles.add(S);let x=null;const F=await Object(A.getLibzipPromise)();return[new o.a(()=>f.prettifySyncErrors(()=>x=new i.b(S,{baseFs:I,libzip:F,readOnly:!0}),t=>`Failed to open the cache entry for ${p.prettyLocator(this.configuration,e)}: ${t}`),s.e),()=>{null!==x&&x.discardAndClose()},k]}async writeFileWithLock(e,t){return null===e?await t():(await a.xfs.mkdirpPromise(s.e.dirname(e)),await a.xfs.lockPromise(e,async()=>await t()))}}function E(e){const t=e.indexOf("/");return-1!==t?e.slice(0,t):null}},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(24);class i extends n.a{constructor({configuration:e,stdout:t,suggestInstall:r=!0}){super(),this.errorCount=0,this.configuration=e,this.stdout=t,this.suggestInstall=r}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${this.configuration.format("➤","redBright")} ${this.formatName(e)}: ${t}\n`)}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(`${this.configuration.format("➤","redBright")} Errors happened when preparing the environment required to run this command.\n`),this.suggestInstall&&this.stdout.write(`${this.configuration.format("➤","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.\n`))}formatName(e){return`BR${e.toString(10).padStart(4,"0")}`}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(248),i=r(95),o=r(322),s=r(617),a=r(250),A=r(618),c={RequestError:o.RequestError,CacheError:o.CacheError,ReadError:o.ReadError,HTTPError:o.HTTPError,MaxRedirectsError:o.MaxRedirectsError,TimeoutError:o.TimeoutError,ParseError:o.ParseError,CancelError:n.CancelError,UnsupportedProtocolError:o.UnsupportedProtocolError,UploadError:o.UploadError},{normalizeArguments:u,mergeOptions:l}=o.PromisableRequest,h=e=>e.isStream?new a.default(e.url,e):o.default(e),g=e=>"defaults"in e&&"options"in e.defaults,f=["get","post","put","patch","head","delete"];t.defaultHandler=(e,t)=>t(e);const p=(e,t)=>{if(e)for(const r of e)r(t)},d=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(e=>(t,r)=>{let n;const i=e(t,e=>n=r(e));if(i!==n&&!t.isStream&&n){const e=i,{then:t,catch:r,finally:o}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)),e.then=t,e.catch=r,e.finally=o}return i});const r=(t,r)=>{var n,A;let c=0;const l=t=>e.handlers[c++](t,c===e.handlers.length?h:l);i.default.plainObject(t)&&(r={...t,...r},t=void 0);try{let i;try{p(e.options.hooks.init,r),p(null===(n=null==r?void 0:r.hooks)||void 0===n?void 0:n.init,r)}catch(e){i=e}const s=u(t,r,e.options);if(s[a.kIsNormalizedAlready]=!0,i)throw new o.RequestError(i.message,i,s);return l(s)}catch(t){if(null==r?void 0:r.isStream)throw t;return s.default(t,e.options.hooks.beforeError,null===(A=null==r?void 0:r.hooks)||void 0===A?void 0:A.beforeError)}};r.extend=(...r)=>{const n=[e.options];let i,o=[...e._rawHandlers];for(const e of r)g(e)?(n.push(e.defaults.options),o.push(...e.defaults._rawHandlers),i=e.defaults.mutableDefaults):(n.push(e),"handlers"in e&&o.push(...e.handlers),i=e.mutableDefaults);return 0===(o=o.filter(e=>e!==t.defaultHandler)).length&&o.push(t.defaultHandler),d({options:l(...n),handlers:o,mutableDefaults:Boolean(i)})},(r.paginate=async function*(t,n){let o=u(t,n,e.options);o.resolveBodyOnly=!1;const s=o.pagination;if(!i.default.object(s))throw new TypeError("`options.pagination` must be implemented");const a=[];let{countLimit:A}=s,c=0;for(;c{const n=[];for await(const i of r.paginate(e,t))n.push(i);return n},r.stream=(e,t)=>r(e,{...t,isStream:!0});for(const e of f)r[e]=(t,n)=>r(t,{...n,method:e}),r.stream[e]=(t,n)=>r(t,{...n,method:e,isStream:!0});return Object.assign(r,{...c,mergeOptions:l}),Object.defineProperty(r,"defaults",{value:e.mutableDefaults?e:A.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),r};t.default=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50),i=r(249),o=r(248),s=r(586),a=r(142),A=r(616);t.PromisableRequest=A.default;const c=r(329),u=["request","response","redirect","uploadProgress","downloadProgress"];t.default=function e(t){let r,l,h=0;const g=new n.EventEmitter,f=new o((n,o,p)=>{const d=()=>{const{throwHttpErrors:C}=t;C||(t.throwHttpErrors=!0);const E=new A.default(t.url,t);E._noPipe=!0,p(()=>E.destroy());const I=async e=>{try{for(const r of t.hooks.beforeError)e=await r(e)}catch(e){return void o(new a.RequestError(e.message,e,E))}o(e)};r=E,E.once("response",async r=>{if(r.retryCount=h,r.request.aborted)return;const o=()=>{const{statusCode:e}=r,n=t.followRedirect?299:399;return e>=200&&e<=n||304===e};let s;try{s=await i.buffer(E),r.rawBody=s}catch(e){return}try{r.body=A.parseBody(r,t.responseType,t.encoding)}catch(e){if(r.body=s.toString(),o())return void I(e)}try{for(const[n,i]of t.hooks.afterResponse.entries())r=await i(r,async r=>{const i=A.default.normalizeArguments(void 0,{...r,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},t);i.hooks.afterResponse=i.hooks.afterResponse.slice(0,n);for(const e of i.hooks.beforeRetry)await e(i);const o=e(i);return p(()=>{o.catch(()=>{}),o.cancel()}),o})}catch(e){return void I(new a.RequestError(e.message,e,E))}!C||o()?(l=r,n(t.resolveBodyOnly?r.body:r)):I(new a.HTTPError(r))}),E.once("error",e=>{if(f.isCanceled)return;if(!E.options)return void I(e);let r;h++;try{r=t.retry.calculateDelay({attemptCount:h,retryOptions:t.retry,error:e,computedValue:s.default({attemptCount:h,retryOptions:t.retry,error:e,computedValue:0})})}catch(t){return E.destroy(),void I(new a.RequestError(t.message,e,E))}if(r){return E.destroy(),void setTimeout(async()=>{t.throwHttpErrors=C;try{for(const r of t.hooks.beforeRetry)await r(t,e,h)}catch(t){return E.destroy(),void I(new a.RequestError(t.message,e,E))}d()},r)}h--,e instanceof a.HTTPError||(E.destroy(),I(e))}),c.default(E,g,u)};d()});f.on=(e,t)=>(g.on(e,t),f);const p=e=>{const r=(async()=>(await f,A.parseBody(l,e,t.encoding)))();return Object.defineProperties(r,Object.getOwnPropertyDescriptors(f)),r};return f.json=()=>(r.writableFinished||void 0!==t.headers.accept||(t.headers.accept="application/json"),p("json")),f.buffer=()=>p("buffer"),f.text=()=>p("text"),f},function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(142))},function(e,t,r){"use strict";const n=r(50),i=r(175),o=r(252),s=r(324),a=Symbol("currentStreamsCount"),A=Symbol("request"),c=Symbol("cachedOriginSet"),u=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],l=(e,t,r)=>{if(t in e){const n=e[t].indexOf(r);if(-1!==n)return e[t].splice(n,1),0===e[t].length&&delete e[t],!0}return!1},h=(e,t,r)=>{t in e?e[t].push(r):e[t]=[r]},g=(e,t,r)=>t in e?e[t].filter(e=>!e.closed&&!e.destroyed&&e[c].includes(r)):[],f=(e,t,r)=>{if(t in e)for(const n of e[t])n[c].lengthr[c].includes(e))&&n[a]+r[a]<=r.remoteSettings.maxConcurrentStreams&&n.close()},p=(e,t,r)=>{if(t in e)for(const n of e[t])r[c].lengthn[c].includes(e))&&r[a]+n[a]<=n.remoteSettings.maxConcurrentStreams&&r.close()};class d extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:r=1,maxCachedTlsSessions:n=100}={}){super(),this.busySessions={},this.freeSessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=r,this.settings={enablePush:!1},this.tlsSessionCache=new s({maxSize:n})}static normalizeOrigin(e,t){return"string"==typeof e&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(const r of u)e[r]&&(t+=`:${e[r]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue&&t in this.queue[e]))return;const r=g(this.busySessions,e,t).length,n=this.queue[e][t];r{Array.isArray(r)?(r=[...r],n()):r=[{resolve:n,reject:i}];const s=this.normalizeOptions(t),u=d.normalizeOrigin(e,t&&t.servername);if(void 0===u){for(const{reject:e}of r)e(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(s in this.freeSessions){const e=g(this.freeSessions,s,u);if(0!==e.length){const t=e.reduce((e,t)=>t.remoteSettings.maxConcurrentStreams>=e.remoteSettings.maxConcurrentStreams&&t[a]>e[a]?t:e);for(const{resolve:e}of r)e(t);return}}if(s in this.queue){if(u in this.queue[s])return void this.queue[s][u].listeners.push(...r)}else this.queue[s]={};const f=()=>{s in this.queue&&this.queue[s][u]===C&&(delete this.queue[s][u],0===Object.keys(this.queue[s]).length&&delete this.queue[s])},C=()=>{const n=`${u}:${s}`;let i,d=!1;try{const E=this.tlsSessionCache.get(n),I=o.connect(e,{createConnection:this.createConnection,settings:this.settings,session:E?E.session:void 0,...t});I[a]=0;const m=()=>{return I[c].reduce((e,t)=>Math.min(e,g(this.freeSessions,s,t).length),1/0)I[a]{setImmediate(()=>{this.tlsSessionCache.set(n,{session:e,servername:i})})}),I.socket.once("secureConnect",()=>{!1===(i=I.socket.servername)&&void 0!==E&&void 0!==E.servername&&(I.socket.servername=E.servername)}),I.once("error",e=>{if(!d)for(const{reject:t}of r)t(e);this.tlsSessionCache.delete(n)}),I.setTimeout(this.timeout,()=>{I.destroy()}),I.once("close",()=>{if(!d){const e=new Error("Session closed without receiving a SETTINGS frame");for(const{reject:t}of r)t(e)}f(),l(this.freeSessions,s,I),this._tryToCreateNewSession(s,u)});const w=()=>{if(s in this.queue)for(const e of I[c])if(e in this.queue[s]){const{listeners:t}=this.queue[s][e];for(;0!==t.length&&y();)t.shift().resolve(I);if(0===this.queue[s][e].listeners.length&&(delete this.queue[s][e],0===Object.keys(this.queue[s]).length)){delete this.queue[s];break}if(!y())break}};I.once("origin",()=>{I[c]=I.originSet,y()&&(this._closeCoveredSessions(s,I),w(),I.on("remoteSettings",()=>{this._closeCoveredSessions(s,I)}))}),I.once("remoteSettings",()=>{if(C.destroyed){const e=new Error("Agent has been destroyed");for(const t of r)t.reject(e);I.destroy()}else I[c]=I.originSet,this.emit("session",I),m()?w():0===this.maxFreeSessions?(w(),setImmediate(()=>{I.close()})):I.close(),f(),0!==r.length&&(this.getSession(u,t,r),r.length=0),d=!0,I.on("remoteSettings",()=>{y()&&l(this.busySessions,s,I)&&(m()?w():h(this.busySessions,s,I))})}),I[A]=I.request,I.request=e=>{const t=I[A](e,{endStream:!1});return I.ref(),++I[a],!y()&&l(this.freeSessions,s,I)&&h(this.busySessions,s,I),t.once("close",()=>{--I[a],y()&&(0===I[a]&&I.unref(),!l(this.busySessions,s,I)||I.destroyed||I.closed||(m()?(this._closeCoveredSessions(s,I),w()):I.close())),I.destroyed||I.closed||p(this.freeSessions,s,I)}),t}}catch(e){for(const t of r)t.reject(e);f()}};C.listeners=r,C.completed=!1,C.destroyed=!1,this.queue[s][u]=C,this._tryToCreateNewSession(s,u)})}request(e,t,r){return new Promise((n,i)=>{this.getSession(e,t,[{reject:i,resolve:e=>{n(e.request(r))}}])})}createConnection(e,t){return d.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];const r=e.port||443,n=e.hostname||e.host;return void 0===t.servername&&(t.servername=n),i.connect(r,n,t)}closeFreeSessions(){for(const e of Object.values(this.freeSessions))for(const t of e)0===t[a]&&t.close()}destroy(e){for(const t of Object.values(this.busySessions))for(const r of t)r.destroy(e);for(const t of Object.values(this.freeSessions))for(const r of t)r.destroy(e);for(const e of Object.values(this.queue))for(const t of Object.values(e))t.destroyed=!0;this.queue={}}}e.exports={Agent:d,globalAgent:new d}},function(e,t,r){"use strict";e.exports=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}},function(e,t,r){"use strict";const n=r(252),{Writable:i}=r(13),{Agent:o,globalAgent:s}=r(323),a=r(326),A=r(327),c=r(604),u=r(605),{ERR_INVALID_ARG_TYPE:l,ERR_INVALID_PROTOCOL:h,ERR_HTTP_HEADERS_SENT:g,ERR_INVALID_HTTP_TOKEN:f,ERR_HTTP_INVALID_HEADER_VALUE:p,ERR_INVALID_CHAR:d}=r(606),{HTTP2_HEADER_STATUS:C,HTTP2_HEADER_METHOD:E,HTTP2_HEADER_PATH:I,HTTP2_METHOD_CONNECT:m}=n.constants,y=Symbol("headers"),w=Symbol("origin"),B=Symbol("session"),Q=Symbol("options"),b=Symbol("flushedHeaders"),D=Symbol("jobs"),v=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,S=/[^\t\u0020-\u007E\u0080-\u00FF]/;e.exports=class extends i{constructor(e,t,r){super({autoDestroy:!1});const n="string"==typeof e||e instanceof URL;if(n&&(e=A(e instanceof URL?e:new URL(e))),"function"==typeof t||void 0===t?(r=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[B]=t.h2session;else if(!1===t.agent)this.agent=new o({maxFreeSessions:0});else if(void 0===t.agent||null===t.agent)"function"==typeof t.createConnection?(this.agent=new o({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=s;else{if("function"!=typeof t.agent.request)throw new l("options.agent",["Agent-like Object","undefined","false"],t.agent);this.agent=t.agent}if(t.port||(t.port=t.defaultPort||this.agent&&this.agent.defaultPort||443),t.host=t.hostname||t.host||"localhost",t.protocol&&"https:"!==t.protocol)throw new h(t.protocol,"https:");const{timeout:i}=t;if(t.timeout=void 0,this[y]=Object.create(null),this[D]=[],this.socket=null,this.connection=null,this.method=t.method,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(const[e,r]of Object.entries(t.headers))this.setHeader(e,r);!t.auth||"authorization"in this[y]||(this[y].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[Q]=t,443===t.port?(t.origin=`https://${t.host}`,":authority"in this[y]||(this[y][":authority"]=t.host)):(t.origin=`https://${t.host}:${t.port}`,":authority"in this[y]||(this[y][":authority"]=`${t.host}:${t.port}`)),this[w]=t,i&&this.setTimeout(i),r&&this.once("response",r),this[b]=!1}get method(){return this[y][E]}set method(e){e&&(this[y][E]=e.toUpperCase())}get path(){return this[y][I]}set path(e){e&&(this[y][I]=e)}_write(e,t,r){this.flushHeaders();const n=()=>this._request.write(e,t,r);this._request?n():this[D].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();const t=()=>this._request.end(e);this._request?t():this[D].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[b]||this.destroyed)return;this[b]=!0;const e=this.method===m,t=t=>{if(this._request=t,this.destroyed)return void t.destroy();e||c(t,this,["timeout","continue","close","error"]),t.once("response",(r,n,i)=>{const o=new a(this.socket,t.readableHighWaterMark);this.res=o,o.req=this,o.statusCode=r[C],o.headers=r,o.rawHeaders=i,o.once("end",()=>{this.aborted?(o.aborted=!0,o.emit("aborted")):(o.complete=!0,o.socket=null,o.connection=null)}),e?(o.upgrade=!0,this.emit("connect",o,t,Buffer.alloc(0))?this.emit("close"):t.destroy()):(t.on("data",e=>{o._dumped||o.push(e)||t.pause()}),t.once("end",()=>{o.push(null)}),this.emit("response",o)||o._dump())}),t.once("headers",e=>this.emit("information",{statusCode:e[C]})),t.once("trailers",(e,t,r)=>{const{res:n}=this;n.trailers=e,n.rawTrailers=r});const{socket:r}=t.session;this.socket=r,this.connection=r;for(const e of this[D])e();this.emit("socket",this.socket)};if(this[B])try{t(this[B].request(this[y],{endStream:!1}))}catch(e){this.emit("error",e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[w],this[Q],this[y]))}catch(e){this.emit("error",e)}}}getHeader(e){if("string"!=typeof e)throw new l("name","string",e);return this[y][e.toLowerCase()]}get headersSent(){return this[b]}removeHeader(e){if("string"!=typeof e)throw new l("name","string",e);if(this.headersSent)throw new g("remove");delete this[y][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new g("set");if("string"!=typeof e||!v.test(e)&&!u(e))throw new f("Header name",e);if(void 0===t)throw new p(t,e);if(S.test(t))throw new d("header content",e);this[y][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){const r=()=>this._request.setTimeout(e,t);return this._request?r():this[D].push(r),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}},function(e,t,r){"use strict";const{Readable:n}=r(13);e.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}}},function(e,t,r){"use strict";e.exports=e=>{const t={protocol:e.protocol,hostname:"string"==typeof e.hostname&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return"string"==typeof e.port&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(95);t.default=e=>n.default.nodeStream(e)&&n.default.function_(e.getBoundary)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){const n={};for(const i of r)n[i]=(...e)=>{t.emit(i,...e)},e.on(i,n[i]);return()=>{for(const t of r)e.off(t,n[t])}}},function(e,t,r){"use strict";const n=r(93),i=r(59).Buffer,o=r(61),s=t.constants=r(621),a=r(144),A=i.concat;class c extends Error{constructor(e,t){super("zlib: "+e),this.errno=t,this.code=u.get(t)}get name(){return"ZlibError"}}const u=new Map([[s.Z_OK,"Z_OK"],[s.Z_STREAM_END,"Z_STREAM_END"],[s.Z_NEED_DICT,"Z_NEED_DICT"],[s.Z_ERRNO,"Z_ERRNO"],[s.Z_STREAM_ERROR,"Z_STREAM_ERROR"],[s.Z_DATA_ERROR,"Z_DATA_ERROR"],[s.Z_MEM_ERROR,"Z_MEM_ERROR"],[s.Z_BUF_ERROR,"Z_BUF_ERROR"],[s.Z_VERSION_ERROR,"Z_VERSION_ERROR"]]),l=new Set([s.Z_NO_FLUSH,s.Z_PARTIAL_FLUSH,s.Z_SYNC_FLUSH,s.Z_FULL_FLUSH,s.Z_FINISH,s.Z_BLOCK]),h=new Set([s.Z_FILTERED,s.Z_HUFFMAN_ONLY,s.Z_RLE,s.Z_FIXED,s.Z_DEFAULT_STRATEGY]),g=Symbol("opts"),f=Symbol("flushFlag"),p=Symbol("finishFlush"),d=Symbol("handle"),C=Symbol("onError"),E=Symbol("level"),I=Symbol("strategy"),m=Symbol("ended");class y extends a{constructor(e,t){if(super(e),this[m]=!1,this[g]=e=e||{},e.flush&&!l.has(e.flush))throw new TypeError("Invalid flush flag: "+e.flush);if(e.finishFlush&&!l.has(e.finishFlush))throw new TypeError("Invalid flush flag: "+e.finishFlush);if(this[f]=e.flush||s.Z_NO_FLUSH,this[p]=void 0!==e.finishFlush?e.finishFlush:s.Z_FINISH,e.chunkSize&&e.chunkSizes.Z_MAX_WINDOWBITS))throw new RangeError("Invalid windowBits: "+e.windowBits);if(e.level&&(e.levels.Z_MAX_LEVEL))throw new RangeError("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevels.Z_MAX_MEMLEVEL))throw new RangeError("Invalid memLevel: "+e.memLevel);if(e.strategy&&!h.has(e.strategy))throw new TypeError("Invalid strategy: "+e.strategy);if(e.dictionary&&!(e.dictionary instanceof i))throw new TypeError("Invalid dictionary: it should be a Buffer instance");this[d]=new o[t](e),this[C]=e=>{this.close();const t=new c(e.message,e.errno);this.emit("error",t)},this[d].on("error",this[C]);const r="number"==typeof e.level?e.level:s.Z_DEFAULT_COMPRESSION;var n="number"==typeof e.strategy?e.strategy:s.Z_DEFAULT_STRATEGY;this[E]=r,this[I]=n,this.once("end",this.close)}close(){this[d]&&(this[d].close(),this[d]=null,this.emit("close"))}params(e,t){if(!this[d])throw new Error("cannot switch params when binding is closed");if(!this[d].params)throw new Error("not supported in this implementation");if(es.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(!h.has(t))throw new TypeError("Invalid strategy: "+t);if(this[E]!==e||this[I]!==t){this.flush(s.Z_SYNC_FLUSH),n(this[d],"zlib binding closed");const r=this[d].flush;this[d].flush=(e,t)=>{this[d].flush=r,this.flush(e),t()},this[d].params(e,t),this[d]&&(this[E]=e,this[I]=t)}}reset(){return n(this[d],"zlib binding closed"),this[d].reset()}flush(e){if(void 0===e&&(e=s.Z_FULL_FLUSH),this.ended)return;const t=this[f];this[f]=e,this.write(i.alloc(0)),this[f]=t}end(e,t,r){return e&&this.write(e,t),this.flush(this[p]),this[m]=!0,super.end(null,null,r)}get ended(){return this[m]}write(e,t,r){"function"==typeof t&&(r=t,t="utf8"),"string"==typeof e&&(e=i.from(e,t)),n(this[d],"zlib binding closed");const o=this[d]._handle,s=o.close;o.close=()=>{};const a=this[d].close;let c,u;this[d].close=()=>{},i.concat=e=>e;try{c=this[d]._processChunk(e,this[f])}catch(e){this[C](e)}finally{i.concat=A,this[d]&&(this[d]._handle=o,o.close=s,this[d].close=a,this[d].removeAllListeners("error"))}if(c)if(Array.isArray(c)&&c.length>0){u=super.write(i.from(c[0]));for(let e=1;e{if(e)return this.emit("error",e);this[C](t)})}[C](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=k(e),this.emit("stat",e),this[c]()}[c](){switch(this.type){case"File":return this[u]();case"Directory":return this[l]();case"SymbolicLink":return this[h]();default:return this.end()}}[B](e){return D(e,"Directory"===this.type)}[f](){"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.header=new s({path:this.path,linkpath:this.linkpath,mode:this[B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new o({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[l](){"/"!==this.path.substr(-1)&&(this.path+="/"),this.stat.size=0,this[f](),this.end()}[h](){a.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[I](t)})}[I](e){this.linkpath=e,this[f](),this.end()}[g](e){this.type="Link",this.linkpath=A.relative(this.cwd,e),this.stat.size=0,this[f](),this.end()}[u](){if(this.stat.nlink>1){const e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){const t=this.linkCache.get(e);if(0===t.indexOf(this.cwd))return this[g](t)}this.linkCache.set(e,this.absolute)}if(this[f](),0===this.stat.size)return this.end();this[m]()}[m](){a.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[y](t)})}[y](e){const t=512*Math.ceil(this.stat.size/512),r=Math.min(t,this.maxReadSize),i=n.allocUnsafe(r);this[p](e,i,0,i.length,0,this.stat.size,t)}[p](e,t,r,n,i,o,s){a.read(e,t,r,n,i,(a,A)=>{if(a)return this[w](e,e=>this.emit("error",a));this[E](e,t,r,n,i,o,s,A)})}[w](e,t){a.close(e,t)}[E](e,t,r,i,o,s,a,A){if(A<=0&&s>0){const t=new Error("encountered unexpected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e),this.emit("error",t)}if(A>s){const t=new Error("did not encounter expected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e),this.emit("error",t)}if(A===s)for(let e=A;ee);r>=i&&(t=n.allocUnsafe(i),r=0),i=t.length-r,this[p](e,t,r,i,o,s,a)}});const S=Q(class extends i{constructor(e,t){if(super(t=t||{}),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),A.isAbsolute(this.path)&&!this.preservePaths){const e=A.parse(this.path);this.warn("stripping "+e.root+" from absolute path",this.path),this.path=this.path.substr(e.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new s({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),this.header.encode()&&!this.noPax&&super.write(new o({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[B](e){return D(e,"Directory"===this.type)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(n.alloc(this.blockRemain)),super.end()}});v.Sync=class extends v{constructor(e,t){super(e,t)}[d](){this[C](a.lstatSync(this.absolute))}[h](){this[I](a.readlinkSync(this.absolute))}[m](){this[y](a.openSync(this.absolute,"r"))}[p](e,t,r,n,i,o,s){let A=!0;try{const c=a.readSync(e,t,r,n,i);this[E](e,t,r,n,i,o,s,c),A=!1}finally{if(A)try{this[w](e)}catch(e){}}}[w](e){a.closeSync(e)}},v.Tar=S;const k=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported";e.exports=v},function(e,t,r){"use strict";const n=["|","<",">","?",":"],i=n.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),o=new Map(n.map((e,t)=>[e,i[t]])),s=new Map(i.map((e,t)=>[e,n[t]]));e.exports={encode:e=>n.reduce((e,t)=>e.split(t).join(o.get(t)),e),decode:e=>i.reduce((e,t)=>e.split(t).join(s.get(t)),e)}},function(e,t,r){"use strict";const n=r(96),i=r(143),o=r(253),s=(r(178),r(9)),a=r(146),A=r(258),c=r(12),u=r(145),l=(e.exports=(e,t,r)=>{const n=i(e);if(!n.file)throw new TypeError("file is required");if(n.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),n.sync?l(n,t):g(n,t,r)},(e,t)=>{const r=new o.Sync(e);let i,a,A=!0;try{try{i=s.openSync(e.file,"r+")}catch(t){if("ENOENT"!==t.code)throw t;i=s.openSync(e.file,"w+")}const o=s.fstatSync(i),c=n.alloc(512);e:for(a=0;ao.size)break;a+=r,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}A=!1,h(e,r,a,i,t)}finally{if(A)try{s.closeSync(i)}catch(e){}}}),h=(e,t,r,n,i)=>{const o=new a.WriteStreamSync(e.file,{fd:n,start:r});t.pipe(o),f(t,i)},g=(e,t,r)=>{t=Array.from(t);const i=new o(e),A=new Promise((r,o)=>{i.on("error",o);let A="r+";const c=(l,h)=>l&&"ENOENT"===l.code&&"r+"===A?(A="w+",s.open(e.file,A,c)):l?o(l):void s.fstat(h,(A,c)=>{if(A)return o(A);((t,r,i)=>{const o=(e,r)=>{e?s.close(t,t=>i(e)):i(null,r)};let a=0;if(0===r)return o(null,0);let A=0;const c=n.alloc(512),l=(n,i)=>{if(n)return o(n);if((A+=i)<512&&i)return s.read(t,c,A,c.length-A,a+A,l);if(0===a&&31===c[0]&&139===c[1])return o(new Error("cannot append to compressed archives"));if(A<512)return o(null,a);const h=new u(c);if(!h.cksumValid)return o(null,a);const g=512*Math.ceil(h.size/512);return a+g+512>r?o(null,a):(a+=g+512)>=r?o(null,a):(e.mtimeCache&&e.mtimeCache.set(h.path,h.mtime),A=0,void s.read(t,c,0,512,a,l))};s.read(t,c,0,512,a,l)})(h,c.size,(n,s)=>{if(n)return o(n);const A=new a.WriteStream(e.file,{fd:h,start:s});i.pipe(A),A.on("error",o),A.on("close",r),p(i,t)})});s.open(e.file,A,c)});return r?A.then(r,r):A},f=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?A({file:c.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return A({file:c.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>p(e,t));e.add(r)}e.end()}},function(e,t,r){"use strict";const n=r(93),i=(r(50).EventEmitter,r(178)),o=r(9),s=r(146),a=r(12),A=r(626),c=(A.sync,r(332)),u=Symbol("onEntry"),l=Symbol("checkFs"),h=Symbol("isReusable"),g=Symbol("makeFs"),f=Symbol("file"),p=Symbol("directory"),d=Symbol("link"),C=Symbol("symlink"),E=Symbol("hardlink"),I=Symbol("unsupported"),m=(Symbol("unknown"),Symbol("checkPath")),y=Symbol("mkdir"),w=Symbol("onError"),B=Symbol("pending"),Q=Symbol("pend"),b=Symbol("unpend"),D=Symbol("ended"),v=Symbol("maybeClose"),S=Symbol("skip"),k=Symbol("doChown"),x=Symbol("uid"),F=Symbol("gid"),M=r(51),N=(e,t)=>{if("win32"!==process.platform)return o.unlink(e,t);const r=e+".DELETE."+M.randomBytes(16).toString("hex");o.rename(e,r,e=>{if(e)return t(e);o.unlink(r,t)})},R=e=>{if("win32"!==process.platform)return o.unlinkSync(e);const t=e+".DELETE."+M.randomBytes(16).toString("hex");o.renameSync(e,t),o.unlinkSync(t)},K=(e,t,r)=>e===e>>>0?e:t===t>>>0?t:r;class L extends i{constructor(e){if(e||(e={}),e.ondone=e=>{this[D]=!0,this[v]()},super(e),this.transform="function"==typeof e.transform?e.transform:null,this.writable=!0,this.readable=!1,this[B]=0,this[D]=!1,this.dirCache=e.dirCache||new Map,"number"==typeof e.uid||"number"==typeof e.gid){if("number"!=typeof e.uid||"number"!=typeof e.gid)throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;void 0===e.preserveOwner&&"number"!=typeof e.uid?this.preserveOwner=process.getuid&&0===process.getuid():this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=!0===e.forceChown,this.win32=!!e.win32||"win32"===process.platform,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=a.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask="number"==typeof e.umask?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",e=>this[u](e))}[v](){this[D]&&0===this[B]&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[m](e){if(this.strip){const t=e.path.split(/\/|\\/);if(t.length=this.strip&&(e.linkpath=t.slice(this.strip).join("/"))}}if(!this.preservePaths){const t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("path contains '..'",t),!1;if(a.win32.isAbsolute(t)){const r=a.win32.parse(t);this.warn("stripping "+r.root+" from absolute path",t),e.path=t.substr(r.root.length)}}if(this.win32){const t=a.win32.parse(e.path);e.path=""===t.root?c.encode(e.path):t.root+c.encode(e.path.substr(t.root.length))}return a.isAbsolute(e.path)?e.absolute=e.path:e.absolute=a.resolve(this.cwd,e.path),!0}[u](e){if(!this[m](e))return e.resume();switch(n.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=448|e.mode);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[l](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[I](e)}}[w](e,t){"CwdError"===e.name?this.emit("error",e):(this.warn(e.message,e),this[b](),t.resume())}[y](e,t,r){A(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},r)}[k](e){return this.forceChown||this.preserveOwner&&("number"==typeof e.uid&&e.uid!==this.processUid||"number"==typeof e.gid&&e.gid!==this.processGid)||"number"==typeof this.uid&&this.uid!==this.processUid||"number"==typeof this.gid&&this.gid!==this.processGid}[x](e){return K(this.uid,e.uid,this.processUid)}[F](e){return K(this.gid,e.gid,this.processGid)}[f](e){const t=4095&e.mode||this.fmode,r=new s.WriteStream(e.absolute,{mode:t,autoClose:!1});r.on("error",t=>this[w](t,e));let n=1;const i=t=>{if(t)return this[w](t,e);0==--n&&o.close(r.fd,e=>this[b]())};r.on("finish",t=>{const s=e.absolute,a=r.fd;if(e.mtime&&!this.noMtime){n++;const t=e.atime||new Date,r=e.mtime;o.futimes(a,t,r,e=>e?o.utimes(s,t,r,t=>i(t&&e)):i())}if(this[k](e)){n++;const t=this[x](e),r=this[F](e);o.fchown(a,t,r,e=>e?o.chown(s,t,r,t=>i(t&&e)):i())}i()});const a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",t=>this[w](t,e)),e.pipe(a)),a.pipe(r)}[p](e){const t=4095&e.mode||this.dmode;this[y](e.absolute,t,t=>{if(t)return this[w](t,e);let r=1;const n=t=>{0==--r&&(this[b](),e.resume())};e.mtime&&!this.noMtime&&(r++,o.utimes(e.absolute,e.atime||new Date,e.mtime,n)),this[k](e)&&(r++,o.chown(e.absolute,this[x](e),this[F](e),n)),n()})}[I](e){this.warn("unsupported entry type: "+e.type,e),e.resume()}[C](e){this[d](e,e.linkpath,"symlink")}[E](e){this[d](e,a.resolve(this.cwd,e.linkpath),"link")}[Q](){this[B]++}[b](){this[B]--,this[v]()}[S](e){this[b](),e.resume()}[h](e,t){return"File"===e.type&&!this.unlink&&t.isFile()&&t.nlink<=1&&"win32"!==process.platform}[l](e){this[Q](),this[y](a.dirname(e.absolute),this.dmode,t=>{if(t)return this[w](t,e);o.lstat(e.absolute,(t,r)=>{r&&(this.keep||this.newer&&r.mtime>e.mtime)?this[S](e):t||this[h](e,r)?this[g](null,e):r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode?o.chmod(e.absolute,e.mode,t=>this[g](t,e)):this[g](null,e):o.rmdir(e.absolute,t=>this[g](t,e)):N(e.absolute,t=>this[g](t,e))})})}[g](e,t){if(e)return this[w](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[f](t);case"Link":return this[E](t);case"SymbolicLink":return this[C](t);case"Directory":case"GNUDumpDir":return this[p](t)}}[d](e,t,r){o[r](t,e.absolute,t=>{if(t)return this[w](t,e);this[b](),e.resume()})}}L.Sync=class extends L{constructor(e){super(e)}[l](e){const t=this[y](a.dirname(e.absolute),this.dmode);if(t)return this[w](t,e);try{const r=o.lstatSync(e.absolute);if(this.keep||this.newer&&r.mtime>e.mtime)return this[S](e);if(this[h](e,r))return this[g](null,e);try{return r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode&&o.chmodSync(e.absolute,e.mode):o.rmdirSync(e.absolute):R(e.absolute),this[g](null,e)}catch(t){return this[w](t,e)}}catch(t){return this[g](null,e)}}[f](e){const t=4095&e.mode||this.fmode,r=t=>{try{o.closeSync(n)}catch(e){}t&&this[w](t,e)};let n;try{n=o.openSync(e.absolute,"w",t)}catch(e){return r(e)}const i=this.transform&&this.transform(e)||e;i!==e&&(i.on("error",t=>this[w](t,e)),e.pipe(i)),i.on("data",e=>{try{o.writeSync(n,e,0,e.length)}catch(e){r(e)}}),i.on("end",t=>{let i=null;if(e.mtime&&!this.noMtime){const t=e.atime||new Date,r=e.mtime;try{o.futimesSync(n,t,r)}catch(n){try{o.utimesSync(e.absolute,t,r)}catch(e){i=n}}}if(this[k](e)){const t=this[x](e),r=this[F](e);try{o.fchownSync(n,t,r)}catch(n){try{o.chownSync(e.absolute,t,r)}catch(e){i=i||n}}}r(i)})}[p](e){const t=4095&e.mode||this.dmode,r=this[y](e.absolute,t);if(r)return this[w](r,e);if(e.mtime&&!this.noMtime)try{o.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(r){}if(this[k](e))try{o.chownSync(e.absolute,this[x](e),this[F](e))}catch(r){}e.resume()}[y](e,t){try{return A.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[d](e,t,r){try{o[r+"Sync"](t,e.absolute),e.resume()}catch(t){return this[w](t,e)}}},e.exports=L},function(e,t,r){var n=r(147),i=r(262),o=r(40),s=r(185),a=r(263),A=r(114);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,l=!1;++c=0||(i[r]=e[r]);return i}},function(e,t,r){"use strict";function n(e){return Array.prototype.slice.apply(e)}var i="pending";function o(e){this.status=i,this._continuations=[],this._parent=null,this._paused=!1,e&&e.call(this,this._continueWith.bind(this),this._failWith.bind(this))}function s(e){return e&&"function"==typeof e.then}if(o.prototype={then:function(e,t){var r=o.unresolved()._setParent(this);if(this._isRejected()){if(this._paused)return this._continuations.push({promise:r,nextFn:e,catchFn:t}),r;if(t)try{var n=t(this._error);return s(n)?(this._chainPromiseData(n,r),r):o.resolve(n)._setParent(this)}catch(e){return o.reject(e)._setParent(this)}return o.reject(this._error)._setParent(this)}return this._continuations.push({promise:r,nextFn:e,catchFn:t}),this._runResolutions(),r},catch:function(e){if(this._isResolved())return o.resolve(this._data)._setParent(this);var t=o.unresolved()._setParent(this);return this._continuations.push({promise:t,catchFn:e}),this._runRejections(),t},pause:function(){return this._paused=!0,this},resume:function(){var e=this._findFirstPaused();return e&&(e._paused=!1,e._runResolutions(),e._runRejections()),this},_findAncestry:function(){return this._continuations.reduce((function(e,t){if(t.promise){var r={promise:t.promise,children:t.promise._findAncestry()};e.push(r)}return e}),[])},_setParent:function(e){if(this._parent)throw new Error("parent already set");return this._parent=e,this},_continueWith:function(e){var t=this._findFirstPending();t&&(t._data=e,t._setResolved())},_findFirstPending:function(){return this._findFirstAncestor((function(e){return e._isPending&&e._isPending()}))},_findFirstPaused:function(){return this._findFirstAncestor((function(e){return e._paused}))},_findFirstAncestor:function(e){for(var t,r=this;r;)e(r)&&(t=r),r=r._parent;return t},_failWith:function(e){var t=this._findFirstPending();t&&(t._error=e,t._setRejected())},_takeContinuations:function(){return this._continuations.splice(0,this._continuations.length)},_runRejections:function(){if(!this._paused&&this._isRejected()){var e=this._error,t=this._takeContinuations(),r=this;t.forEach((function(t){if(t.catchFn)try{var n=t.catchFn(e);r._handleUserFunctionResult(n,t.promise)}catch(e){e.message;t.promise.reject(e)}else t.promise.reject(e)}))}},_runResolutions:function(){if(!this._paused&&this._isResolved()){var e=this._takeContinuations();if(s(this._data))return this._handleWhenResolvedDataIsPromise(this._data);var t=this._data,r=this;e.forEach((function(e){if(e.nextFn)try{var n=e.nextFn(t);r._handleUserFunctionResult(n,e.promise)}catch(t){r._handleResolutionError(t,e)}else e.promise&&e.promise.resolve(t)}))}},_handleResolutionError:function(e,t){if(this._setRejected(),t.catchFn)try{return void t.catchFn(e)}catch(t){e=t}t.promise&&t.promise.reject(e)},_handleWhenResolvedDataIsPromise:function(e){var t=this;return e.then((function(e){t._data=e,t._runResolutions()})).catch((function(e){t._error=e,t._setRejected(),t._runRejections()}))},_handleUserFunctionResult:function(e,t){s(e)?this._chainPromiseData(e,t):t.resolve(e)},_chainPromiseData:function(e,t){e.then((function(e){t.resolve(e)})).catch((function(e){t.reject(e)}))},_setResolved:function(){this.status="resolved",this._paused||this._runResolutions()},_setRejected:function(){this.status="rejected",this._paused||this._runRejections()},_isPending:function(){return this.status===i},_isResolved:function(){return"resolved"===this.status},_isRejected:function(){return"rejected"===this.status}},o.resolve=function(e){return new o((function(t,r){s(e)?e.then((function(e){t(e)})).catch((function(e){r(e)})):t(e)}))},o.reject=function(e){return new o((function(t,r){r(e)}))},o.unresolved=function(){return new o((function(e,t){this.resolve=e,this.reject=t}))},o.all=function(){var e=n(arguments);return Array.isArray(e[0])&&(e=e[0]),e.length?new o((function(t,r){var n=[],i=0,s=!1;e.forEach((function(a,A){o.resolve(a).then((function(r){n[A]=r,(i+=1)===e.length&&t(n)})).catch((function(e){!function(e){s||(s=!0,r(e))}(e)}))}))})):o.resolve([])},Promise===o)throw new Error("Please use SynchronousPromise.installGlobally() to install globally");var a=Promise;o.installGlobally=function(e){if(Promise===o)return e;var t=function(e){if(void 0===e||e.__patched)return e;var t=e;return(e=function(){t.apply(this,n(arguments))}).__patched=!0,e}(e);return Promise=o,t},o.uninstallGlobally=function(){Promise===o&&(Promise=a)},e.exports={SynchronousPromise:o}},function(e,t,r){var n=r(188),i=r(274),o=r(115);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,i,t(e,i,o))})),r}},function(e,t,r){var n=r(713),i=r(60);e.exports=function e(t,r,o,s,a){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,o,s,e,a))}},function(e,t,r){var n=r(359),i=r(716),o=r(360),s=1,a=2;e.exports=function(e,t,r,A,c,u){var l=r&s,h=e.length,g=t.length;if(h!=g&&!(l&&g>h))return!1;var f=u.get(e);if(f&&u.get(t))return f==t;var p=-1,d=!0,C=r&a?new n:void 0;for(u.set(e,t),u.set(t,e);++p=r.length)throw new Error("Yup.reach cannot resolve an array item at index: "+i+", in the path: "+t+". because there is no value at that index. ");r=r[g]}}if(!l){if(e=e.resolve({context:n,parent:a,value:r}),!(0,o.default)(e,"fields")||!(0,o.default)(e.fields,h))throw new Error("The schema does not contain the path: "+t+". (failed at: "+c+' which is a type: "'+e._type+'") ');e=e.fields[h],a=r,r=r&&r[h],A=h,c=u?"["+i+"]":"."+i}})),{schema:e,parent:a,parentPath:A}):{parent:a,parentPath:t,schema:e}}var A=function(e,t,r,n){return a(e,t,r,n).schema};t.default=A},function(e,t){e.exports=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t.default=e,t}},function(e,t){e.exports=function(e,t){return t||(t=e.slice(0)),e.raw=t,e}},function(e,t,r){var n=r(733),i=r(734),o=r(737),s=RegExp("['’]","g");e.exports=function(e){return function(t){return n(o(i(t).replace(s,"")),e,"")}}},function(e,t){e.exports=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++n1?t-1:0),n=1;n=10.19.0"}}')},function(e,t,r){"use strict";var n={extend:r(197),omit:r(761)},i=r(768),o=r(769);e.exports=class{constructor(e){this.rl||(this.rl=o.createInterface(function(e){(e=e||{}).skipTTYChecks=void 0===e.skipTTYChecks||e.skipTTYChecks;var t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){const e=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw e.isTtyError=!0,e}var r=new i;r.pipe(e.output||process.stdout);var o=r;return n.extend({terminal:!0,input:t,output:o},n.omit(e,["input","output"]))}(e))),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&"function"==typeof this.activePrompt.close&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}}},function(e,t,r){var n=r(372),i=r(375);e.exports=function(e){return n((function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,a&&i(r[0],r[1],a)&&(s=o<3?void 0:s,o=1),t=Object(t);++n{e.isTTY&&(i=!1,e.write("[?25h"))},t.hide=(e=process.stderr)=>{e.isTTY&&(n(),i=!0,e.write("[?25l"))},t.toggle=(e,r)=>{void 0!==e&&(i=e),i?t.show(r):t.hide(r)}},function(e,t,r){var n=r(274),i=r(789)(n);e.exports=i},function(e,t,r){var n=r(184),i=r(115),o=r(790),s=r(40);e.exports=function(e,t){return(s(e)?n:o)(e,i(t,3))}},function(e,t,r){"use strict";const n=r(796);e.exports=e=>"string"==typeof e?e.replace(n(),""):e},function(e,t,r){"use strict";var n=r(41),{map:i,takeUntil:o}=r(67),s=r(84),a=r(85);e.exports=class extends s{_run(e){this.done=e;var t=a(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t="",r="",i=this.getQuestion(),o=this.opt.transformer,s="answered"===this.status;r=s?this.answer:this.rl.line,i+=o?o(r,this.answers,{isFinal:s}):s?n.cyan(r):r,e&&(t=n.red(">> ")+e),this.screen.render(i,t)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(e.value)}onError({value:e="",isValid:t}){this.rl.line+=e,this.rl.cursor+=e.length,this.render(t)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},function(e){e.exports=JSON.parse('[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]')},function(e){e.exports=JSON.parse('[["0","\\u0000",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-compat","version":"2.0.0-rc.15","license":"BSD-2-Clause","main":"./sources/index.ts","peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30","@yarnpkg/plugin-patch":"^2.0.0-rc.10"},"devDependencies":{"@types/resolve":"^1.17.1","@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-patch":"workspace:^2.0.0-rc.10","resolve":"^1.17.0"},"dependencies":{"tslib":"^1.13.0"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-dlx","version":"2.0.0-rc.16","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/json-proxy":"workspace:^2.0.0-rc.9","clipanion":"^2.4.1","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-file","version":"2.0.0-rc.16","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-git","version":"2.0.0-rc.21","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@types/semver":"^7.1.0","@yarnpkg/fslib":"workspace:^2.0.0-rc.22","git-url-parse":"11.1.2","semver":"^7.1.2","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-github","version":"2.0.0-rc.18","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30","@yarnpkg/plugin-git":"^2.0.0-rc.21"},"devDependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-git":"workspace:^2.0.0-rc.21"},"scripts":{"test":"run test:unit packages/plugin-github","postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-http","version":"2.0.0-rc.15","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-init","version":"2.0.0-rc.15","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","clipanion":"^2.4.1","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-link","version":"2.0.0-rc.13","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-node-modules","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/libzip":"workspace:^2.0.0-rc.13","@yarnpkg/parsers":"workspace:^2.0.0-rc.13","@yarnpkg/plugin-pnp":"workspace:^2.0.0-rc.24","@yarnpkg/pnp":"workspace:^2.0.0-rc.23","@yarnpkg/pnpify":"workspace:^2.0.0-rc.25","@zkochan/cmd-shim":"^4.3.0","clipanion":"^2.4.1","micromatch":"^4.0.2","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@types/micromatch":"^4.0.1","@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-stage":"workspace:^2.0.0-rc.17"},"version":"2.0.0-rc.12","nextVersion":{"semver":"2.0.0-rc.5","nonce":"1989925236539513"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-npm","version":"2.0.0-rc.21","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","inquirer":"^7.2.0","semver":"^7.1.2","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@types/inquirer":"^0.0.43","@types/semver":"^7.1.0","@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-npm-cli","version":"2.0.0-rc.20","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","clipanion":"^2.4.1","inquirer":"^7.2.0","semver":"^7.1.2","ssri":"^6.0.1","tslib":"^1.13.0","yup":"^0.27.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30","@yarnpkg/plugin-npm":"^2.0.0-rc.21","@yarnpkg/plugin-pack":"^2.0.0-rc.21"},"devDependencies":{"@npm/types":"^1.0.1","@types/inquirer":"^0.0.43","@types/semver":"^7.1.0","@types/ssri":"^6.0.1","@types/yup":"0.26.12","@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-npm":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-pack":"workspace:^2.0.0-rc.21"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e,t,r){"use strict";var n;e.exports=B,B.ReadableState=w;r(50).EventEmitter;var i=function(e,t){return e.listeners(t).length},o=r(399),s=r(59).Buffer,a=global.Uint8Array||function(){};var A,c=r(14);A=c&&c.debuglog?c.debuglog("stream"):function(){};var u,l,h=r(855),g=r(400),f=r(401).getHighWaterMark,p=r(118).codes,d=p.ERR_INVALID_ARG_TYPE,C=p.ERR_STREAM_PUSH_AFTER_EOF,E=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,m=r(856).emitExperimentalWarning;r(92)(B,o);var y=["error","close","destroy","pause","resume"];function w(e,t,i){n=n||r(119),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=f(this,e,"readableHighWaterMark",i),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=r(403).StringDecoder),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function B(e){if(n=n||r(119),!(this instanceof B))return new B(e);var t=this instanceof n;this._readableState=new w(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function Q(e,t,r,n,i){A("readableAddChunk",t);var o,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?S(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,k(e)))}(e,c);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof a||"string"==typeof t||void 0===t||e.objectMode||(r=new d("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(c,t)),o)e.emit("error",o);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)c.endEmitted?e.emit("error",new I):b(e,c,t,!0);else if(c.ended)e.emit("error",new C);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?b(e,c,t,!1):x(e,c)):b(e,c,t,!1)}else n||(c.reading=!1,x(e,c));return!c.ended&&(c.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=D?e=D:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function S(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(A("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(k,e))}function k(e){var t=e._readableState;A("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,K(e)}function x(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(F,e,t))}function F(e,t){for(var r=t.length;!t.reading&&!t.ended&&t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function N(e){A("readable nexttick read 0"),e.read(0)}function R(e,t){A("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),K(e),t.flowing&&!t.reading&&e.read(0)}function K(e){var t=e._readableState;for(A("flow",t.flowing);t.flowing&&null!==e.read(););}function L(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function O(e){var t=e._readableState;A("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){A("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function P(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return A("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):S(this),null;if(0===(e=v(e,t))&&t.ended)return 0===t.length&&O(this),null;var n,i=t.needReadable;return A("need readable",i),(0===t.length||t.length-e0?L(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&O(this)),null!==n&&this.emit("data",n),n},B.prototype._read=function(e){this.emit("error",new E("_read()"))},B.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,A("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?a:p;function s(t,i){A("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,A("cleanup"),e.removeListener("close",g),e.removeListener("finish",f),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",a),r.removeListener("end",p),r.removeListener("data",l),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function a(){A("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;A("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,K(e))}}(r);e.on("drain",c);var u=!1;function l(t){A("ondata");var i=e.write(t);A("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==P(n.pipes,e))&&!u&&(A("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(t){A("onerror",t),p(),e.removeListener("error",h),0===i(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",f),p()}function f(){A("onfinish"),e.removeListener("close",g),p()}function p(){A("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",g),e.once("finish",f),e.emit("pipe",r),n.flowing||(A("pipe resume"),r.resume()),e},B.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,A("on readable",n.length,n.reading),n.length?S(this):n.reading||process.nextTick(N,this))),r},B.prototype.addListener=B.prototype.on,B.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(M,this),r},B.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(M,this),t},B.prototype.resume=function(){var e=this._readableState;return e.flowing||(A("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(R,e,t))}(this,e)),e.paused=!1,this},B.prototype.pause=function(){return A("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(A("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},B.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(A("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(A("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o-1))throw new m(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(B.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(B.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),B.prototype._write=function(e,t,r){r(new f("_write()"))},B.prototype._writev=null,B.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(B.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),B.prototype.destroy=u.destroy,B.prototype._undestroy=u.undestroy,B.prototype._destroy=function(e,t){t(e)}},function(e,t,r){"use strict";var n=r(254).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=A,this.end=c,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=h,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function A(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function g(e){return e&&e.length?this.write(e):""}t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";e.exports=u;var n=r(118).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,A=r(119);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.lengtht?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "};var A=function(e,t,r){if(128&(e=e.slice(t,t+r))[t=0])return function(e){var t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}for(var r=!1,n=[],i=e.length-1;i>0;i--){var o=e[i];t?n.push(o):r&&0===o?n.push(0):r?(r=!1,n.push(256-o)):n.push(255-o)}var s=0,a=n.length;for(i=0;i=s?s:i>=0?i:(i+=s)>=0?i:0);t=Math.pow(10,r)&&r++,t+r+e};t.decodeLongPath=function(e,t){return c(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=u(" path="+e.name+"\n")),e.linkname&&(t+=u(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=u(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var c=o.indexOf("/");if(-1===c)return null;A+=A?"/"+o.slice(0,c):o.slice(0,c),o=o.slice(c+1)}return Buffer.byteLength(o)>100||Buffer.byteLength(A)>155?null:e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(o),t.write(a(e.mode&i,6),100),t.write(a(e.uid,6),108),t.write(a(e.gid,6),116),t.write(a(e.size,11),124),t.write(a(e.mtime.getTime()/1e3|0,11),136),t[156]=n+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&t.write(e.linkname,157),t.write("ustar\x0000",257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(a(e.devmajor||0,6),329),t.write(a(e.devminor||0,6),337),A&&t.write(A,345),t.write(a(s(t),6),148),t)},t.decode=function(e,t){var r=0===e[156]?0:e[156]-n,i=c(e,0,100,t),o=A(e,100,8),a=A(e,108,8),u=A(e,116,8),l=A(e,124,12),h=A(e,136,12),g=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(r),f=0===e[157]?null:c(e,157,100,t),p=c(e,265,32),d=c(e,297,32),C=A(e,329,8),E=A(e,337,8);e[345]&&(i=c(e,345,155,t)+"/"+i),0===r&&i&&"/"===i[i.length-1]&&(r=5);var I=s(e);if(256===I)return null;if(I!==A(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:i,mode:o,uid:a,gid:u,size:l,mtime:new Date(1e3*h),type:g,linkname:f,uname:p,gname:d,devmajor:C,devminor:E}}},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-pack","version":"2.0.0-rc.21","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","clipanion":"^2.4.1","micromatch":"^4.0.2","tar-stream":"^2.0.1","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@types/micromatch":"^4.0.1","@types/tar-stream":"1.6.0","@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-stage":"workspace:^2.0.0-rc.17"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-patch","version":"2.0.0-rc.10","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/libzip":"workspace:^2.0.0-rc.13","clipanion":"^2.4.1","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@types/left-pad":"1.2.0","@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=408},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/plugin-pnp","version":"2.0.0-rc.24","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@types/semver":"^7.1.0","@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/plugin-stage":"workspace:^2.0.0-rc.17","@yarnpkg/pnp":"workspace:^2.0.0-rc.23","clipanion":"^2.4.1","semver":"^7.1.2","tslib":"^1.13.0"},"peerDependencies":{"@yarnpkg/cli":"^2.0.0-rc.36","@yarnpkg/core":"^2.0.0-rc.30"},"devDependencies":{"@yarnpkg/cli":"workspace:^2.0.0-rc.36","@yarnpkg/core":"workspace:^2.0.0-rc.30"},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\""},"publishConfig":{"main":"./lib/index.js","typings":"./lib/index.d.ts"},"files":["/lib/**/*"],"engines":{"node":">=10.19.0"}}')},function(e,t,r){"use strict";var n=r(3),i=r(4),o=r(43),s=r(23),a=r(2),A=r(51);function c(){}function u(e,t,r,n,i){for(var o=0,s=t.length,a=0,A=0;oe.length?r:e})),c.value=e.join(l)}else c.value=e.join(r.slice(a,a+c.count));a+=c.count,c.added||(A+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}function l(e){return{newPos:e.newPos,components:e.components.slice(0)}}c.prototype={diff:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.callback;"function"==typeof r&&(n=r,r={}),this.options=r;var i=this;function o(e){return n?(setTimeout((function(){n(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,A=1,c=s+a,h=[{newPos:-1,components:[]}],g=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=s&&g+1>=a)return o([{value:this.join(t),count:t.length}]);function f(){for(var r=-1*A;r<=A;r+=2){var n=void 0,c=h[r-1],g=h[r+1],f=(g?g.newPos:0)-r;c&&(h[r-1]=void 0);var p=c&&c.newPos+1=s&&f+1>=a)return o(u(i,n.components,t,e,i.useLongestToken));h[r]=n}else h[r]=void 0}A++}if(n)!function e(){setTimeout((function(){if(A>c)return n();f()||e()}),0)}();else for(;A<=c;){var p=f();if(p)return p}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var i=t.length,o=r.length,s=e.newPos,a=s-n,A=0;s+10?A(p.lines.slice(-s.context)):[],u-=h.length,l-=h.length)}(o=h).push.apply(o,I(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?f+=i.length:g+=i.length}else{if(u)if(i.length<=2*s.context&&e=a.length-2&&i.length<=s.context){var y=/\n$/.test(r),w=/\n$/.test(n),B=0==i.length&&h.length>m.oldLines;!y&&B&&h.splice(m.oldLines,0,"\\ No newline at end of file"),(y||B)&&w||h.push("\\ No newline at end of file")}c.push(m),u=0,l=0,h=[]}g+=i.length,f+=i.length}},C=0;C`${r}#commit:${n}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https?:\/\/[^/]+\/(?:@[^/]+\/)?([^/]+)\/-\/\1-[^/]+\.tgz(?:#|$)/,e=>`npm:${e}`],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>`npm:${e}`]];class U{constructor(){this.resolutions=null}async setup(e,{report:t}){const r=i.e.join(e.cwd,e.configuration.get("lockfileFilename"));if(!n.xfs.existsSync(r))return;const o=await n.xfs.readFilePromise(r,"utf8"),a=Object(s.parseSyml)(o);if(Object.prototype.hasOwnProperty.call(a,"__metadata"))return;const A=this.resolutions=new Map;for(const r of Object.keys(a)){let n=T.tryParseDescriptor(r);if(!n){t.reportWarning(O.a.YARN_IMPORT_FAILED,`Failed to parse the string "${r}" into a proper descriptor`);continue}k.a.validRange(n.range)&&(n=T.makeDescriptor(n,`npm:${n.range}`));const{version:i,resolved:o}=a[r];if(!o)continue;let s;for(const[e,t]of P){const r=o.match(e);if(r){s=t(i,...r);break}}if(!s){t.reportWarning(O.a.YARN_IMPORT_FAILED,`${T.prettyDescriptor(e.configuration,n)}: Only some patterns can be imported from legacy lockfiles (not "${o}")`);continue}const c=T.makeLocator(n,s);A.set(n.descriptorHash,c)}}supportsDescriptor(e,t){return!!this.resolutions&&this.resolutions.has(e.descriptorHash)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");const n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}class _{supportsDescriptor(e,t){return!!t.project.storedResolutions.get(e.descriptorHash)||!!t.project.originalPackages.has(T.convertDescriptorToLocator(e).locatorHash)}supportsLocator(e,t){return!!t.project.originalPackages.has(e.locatorHash)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=r.project.originalPackages.get(T.convertDescriptorToLocator(e).locatorHash);if(n)return[n];const i=r.project.storedResolutions.get(e.descriptorHash);if(!i)throw new Error("Expected the resolution to have been successful - resolution not found");if(!(n=r.project.originalPackages.get(i)))throw new Error("Expected the resolution to have been successful - package not found");return[n]}async resolve(e,t){const r=t.project.originalPackages.get(e.locatorHash);if(!r)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return r}}var j=r(37),Y=r(163),G=r(24);class J{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.resolver.bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,r){throw new G.b(O.a.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async resolve(e,t){throw new G.b(O.a.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}}var H=r(159),z=r(207),q=r(88),W=r(47),V=r(22),X=r(160),Z=r(122),$=r(121);r.d(t,"a",(function(){return se}));const ee=4,te=1,re=/ *, */g,ne=32,ie=Object(x.promisify)(R.a.gzip),oe=Object(x.promisify)(R.a.gunzip);class se{constructor(e,{configuration:t}){this.resolutionAliases=new Map,this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map,this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.storedChecksums=new Map,this.accessibleLocators=new Set,this.originalPackages=new Map,this.optionalBuilds=new Set,this.lockFileChecksum=null,this.configuration=t,this.cwd=e}static async find(e,t){if(!e.projectCwd)throw new a.UsageError(`No project found in ${t}`);let r=e.projectCwd,o=t,s=null;for(;s!==e.projectCwd;){if(s=o,n.xfs.existsSync(i.e.join(s,Object(i.f)("package.json")))){r=s;break}o=i.e.dirname(s)}const A=new se(e.projectCwd,{configuration:e});await A.setupResolutions(),await A.setupWorkspaces();const c=A.tryWorkspaceByCwd(r);if(c)return{project:A,workspace:c,locator:c.anchoredLocator};const u=await A.findLocatorForLocation(`${r}/`);if(u)return{project:A,locator:u,workspace:null};throw new a.UsageError(`The nearest package directory (${r}) doesn't seem to be part of the project declared at ${A.cwd}. If the project directory is right, it might be that you forgot to list a workspace. If it isn't, it's likely because you have a yarn.lock file at the detected location, confusing the project detection.`)}static generateBuildStateFile(e,t){let r="# Warning: This file is automatically generated. Removing it is fine, but will\n# cause all your builds to become invalidated.\n";const n=[...e].map(([e,r])=>{const n=t.get(e);if(void 0===n)throw new Error("Assertion failed: The locator should have been registered");return[T.stringifyLocator(n),n.locatorHash,r]});for(const[e,t,i]of V.sortMap(n,[e=>e[0],e=>e[1]]))r+="\n",r+=`# ${e}\n`,r+=`${JSON.stringify(t)}:\n`,r+=` ${i}\n`;return r}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;const e=i.e.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(n.xfs.existsSync(e)){const r=await n.xfs.readFilePromise(e,"utf8");this.lockFileChecksum=W.makeHash(`${te}`,r);const i=Object(s.parseSyml)(r);if(i.__metadata){const e=i.__metadata.version,r=i.__metadata.cacheKey;for(const n of Object.keys(i)){if("__metadata"===n)continue;const o=i[n];if(void 0===o.resolution)throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${n})`);const s=T.parseLocator(o.resolution,!0),a=new j.a;a.load(o);const A=a.version,c=a.languageName||t,u=o.linkType.toUpperCase(),l=a.dependencies,h=a.peerDependencies,g=a.dependenciesMeta,f=a.peerDependenciesMeta,p=a.bin;if(null!=o.checksum){const e=void 0===r||o.checksum.includes("/")?o.checksum:`${r}/${o.checksum}`;this.storedChecksums.set(s.locatorHash,e)}if(e>=ee){const e={...s,version:A,languageName:c,linkType:u,dependencies:l,peerDependencies:h,dependenciesMeta:g,peerDependenciesMeta:f,bin:p};this.originalPackages.set(e.locatorHash,e)}for(const t of n.split(re)){const r=T.parseDescriptor(t);if(this.storedDescriptors.set(r.descriptorHash,r),e>=ee)this.storedResolutions.set(r.descriptorHash,s.locatorHash);else{const e=T.convertLocatorToDescriptor(s);e.descriptorHash!==r.descriptorHash&&(this.storedDescriptors.set(e.descriptorHash,e),this.resolutionAliases.set(r.descriptorHash,e.descriptorHash))}}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){const t=e;e=[];for(const r of t){if(this.workspacesByCwd.has(r))continue;const t=await this.addWorkspace(r),n=this.storedPackages.get(t.anchoredLocator.locatorHash);n&&(t.dependencies=n.dependencies);for(const r of t.workspacesCwds)e.push(r)}}}async addWorkspace(e){const t=new z.a(e,{project:this});await t.setup();const r=this.workspacesByIdent.get(t.locator.identHash);if(void 0!==r)throw new Error(`Duplicate workspace name ${T.prettyIdent(this.configuration,t.locator)}: ${e} conflicts with ${r.cwd}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){i.e.isAbsolute(e)||(e=i.e.resolve(this.cwd,e));const t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){const t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(const r of this.workspaces){i.e.relative(r.cwd,e).startsWith("../")||(t&&t.cwd.length>=r.cwd.length||(t=r))}return t||null}getWorkspaceByFilePath(e){const t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){const t=this.workspacesByIdent.get(e.identHash);return void 0===t?null:t}getWorkspaceByIdent(e){const t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${T.prettyIdent(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){const t=this.tryWorkspaceByIdent(e);return null!==t&&t.accepts(e.range)?t:null}getWorkspaceByDescriptor(e){const t=this.tryWorkspaceByDescriptor(e);if(null===t)throw new Error(`Workspace not found (${T.prettyDescriptor(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){T.isVirtualLocator(e)&&(e=T.devirtualizeLocator(e));const t=this.tryWorkspaceByIdent(e);return null===t||t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash?null:t}getWorkspaceByLocator(e){const t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${T.prettyLocator(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(const e of this.workspaces){const t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error("Assertion failed: Expected workspace to have been resolved");e.dependencies=new Map(t.dependencies)}}forgetTransientResolutions(){const e=this.configuration.makeResolver(),t=new Set;for(const r of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(r,{project:this,resolver:e})}catch(e){n=!1}n||(this.originalPackages.delete(r.locatorHash),t.add(r.locatorHash))}for(const[e,r]of this.storedResolutions)t.has(r)&&(this.storedResolutions.delete(e),this.storedDescriptors.delete(e))}forgetVirtualResolutions(){for(const e of this.storedPackages.values())for(const[t,r]of e.dependencies)T.isVirtualDescriptor(r)&&e.dependencies.set(t,T.devirtualizeDescriptor(r))}getDependencyMeta(e,t){const r={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(T.stringifyIdent(e));if(!n)return r;const i=n.get(null);if(i&&Object.assign(r,i),null===t||!k.a.valid(t))return r;for(const[e,i]of n)null!==e&&e===t&&Object.assign(r,i);return r}async findLocatorForLocation(e){const t=new H.a,r=this.configuration.getLinkers(),n={project:this,report:t};for(const t of r){const r=await t.findPackageLocator(e,n);if(r)return r}return null}async validateEverything(e){for(const t of e.validationWarnings)e.report.reportWarning(t.name,t.text);for(const t of e.validationErrors)e.report.reportError(t.name,t.text)}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();const t=e.resolver||this.configuration.makeResolver(),r=new U;await r.setup(this,{report:e.report});const o=e.lockfileOnly?new Y.a([new _,new J(t)]):new Y.a([new _,r,t]),s=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:o}:{project:this,report:e.report,resolver:o,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:s}},A=new Map,c=new Map,u=new Map,l=new Map,h=new Map,g=new Set;let f=new Set;for(const e of this.workspaces){const t=e.anchoredDescriptor;A.set(t.descriptorHash,t),f.add(t.descriptorHash)}const p=v()(10);for(;0!==f.size;){const e=f;f=new Set;for(const t of e)u.has(t)&&e.delete(t);if(0===e.size)break;const t=new Set,r=new Map;for(const n of e){const i=A.get(n);if(!i)throw new Error("Assertion failed: The descriptor should have been registered");let s=h.get(n);if(void 0===s){h.set(n,s=new Set);for(const e of o.getResolutionDependencies(i,a))A.set(e.descriptorHash,e),s.add(e.descriptorHash)}const l=V.getMapWithDefault(r,n);for(const r of s){const i=u.get(r);if(void 0!==i){const e=c.get(i);if(void 0===e)throw new Error("Assertion failed: The package should have been registered");l.set(r,e)}else t.add(n),e.add(r)}}for(const r of t)e.delete(r),f.add(r);if(0===e.size)throw new Error("Assertion failed: Descriptors should not have cyclic dependencies");const n=new Map(await Promise.all(Array.from(e).map(e=>p(async()=>{const t=A.get(e);if(void 0===t)throw new Error("Assertion failed: The descriptor should have been registered");const n=r.get(t.descriptorHash);if(void 0===n)throw new Error("Assertion failed: The descriptor dependencies should have been registered");let i;try{i=await o.getCandidates(t,n,a)}catch(e){throw e.message=`${T.prettyDescriptor(this.configuration,t)}: ${e.message}`,e}if(0===i.length)throw new Error(`No candidate found for ${T.prettyDescriptor(this.configuration,t)}`);return[t.descriptorHash,i]})))),i=new Map;for(const[e,t]of n)1===t.length&&(i.set(e,t[0]),n.delete(e));for(const[e,t]of n){const r=t.find(e=>c.has(e.locatorHash));r&&(i.set(e,r),n.delete(e))}if(n.size>0){const e=new b.a.Solver;for(const t of n.values())e.require(b.a.or(...t.map(e=>e.locatorHash)));let t,r=100,o=null,s=1/0;for(;r>0&&null!==(t=e.solve());){const n=t.getTrueVars();e.forbid(t.getFormula()),n.lengtha.has(e.locatorHash));if(!r)throw new Error("Assertion failed: The descriptor should have been solved during the previous step");i.set(e,r),n.delete(e)}}const s=Array.from(i.values()).filter(e=>!c.has(e.locatorHash)),d=new Map(await Promise.all(s.map(async e=>{const t=await V.prettifyAsyncErrors(async()=>await o.resolve(e,a),t=>`${T.prettyLocator(this.configuration,e)}: ${t}`);if(!T.areLocatorsEqual(e,t))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${T.prettyLocator(this.configuration,e)} to ${T.prettyLocator(this.configuration,t)})`);const r=this.configuration.normalizePackage(t);for(const[t,n]of r.dependencies){const i=await this.configuration.reduceHook(e=>e.reduceDependency,n,this,r,n,{resolver:o,resolveOptions:a});if(!T.areIdentsEqual(n,i))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");const s=o.bindDescriptor(i,e,a);r.dependencies.set(t,s)}return[r.locatorHash,{original:t,pkg:r}]})));for(const t of e){const e=i.get(t);if(!e)throw new Error("Assertion failed: The locator should have been registered");u.set(t,e.locatorHash);const r=d.get(e.locatorHash);if(void 0===r)continue;const{original:n,pkg:o}=r;l.set(n.locatorHash,n),c.set(o.locatorHash,o);for(const e of o.dependencies.values()){A.set(e.descriptorHash,e),f.add(e.descriptorHash);const t=this.resolutionAliases.get(e.descriptorHash);if(void 0===t)continue;if(e.descriptorHash===t)continue;const r=this.storedDescriptors.get(t);if(!r)throw new Error("Assertion failed: The alias should have been registered");u.has(e.descriptorHash)||(u.set(e.descriptorHash,"temporary"),f.delete(e.descriptorHash),f.add(t),A.set(t,r),g.add(e.descriptorHash))}}}for(;g.size>0;){let e=!1;for(const t of g){if(!A.get(t))throw new Error("Assertion failed: The descriptor should have been registered");const r=this.resolutionAliases.get(t);if(void 0===r)throw new Error("Assertion failed: The descriptor should have an alias");const n=u.get(r);if(void 0===n)throw new Error("Assertion failed: The resolution should have been registered");"temporary"!==n&&(g.delete(t),u.set(t,n),e=!0)}if(!e)throw new Error("Alias loop detected")}const d=new Set(this.resolutionAliases.values()),C=new Set(c.keys()),E=new Set;!function({project:e,allDescriptors:t,allResolutions:r,allPackages:o,accessibleLocators:s=new Set,optionalBuilds:a=new Set,volatileDescriptors:A=new Set,report:c,tolerateMissingPackages:u=!1}){const l=new Map,h=[],g=new Map,f=new Map,p=new Map(e.workspaces.map(e=>{const t=e.anchoredLocator.locatorHash,r=o.get(t);if(void 0===r){if(u)return[t,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[t,T.copyPackage(r)]})),d=()=>{const e=n.xfs.mktempSync(),t=i.e.join(e,"stacktrace.log"),r=String(h.length+1).length,o=h.map((e,t)=>{return`${`${t+1}.`.padStart(r," ")} ${T.stringifyLocator(e)}\n`}).join("");throw n.xfs.writeFileSync(t,o),new G.b(O.a.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${t}`)},C=e=>{const t=r.get(e.descriptorHash);if(void 0===t)throw new Error("Assertion failed: The resolution should have been registered");const n=o.get(t);if(!n)throw new Error("Assertion failed: The package could not be found");return n},E=(e,t,r)=>{h.length>1e3&&d(),h.push(e);const n=I(e,t,r);return h.pop(),n},I=(n,i,h)=>{if(s.has(n.locatorHash))return;s.add(n.locatorHash),h||a.delete(n.locatorHash);const I=o.get(n.locatorHash);if(!I){if(u)return;throw new Error(`Assertion failed: The package (${T.prettyLocator(e.configuration,n)}) should have been registered`)}const m=[],y=[],w=[],B=[],Q=[];for(const s of Array.from(I.dependencies.values())){if(I.peerDependencies.has(s.identHash)&&!i)continue;if(T.isVirtualDescriptor(s))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");A.delete(s.descriptorHash);let a=h;if(!a){const e=I.dependenciesMeta.get(T.stringifyIdent(s));if(void 0!==e){const t=e.get(null);void 0!==t&&t.optional&&(a=!0)}}const g=r.get(s.descriptorHash);if(!g){if(u)continue;throw new Error(`Assertion failed: The resolution (${T.prettyDescriptor(e.configuration,s)}) should have been registered`)}const b=p.get(g)||o.get(g);if(!b)throw new Error(`Assertion failed: The package (${g}, resolved from ${T.prettyDescriptor(e.configuration,s)}) should have been registered`);if(0===b.peerDependencies.size){E(b,!1,a);continue}const D=l.get(b.locatorHash);let v,S;"number"==typeof D&&D>=2&&d();const k=new Set;y.push(()=>{v=T.virtualizeDescriptor(s,n.locatorHash),S=T.virtualizePackage(b,n.locatorHash),I.dependencies.delete(s.identHash),I.dependencies.set(v.identHash,v),r.set(v.descriptorHash,S.locatorHash),t.set(v.descriptorHash,v),o.set(S.locatorHash,S),m.push([b,v,S])}),w.push(()=>{for(const i of S.peerDependencies.values()){let o=I.dependencies.get(i.identHash);if(!o&&T.areIdentsEqual(n,i)&&(o=T.convertLocatorToDescriptor(n),t.set(o.descriptorHash,o),r.set(o.descriptorHash,n.locatorHash),A.delete(o.descriptorHash)),o||!S.dependencies.has(i.identHash)){if(!o){if(!I.peerDependencies.has(i.identHash)){const t=S.peerDependenciesMeta.get(T.stringifyIdent(i));null===c||t&&t.optional||c.reportWarning(O.a.MISSING_PEER_DEPENDENCY,`${T.prettyLocator(e.configuration,n)} doesn't provide ${T.prettyDescriptor(e.configuration,i)} requested by ${T.prettyLocator(e.configuration,b)}`)}o=T.makeDescriptor(i,"missing:")}if(S.dependencies.set(o.identHash,o),T.isVirtualDescriptor(o)){V.getSetWithDefault(f,o.descriptorHash).add(S.locatorHash)}if("missing:"===o.range)k.add(o.identHash);else if(null!==c){const t=C(o);Z.satisfiesWithPrereleases(t.version,i.range)||c.reportWarning(O.a.INCOMPATIBLE_PEER_DEPENDENCY,`${T.prettyLocator(e.configuration,n)} provides ${T.prettyLocator(e.configuration,t)} with version ${t.version} which doesn't satisfy ${T.prettyRange(e.configuration,i.range)} requested by ${T.prettyLocator(e.configuration,b)}`)}}else S.peerDependencies.delete(i.identHash)}S.dependencies=new Map(V.sortMap(S.dependencies,([e,t])=>T.stringifyIdent(t)))}),B.push(()=>{if(!o.has(S.locatorHash))return;const e=l.get(b.locatorHash),t=void 0!==e?e+1:1;l.set(b.locatorHash,t),E(S,!1,a),l.set(b.locatorHash,t-1)}),Q.push(()=>{if(o.has(S.locatorHash))for(const e of k)S.dependencies.delete(e)})}for(const e of[...y,...w])e();for(const[e,n,i]of m){const a=V.getMapWithDefault(g,e.locatorHash),A=W.makeHash(...[...i.dependencies.values()].map(e=>{const t="missing:"!==e.range?r.get(e.descriptorHash):"missing:";if(void 0===t)throw new Error("Assertion failed: Expected the resolution to have been registered");return t})),c=a.get(A);if(void 0===c){a.set(A,n);continue}o.delete(i.locatorHash),t.delete(n.descriptorHash),r.delete(n.descriptorHash),s.delete(i.locatorHash);const u=f.get(n.descriptorHash)||[],l=[I.locatorHash,...u];for(const e of l){const t=o.get(e);void 0!==t&&t.dependencies.set(n.identHash,c)}}for(const e of[...B,...Q])e()};for(const t of e.workspaces)A.delete(t.anchoredDescriptor.descriptorHash),E(t.anchoredLocator,!0,!1)}({project:this,report:e.report,accessibleLocators:E,volatileDescriptors:d,optionalBuilds:C,allDescriptors:A,allResolutions:u,allPackages:c});for(const e of d)A.delete(e),u.delete(e);this.storedResolutions=u,this.storedDescriptors=A,this.storedPackages=c,this.accessibleLocators=E,this.originalPackages=l,this.optionalBuilds=C,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:r}){const n=r||this.configuration.makeFetcher(),i={checksums:this.storedChecksums,project:this,cache:e,fetcher:n,report:t},o=V.sortMap(this.storedResolutions.values(),[e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");return T.stringifyLocator(t)}]);let s=!1;const a=G.a.progressViaCounter(o.length);t.reportProgress(a);const A=v()(ne);if(await t.startCacheReport(async()=>{await Promise.all(o.map(e=>A(async()=>{const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The locator should have been registered");if(T.isVirtualLocator(r))return;let o;try{o=await n.fetch(r,i)}catch(e){return e.message=`${T.prettyLocator(this.configuration,r)}: ${e.message}`,t.reportExceptionOnce(e),void(s=e)}o.checksum?this.storedChecksums.set(r.locatorHash,o.checksum):this.storedChecksums.delete(r.locatorHash),o.releaseFs&&o.releaseFs()}).finally(()=>{a.tick()})))}),s)throw s}async linkEverything({cache:e,report:t,fetcher:r}){const o=r||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t},c=this.configuration.getLinkers(),u={project:this,report:t},l=new Map(c.map(e=>[e,e.makeInstaller(u)])),h=new Map,g=new Map,f=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=await o.fetch(t,a);if(null!==this.tryWorkspaceByLocator(t)){const e=[],{scripts:n}=await j.a.find(r.prefixPath,{baseFs:r.packageFs});for(const t of["preinstall","install","postinstall"])n.has(t)&&e.push([L.a.SCRIPT,t]);try{for(const e of l.values())await e.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}const o=i.e.join(r.packageFs.getRealPath(),r.prefixPath);g.set(t.locatorHash,o),e.length>0&&f.set(t.locatorHash,{directives:e,buildLocations:[o]})}else{const e=c.find(e=>e.supportsPackage(t,u));if(!e)throw new G.b(O.a.LINKER_NOT_FOUND,`${T.prettyLocator(this.configuration,t)} isn't supported by any available linker`);const n=l.get(e);if(!n)throw new Error("Assertion failed: The installer should have been registered");let i;try{i=await n.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}h.set(t.locatorHash,e),g.set(t.locatorHash,i.packageLocation),i.buildDirective&&f.set(t.locatorHash,{directives:i.buildDirective,buildLocations:[i.packageLocation]})}}const p=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=null!==this.tryWorkspaceByLocator(t),n=async(e,n)=>{const i=g.get(t.locatorHash);if(!i)throw new Error(`Assertion failed: The package (${T.prettyLocator(this.configuration,t)}) should have been registered`);const o=[];for(const n of t.dependencies.values()){const s=this.storedResolutions.get(n.descriptorHash);if(void 0===s)throw new Error(`Assertion failed: The resolution (${T.prettyDescriptor(this.configuration,n)}, from ${T.prettyLocator(this.configuration,t)})should have been registered`);const a=this.storedPackages.get(s);if(void 0===a)throw new Error(`Assertion failed: The package (${s}, resolved from ${T.prettyDescriptor(this.configuration,n)}) should have been registered`);const A=null===this.tryWorkspaceByLocator(a)?h.get(s):null;if(void 0===A)throw new Error(`Assertion failed: The package (${s}, resolved from ${T.prettyDescriptor(this.configuration,n)}) should have been registered`);const c=null===A;if(A===e||r||c)o.push([n,a]);else{V.getArrayWithDefault(p,s).push(i)}}await n.attachInternalDependencies(t,o)};if(r)for(const[e,t]of l)await n(e,t);else{const e=h.get(t.locatorHash);if(!e)throw new Error("Assertion failed: The linker should have been found");const r=l.get(e);if(!r)throw new Error("Assertion failed: The installer should have been registered");await n(e,r)}}for(const[e,t]of p){const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The package should have been registered");const n=h.get(r.locatorHash);if(!n)throw new Error("Assertion failed: The linker should have been found");const i=l.get(n);if(!i)throw new Error("Assertion failed: The installer should have been registered");await i.attachExternalDependents(r,t)}for(const e of l.values()){const t=await e.finalizeInstall();if(t)for(const e of t)e.buildDirective&&f.set(e.locatorHash,{directives:e.buildDirective,buildLocations:e.buildLocations})}const d=new Set(this.storedPackages.keys()),C=new Set(f.keys());for(const e of C)d.delete(e);const E=Object(A.createHash)("sha512");E.update(process.versions.node),this.configuration.triggerHook(e=>e.globalHashGeneration,this,e=>{E.update("\0"),E.update(e)});const I=E.digest("hex"),m=new Map,y=e=>{let t=m.get(e.locatorHash);if(void 0!==t)return t;const r=this.storedPackages.get(e.locatorHash);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");const n=Object(A.createHash)("sha512");n.update(e.locatorHash),m.set(e.locatorHash,"");for(const e of r.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(void 0===t)throw new Error(`Assertion failed: The resolution (${T.prettyDescriptor(this.configuration,e)}) should have been registered`);if(void 0===this.storedPackages.get(t))throw new Error("Assertion failed: The package should have been registered");n.update(y(r))}return t=n.digest("hex"),m.set(e.locatorHash,t),t},w=(e,t)=>{const r=Object(A.createHash)("sha512");r.update(I),r.update(y(e));for(const e of t)r.update(e);return r.digest("hex")},B=this.configuration.get("bstatePath"),Q=n.xfs.existsSync(B)?Object(s.parseSyml)(await n.xfs.readFilePromise(B,"utf8")):{},b=new Map;for(;C.size>0;){const e=C.size,r=[];for(const e of C){const o=this.storedPackages.get(e);if(!o)throw new Error("Assertion failed: The package should have been registered");let s=!0;for(const e of o.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(!t)throw new Error(`Assertion failed: The resolution (${T.prettyDescriptor(this.configuration,e)}) should have been registered`);if(C.has(t)){s=!1;break}}if(!s)continue;C.delete(e);const a=f.get(o.locatorHash);if(!a)throw new Error("Assertion failed: The build directive should have been registered");const A=w(o,a.buildLocations);if(Object.prototype.hasOwnProperty.call(Q,o.locatorHash)&&Q[o.locatorHash]===A)b.set(o.locatorHash,A);else{Object.prototype.hasOwnProperty.call(Q,o.locatorHash)?t.reportInfo(O.a.MUST_REBUILD,`${T.prettyLocator(this.configuration,o)} must be rebuilt because its dependency tree changed`):t.reportInfo(O.a.MUST_BUILD,`${T.prettyLocator(this.configuration,o)} must be built because it never did before or the last one failed`);for(const e of a.buildLocations){if(!i.e.isAbsolute(e))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${e})`);r.push((async()=>{for(const[r,s]of a.directives){let a=`# This file contains the result of Yarn building a package (${T.stringifyLocator(o)})\n`;switch(r){case L.a.SCRIPT:a+=`# Script name: ${s}\n`;break;case L.a.SHELLCODE:a+=`# Script code: ${s}\n`}const c=null;await n.xfs.mktempPromise(async u=>{const l=i.e.join(u,"build.log"),{stdout:h,stderr:g}=this.configuration.getSubprocessStreams(l,{header:a,prefix:T.prettyLocator(this.configuration,o),report:t});let f;try{switch(r){case L.a.SCRIPT:f=await X.executePackageScript(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g});break;case L.a.SHELLCODE:f=await X.executePackageShellcode(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g})}}catch(e){g.write(e.stack),f=1}if(h.end(),g.end(),0===f)return b.set(o.locatorHash,A),!0;n.xfs.detachTemp(u);const p=`${T.prettyLocator(this.configuration,o)} couldn't be built successfully (exit code ${this.configuration.format(String(f),K.d.NUMBER)}, logs can be found here: ${this.configuration.format(l,K.d.PATH)})`;return t.reportInfo(O.a.BUILD_FAILED,p),this.optionalBuilds.has(o.locatorHash)?(b.set(o.locatorHash,A),!0):(t.reportError(O.a.BUILD_FAILED,p),!1)})}})())}}}if(await Promise.all(r),e===C.size){const e=Array.from(C).map(e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The package should have been registered");return T.prettyLocator(this.configuration,t)}).join(", ");t.reportError(O.a.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${e})`);break}}if(b.size>0){const e=this.configuration.get("bstatePath"),t=se.generateBuildStateFile(b,this.storedPackages);await n.xfs.mkdirpPromise(i.e.dirname(e)),await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}else await n.xfs.removePromise(B)}async install(e){const t=[],r=[];await this.configuration.triggerHook(e=>e.validateProject,this,{reportWarning:(e,r)=>t.push({name:e,text:r}),reportError:(e,t)=>r.push({name:e,text:t})}),t.length+r.length>0&&await e.report.startTimerPromise("Validation step",async()=>{await this.validateEverything({validationWarnings:t,validationErrors:r,report:e.report})}),await e.report.startTimerPromise("Resolution step",async()=>{const t=i.e.join(this.cwd,this.configuration.get("lockfileFilename"));let r=null;if(e.immutable)try{r=await n.xfs.readFilePromise(t,"utf8")}catch(e){throw"ENOENT"===e.code?new G.b(O.a.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):e}if(await this.resolveEverything(e),null!==r){const n=Object(o.c)(r,this.generateLockfile());if(n!==r){const i=B(t,t,r,n);e.report.reportSeparator();for(const t of i.hunks){e.report.reportInfo(null,`@@ -${t.oldStart},${t.oldLines} +${t.newStart},${t.newLines} @@`);for(const r of t.lines)r.startsWith("+")?e.report.reportError(O.a.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.d.ADDED)):r.startsWith("-")?e.report.reportError(O.a.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.d.REMOVED)):e.report.reportInfo(null,this.configuration.format(r,"grey"))}throw e.report.reportSeparator(),new G.b(O.a.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}}),await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(void 0===e.persistProject||e.persistProject)&&await this.cacheCleanup(e)}),(void 0===e.persistProject||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{await this.linkEverything(e)}),await this.configuration.triggerHook(e=>e.afterAllInstalled,this)}generateLockfile(){const e=new Map;for(const[t,r]of this.storedResolutions.entries()){let n=e.get(r);n||e.set(r,n=new Set),n.add(t)}const t={};t.__metadata={version:ee};for(const[r,n]of e.entries()){const e=this.originalPackages.get(r);if(!e)continue;const i=[];for(const e of n){const t=this.storedDescriptors.get(e);if(!t)throw new Error("Assertion failed: The descriptor should have been registered");i.push(t)}const o=i.map(e=>T.stringifyDescriptor(e)).sort().join(", "),s=new j.a;let a;s.version=e.linkType===$.a.HARD?e.version:"0.0.0-use.local",s.languageName=e.languageName,s.dependencies=new Map(e.dependencies),s.peerDependencies=new Map(e.peerDependencies),s.dependenciesMeta=new Map(e.dependenciesMeta),s.peerDependenciesMeta=new Map(e.peerDependenciesMeta),s.bin=new Map(e.bin);const A=this.storedChecksums.get(e.locatorHash);if(void 0!==A){const e=A.indexOf("/");if(-1===e)throw new Error("Assertion failed: Expecte the checksum to reference its cache key");const r=A.slice(0,e),n=A.slice(e+1);void 0===t.__metadata.cacheKey&&(t.__metadata.cacheKey=r),a=r===t.__metadata.cacheKey?n:A}t[o]={...s.exportTo({},{compatibilityMode:!1}),linkType:e.linkType.toLowerCase(),resolution:T.stringifyLocator(e),checksum:a}}return`${['# This file is generated by running "yarn install" inside your project.\n',"# Manual changes might be lost - proceed with caution!\n"].join("")}\n`+Object(s.stringifySyml)(t)}async persistLockfile(){const e=i.e.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.generateLockfile();await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}async persistInstallStateFile(){const{accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:a}=this,A={accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:a},c=await ie(M.a.serialize(A)),u=this.configuration.get("installStatePath");await n.xfs.mkdirpPromise(i.e.dirname(u)),await n.xfs.writeFilePromise(u,c)}async restoreInstallState(){const e=this.configuration.get("installStatePath");if(!n.xfs.existsSync(e))return void await this.applyLightResolution();const t=await n.xfs.readFilePromise(e),r=M.a.deserialize(await oe(t));r.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,r),this.refreshWorkspaceDependencies()):await this.applyLightResolution()}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new H.a}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile(),await this.persistInstallStateFile();for(const e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){const r=new Set([".gitignore"]);if(n.xfs.existsSync(e.cwd)&&Object(q.isFolderInside)(e.cwd,this.cwd)){for(const o of await n.xfs.readdirPromise(e.cwd)){if(r.has(o))continue;const s=i.e.resolve(e.cwd,o);e.markedFiles.has(s)||(e.immutable?t.reportError(O.a.IMMUTABLE_CACHE,`${this.configuration.format(i.e.basename(s),"magenta")} appears to be unused and would marked for deletion, but the cache is immutable`):(t.reportInfo(O.a.UNUSED_CACHE_ENTRY,`${this.configuration.format(i.e.basename(s),"magenta")} appears to be unused - removing`),await n.xfs.unlinkPromise(s)))}e.markedFiles.clear()}}}},function(e,t){e.exports=function(e){return[...e].reduce((e,[t,r])=>(e[t]=r,e),{})}},function(e,t,r){"use strict";function n(e,t,r,i){this.message=e,this.expected=t,this.found=r,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,n)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(n,Error),n.buildMessage=function(e,t){var r={literal:function(e){return'"'+i(e.text)+'"'},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t>",T=Ve(">>",!1),P=">",U=Ve(">",!1),_="<<<",j=Ve("<<<",!1),Y="<",G=Ve("<",!1),J=function(e,t){return{type:"redirection",subtype:e,args:[t]}},H=function(e){return{type:"argument",segments:[].concat(...e)}},z=function(e){return e},q="'",W=Ve("'",!1),V=function(e){return[{type:"text",text:e}]},X='"',Z=Ve('"',!1),$=function(e){return e},ee=function(e){return{type:"shell",shell:e,quoted:!0}},te=function(e){return{type:"variable",...e,quoted:!0}},re=function(e){return{type:"text",text:e}},ne=function(e){return{type:"shell",shell:e,quoted:!1}},ie=function(e){return{type:"variable",...e,quoted:!1}},oe=function(e){return{type:"glob",pattern:e}},se="\\",ae=Ve("\\",!1),Ae={type:"any"},ce=function(e){return e},ue=/^[^']/,le=Xe(["'"],!0,!1),he=function(e){return e.join("")},ge=/^[^$"]/,fe=Xe(["$",'"'],!0,!1),pe="$(",de=Ve("$(",!1),Ce=function(e){return e},Ee="${",Ie=Ve("${",!1),me=":-",ye=Ve(":-",!1),we="}",Be=Ve("}",!1),Qe=function(e,t){return{name:e,defaultValue:t}},be=":-}",De=Ve(":-}",!1),ve=function(e){return{name:e,defaultValue:[]}},Se=function(e){return{name:e}},ke="$",xe=Ve("$",!1),Fe=function(e){return t.isGlobPattern(e)},Me=function(e){return e},Ne=/^[a-zA-Z0-9_]/,Re=Xe([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ke=function(){return e.substring(Je,Ge)},Le=/^[@*?#a-zA-Z0-9_\-]/,Oe=Xe(["@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Te=/^[(){}<>$|&; \t"']/,Pe=Xe(["(",")","{","}","<",">","$","|","&",";"," ","\t",'"',"'"],!1,!1),Ue=/^[<>&; \t"']/,_e=Xe(["<",">","&",";"," ","\t",'"',"'"],!1,!1),je=/^[ \t]/,Ye=Xe([" ","\t"],!1,!1),Ge=0,Je=0,He=[{line:1,column:1}],ze=0,qe=[],We=0;if("startRule"in t){if(!(t.startRule in o))throw new Error("Can't start parsing from rule \""+t.startRule+'".');s=o[t.startRule]}function Ve(e,t){return{type:"literal",text:e,ignoreCase:t}}function Xe(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function Ze(t){var r,n=He[t];if(n)return n;for(r=t-1;!He[r];)r--;for(n={line:(n=He[r]).line,column:n.column};rze&&(ze=Ge,qe=[]),qe.push(e))}function tt(e,t,r){return new n(n.buildMessage(e,t),e,t,r)}function rt(){var e,t;return e=Ge,(t=nt())===i&&(t=null),t!==i&&(Je=e,t=a(t)),e=t}function nt(){var t,r,n;return t=Ge,(r=it())!==i?((n=function(){var t,r,n,o,s,a,A;t=Ge,r=[],n=mt();for(;n!==i;)r.push(n),n=mt();if(r!==i)if(59===e.charCodeAt(Ge)?(n=c,Ge++):(n=i,0===We&&et(u)),n!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();if(o!==i)if((s=nt())!==i){for(a=[],A=mt();A!==i;)a.push(A),A=mt();a!==i?(Je=t,r=l(s),t=r):(Ge=t,t=i)}else Ge=t,t=i;else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i;return t}())===i&&(n=null),n!==i?(Je=t,t=r=A(r,n)):(Ge=t,t=i)):(Ge=t,t=i),t}function it(){var t,r,n;return t=Ge,(r=ot())!==i?((n=function(){var t,r,n,o,s,a,A;t=Ge,r=[],n=mt();for(;n!==i;)r.push(n),n=mt();if(r!==i)if((n=function(){var t;e.substr(Ge,2)===f?(t=f,Ge+=2):(t=i,0===We&&et(p));t===i&&(e.substr(Ge,2)===d?(t=d,Ge+=2):(t=i,0===We&&et(C)));return t}())!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();if(o!==i)if((s=it())!==i){for(a=[],A=mt();A!==i;)a.push(A),A=mt();a!==i?(Je=t,r=g(n,s),t=r):(Ge=t,t=i)}else Ge=t,t=i;else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i;return t}())===i&&(n=null),n!==i?(Je=t,t=r=h(r,n)):(Ge=t,t=i)):(Ge=t,t=i),t}function ot(){var t,r,n;return t=Ge,(r=function(){var t,r,n,o,s,a,A,c,u,l,h;t=Ge,r=[],n=mt();for(;n!==i;)r.push(n),n=mt();if(r!==i)if(40===e.charCodeAt(Ge)?(n=S,Ge++):(n=i,0===We&&et(k)),n!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();if(o!==i)if((s=nt())!==i){for(a=[],A=mt();A!==i;)a.push(A),A=mt();if(a!==i)if(41===e.charCodeAt(Ge)?(A=x,Ge++):(A=i,0===We&&et(F)),A!==i){for(c=[],u=mt();u!==i;)c.push(u),u=mt();if(c!==i){for(u=[],l=At();l!==i;)u.push(l),l=At();if(u!==i){for(l=[],h=mt();h!==i;)l.push(h),h=mt();l!==i?(Je=t,r=M(s,u),t=r):(Ge=t,t=i)}else Ge=t,t=i}else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i;if(t===i){for(t=Ge,r=[],n=mt();n!==i;)r.push(n),n=mt();if(r!==i){for(n=[],o=st();o!==i;)n.push(o),o=st();if(n!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();if(o!==i){if(s=[],(a=at())!==i)for(;a!==i;)s.push(a),a=at();else s=i;if(s!==i){for(a=[],A=mt();A!==i;)a.push(A),A=mt();a!==i?(Je=t,r=N(n,s),t=r):(Ge=t,t=i)}else Ge=t,t=i}else Ge=t,t=i}else Ge=t,t=i}else Ge=t,t=i;if(t===i){for(t=Ge,r=[],n=mt();n!==i;)r.push(n),n=mt();if(r!==i){if(n=[],(o=st())!==i)for(;o!==i;)n.push(o),o=st();else n=i;if(n!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();o!==i?(Je=t,r=R(n),t=r):(Ge=t,t=i)}else Ge=t,t=i}else Ge=t,t=i}}return t}())!==i?((n=function(){var t,r,n,o,s,a,A;t=Ge,r=[],n=mt();for(;n!==i;)r.push(n),n=mt();if(r!==i)if((n=function(){var t;e.substr(Ge,2)===m?(t=m,Ge+=2):(t=i,0===We&&et(y));t===i&&(124===e.charCodeAt(Ge)?(t=w,Ge++):(t=i,0===We&&et(B)));return t}())!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();if(o!==i)if((s=ot())!==i){for(a=[],A=mt();A!==i;)a.push(A),A=mt();a!==i?(Je=t,r=I(n,s),t=r):(Ge=t,t=i)}else Ge=t,t=i;else Ge=t,t=i}else Ge=t,t=i;else Ge=t,t=i;return t}())===i&&(n=null),n!==i?(Je=t,t=r=E(r,n)):(Ge=t,t=i)):(Ge=t,t=i),t}function st(){var t,r,n,o,s,a;if(t=Ge,(r=dt())!==i)if(61===e.charCodeAt(Ge)?(n=Q,Ge++):(n=i,0===We&&et(b)),n!==i)if((o=ut())!==i){for(s=[],a=mt();a!==i;)s.push(a),a=mt();s!==i?(Je=t,t=r=D(r,o)):(Ge=t,t=i)}else Ge=t,t=i;else Ge=t,t=i;else Ge=t,t=i;if(t===i)if(t=Ge,(r=dt())!==i)if(61===e.charCodeAt(Ge)?(n=Q,Ge++):(n=i,0===We&&et(b)),n!==i){for(o=[],s=mt();s!==i;)o.push(s),s=mt();o!==i?(Je=t,t=r=v(r)):(Ge=t,t=i)}else Ge=t,t=i;else Ge=t,t=i;return t}function at(){var e,t,r;for(e=Ge,t=[],r=mt();r!==i;)t.push(r),r=mt();if(t!==i&&(r=At())!==i?(Je=e,e=t=L(r)):(Ge=e,e=i),e===i){for(e=Ge,t=[],r=mt();r!==i;)t.push(r),r=mt();t!==i&&(r=ct())!==i?(Je=e,e=t=L(r)):(Ge=e,e=i)}return e}function At(){var t,r,n,o;for(t=Ge,r=[],n=mt();n!==i;)r.push(n),n=mt();return r!==i?(e.substr(Ge,2)===O?(n=O,Ge+=2):(n=i,0===We&&et(T)),n===i&&(62===e.charCodeAt(Ge)?(n=P,Ge++):(n=i,0===We&&et(U)),n===i&&(e.substr(Ge,3)===_?(n=_,Ge+=3):(n=i,0===We&&et(j)),n===i&&(60===e.charCodeAt(Ge)?(n=Y,Ge++):(n=i,0===We&&et(G))))),n!==i&&(o=ct())!==i?(Je=t,t=r=J(n,o)):(Ge=t,t=i)):(Ge=t,t=i),t}function ct(){var e,t,r;for(e=Ge,t=[],r=mt();r!==i;)t.push(r),r=mt();return t!==i&&(r=ut())!==i?(Je=e,e=t=L(r)):(Ge=e,e=i),e}function ut(){var e,t,r;if(e=Ge,t=[],(r=lt())!==i)for(;r!==i;)t.push(r),r=lt();else t=i;return t!==i&&(Je=e,t=H(t)),e=t}function lt(){var t,r;return t=Ge,(r=function(){var t,r,n,o;t=Ge,39===e.charCodeAt(Ge)?(r=q,Ge++):(r=i,0===We&&et(W));r!==i&&(n=function(){var t,r,n,o,s;t=Ge,r=[],n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae));o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i);n===i&&(ue.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(le)));for(;n!==i;)r.push(n),n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae)),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i),n===i&&(ue.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(le)));r!==i&&(Je=t,r=he(r));return t=r}())!==i?(39===e.charCodeAt(Ge)?(o=q,Ge++):(o=i,0===We&&et(W)),o!==i?(Je=t,r=V(n),t=r):(Ge=t,t=i)):(Ge=t,t=i);return t}())!==i&&(Je=t,r=z(r)),(t=r)===i&&(t=Ge,(r=function(){var t,r,n,o;t=Ge,34===e.charCodeAt(Ge)?(r=X,Ge++):(r=i,0===We&&et(Z));if(r!==i){for(n=[],o=ht();o!==i;)n.push(o),o=ht();n!==i?(34===e.charCodeAt(Ge)?(o=X,Ge++):(o=i,0===We&&et(Z)),o!==i?(Je=t,r=$(n),t=r):(Ge=t,t=i)):(Ge=t,t=i)}else Ge=t,t=i;return t}())!==i&&(Je=t,r=z(r)),(t=r)===i&&(t=Ge,(r=function(){var e,t,r;if(e=Ge,t=[],(r=gt())!==i)for(;r!==i;)t.push(r),r=gt();else t=i;t!==i&&(Je=e,t=$(t));return e=t}())!==i&&(Je=t,r=z(r)),t=r)),t}function ht(){var t,r;return t=Ge,(r=ft())!==i&&(Je=t,r=ee(r)),(t=r)===i&&(t=Ge,(r=pt())!==i&&(Je=t,r=te(r)),(t=r)===i&&(t=Ge,(r=function(){var t,r,n,o,s;t=Ge,r=[],n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae));o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i);n===i&&(ge.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(fe)));if(n!==i)for(;n!==i;)r.push(n),n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae)),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i),n===i&&(ge.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(fe)));else r=i;r!==i&&(Je=t,r=he(r));return t=r}())!==i&&(Je=t,r=re(r)),t=r)),t}function gt(){var t,r;return t=Ge,(r=ft())!==i&&(Je=t,r=ne(r)),(t=r)===i&&(t=Ge,(r=pt())!==i&&(Je=t,r=ie(r)),(t=r)===i&&(t=Ge,(r=function(){var t,r;t=Ge,(r=function(){var t,r,n,o,s;t=Ge,r=[],n=Ge,o=Ge,We++,s=It(),We--,s===i?o=void 0:(Ge=o,o=i);o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i);if(n!==i)for(;n!==i;)r.push(n),n=Ge,o=Ge,We++,s=It(),We--,s===i?o=void 0:(Ge=o,o=i),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i);else r=i;r!==i&&(Je=t,r=he(r));return t=r}())!==i?(Je=Ge,(Fe(r)?void 0:i)!==i?(Je=t,r=Me(r),t=r):(Ge=t,t=i)):(Ge=t,t=i);return t}())!==i&&(Je=t,r=oe(r)),(t=r)===i&&(t=Ge,(r=function(){var t,r,n,o,s;t=Ge,r=[],n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae));o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i);n===i&&(n=Ge,o=Ge,We++,s=Et(),We--,s===i?o=void 0:(Ge=o,o=i),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i));if(n!==i)for(;n!==i;)r.push(n),n=Ge,92===e.charCodeAt(Ge)?(o=se,Ge++):(o=i,0===We&&et(ae)),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i),n===i&&(n=Ge,o=Ge,We++,s=Et(),We--,s===i?o=void 0:(Ge=o,o=i),o!==i?(e.length>Ge?(s=e.charAt(Ge),Ge++):(s=i,0===We&&et(Ae)),s!==i?(Je=n,o=ce(s),n=o):(Ge=n,n=i)):(Ge=n,n=i));else r=i;r!==i&&(Je=t,r=he(r));return t=r}())!==i&&(Je=t,r=re(r)),t=r))),t}function ft(){var t,r,n,o;return t=Ge,e.substr(Ge,2)===pe?(r=pe,Ge+=2):(r=i,0===We&&et(de)),r!==i&&(n=nt())!==i?(41===e.charCodeAt(Ge)?(o=x,Ge++):(o=i,0===We&&et(F)),o!==i?(Je=t,t=r=Ce(n)):(Ge=t,t=i)):(Ge=t,t=i),t}function pt(){var t,r,n,o,s,a;return t=Ge,e.substr(Ge,2)===Ee?(r=Ee,Ge+=2):(r=i,0===We&&et(Ie)),r!==i&&(n=Ct())!==i?(e.substr(Ge,2)===me?(o=me,Ge+=2):(o=i,0===We&&et(ye)),o!==i&&(s=function(){var e,t,r,n,o;for(e=Ge,t=[],r=mt();r!==i;)t.push(r),r=mt();if(t!==i){if(r=[],(n=ct())!==i)for(;n!==i;)r.push(n),n=ct();else r=i;if(r!==i){for(n=[],o=mt();o!==i;)n.push(o),o=mt();n!==i?(Je=e,e=t=K(r)):(Ge=e,e=i)}else Ge=e,e=i}else Ge=e,e=i;return e}())!==i?(125===e.charCodeAt(Ge)?(a=we,Ge++):(a=i,0===We&&et(Be)),a!==i?(Je=t,t=r=Qe(n,s)):(Ge=t,t=i)):(Ge=t,t=i)):(Ge=t,t=i),t===i&&(t=Ge,e.substr(Ge,2)===Ee?(r=Ee,Ge+=2):(r=i,0===We&&et(Ie)),r!==i&&(n=Ct())!==i?(e.substr(Ge,3)===be?(o=be,Ge+=3):(o=i,0===We&&et(De)),o!==i?(Je=t,t=r=ve(n)):(Ge=t,t=i)):(Ge=t,t=i),t===i&&(t=Ge,e.substr(Ge,2)===Ee?(r=Ee,Ge+=2):(r=i,0===We&&et(Ie)),r!==i&&(n=Ct())!==i?(125===e.charCodeAt(Ge)?(o=we,Ge++):(o=i,0===We&&et(Be)),o!==i?(Je=t,t=r=Se(n)):(Ge=t,t=i)):(Ge=t,t=i),t===i&&(t=Ge,36===e.charCodeAt(Ge)?(r=ke,Ge++):(r=i,0===We&&et(xe)),r!==i&&(n=Ct())!==i?(Je=t,t=r=Se(n)):(Ge=t,t=i)))),t}function dt(){var t,r,n;if(t=Ge,r=[],Ne.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(Re)),n!==i)for(;n!==i;)r.push(n),Ne.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(Re));else r=i;return r!==i&&(Je=t,r=Ke()),t=r}function Ct(){var t,r,n;if(t=Ge,r=[],Le.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(Oe)),n!==i)for(;n!==i;)r.push(n),Le.test(e.charAt(Ge))?(n=e.charAt(Ge),Ge++):(n=i,0===We&&et(Oe));else r=i;return r!==i&&(Je=t,r=Ke()),t=r}function Et(){var t;return Te.test(e.charAt(Ge))?(t=e.charAt(Ge),Ge++):(t=i,0===We&&et(Pe)),t}function It(){var t;return Ue.test(e.charAt(Ge))?(t=e.charAt(Ge),Ge++):(t=i,0===We&&et(_e)),t}function mt(){var t,r;if(t=[],je.test(e.charAt(Ge))?(r=e.charAt(Ge),Ge++):(r=i,0===We&&et(Ye)),r!==i)for(;r!==i;)t.push(r),je.test(e.charAt(Ge))?(r=e.charAt(Ge),Ge++):(r=i,0===We&&et(Ye));else t=i;return t}if((r=s())!==i&&Ge===e.length)return r;throw r!==i&&Ge0){for(t=1,n=1;tB&&(B=m,Q=[]),Q.push(e))}function F(e,t,r){return new n(n.buildMessage(e,t),e,t,r)}function M(){var t,r,n,o;return t=m,(r=N())!==i?(47===e.charCodeAt(m)?(n=a,m++):(n=i,0===b&&x(A)),n!==i&&(o=N())!==i?(y=t,t=r=c(r,o)):(m=t,t=i)):(m=t,t=i),t===i&&(t=m,(r=N())!==i&&(y=t,r=u(r)),t=r),t}function N(){var t,r,n,o;return t=m,(r=R())!==i?(64===e.charCodeAt(m)?(n=l,m++):(n=i,0===b&&x(h)),n!==i&&(o=function(){var t,r,n;t=m,r=[],E.test(e.charAt(m))?(n=e.charAt(m),m++):(n=i,0===b&&x(I));if(n!==i)for(;n!==i;)r.push(n),E.test(e.charAt(m))?(n=e.charAt(m),m++):(n=i,0===b&&x(I));else r=i;r!==i&&(y=t,r=p());return t=r}())!==i?(y=t,t=r=g(r,o)):(m=t,t=i)):(m=t,t=i),t===i&&(t=m,(r=R())!==i&&(y=t,r=f(r)),t=r),t}function R(){var t,r,n;return t=m,64===e.charCodeAt(m)?(r=l,m++):(r=i,0===b&&x(h)),r!==i&&K()!==i?(47===e.charCodeAt(m)?(n=a,m++):(n=i,0===b&&x(A)),n!==i&&K()!==i?(y=t,t=r=p()):(m=t,t=i)):(m=t,t=i),t===i&&(t=m,(r=K())!==i&&(y=t,r=p()),t=r),t}function K(){var t,r,n;if(t=m,r=[],d.test(e.charAt(m))?(n=e.charAt(m),m++):(n=i,0===b&&x(C)),n!==i)for(;n!==i;)r.push(n),d.test(e.charAt(m))?(n=e.charAt(m),m++):(n=i,0===b&&x(C));else r=i;return r!==i&&(y=t,r=p()),t=r}if((r=s())!==i&&m===e.length)return r;throw r!==i&&m0){for(t=1,n=1;t({[e]:r})))},B=function(e){return e},Q=function(e){return e},b=tt("correct indentation"),D=" ",v=$e(" ",!1),S=function(e){return e.length===bt*Qt},k=function(e){return e.length===(bt+1)*Qt},x=function(){return bt++,!0},F=function(){return bt--,!0},M=function(){return Ze()},N=tt("pseudostring"),R=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,K=et(["\r","\n","\t"," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),L=/^[^\r\n\t ,\][{}:#"']/,O=et(["\r","\n","\t"," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),T=function(){return Ze().replace(/^ *| *$/g,"")},P="--",U=$e("--",!1),_=/^[a-zA-Z\/0-9]/,j=et([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Y=/^[^\r\n\t :,]/,G=et(["\r","\n","\t"," ",":",","],!0,!1),J="null",H=$e("null",!1),z=function(){return null},q="true",W=$e("true",!1),V=function(){return!0},X="false",Z=$e("false",!1),$=function(){return!1},ee=tt("string"),te='"',re=$e('"',!1),ne=function(){return""},ie=function(e){return e},oe=function(e){return e.join("")},se=/^[^"\\\0-\x1F\x7F]/,ae=et(['"',"\\",["\0",""],""],!0,!1),Ae='\\"',ce=$e('\\"',!1),ue=function(){return'"'},le="\\\\",he=$e("\\\\",!1),ge=function(){return"\\"},fe="\\/",pe=$e("\\/",!1),de=function(){return"/"},Ce="\\b",Ee=$e("\\b",!1),Ie=function(){return"\b"},me="\\f",ye=$e("\\f",!1),we=function(){return"\f"},Be="\\n",Qe=$e("\\n",!1),be=function(){return"\n"},De="\\r",ve=$e("\\r",!1),Se=function(){return"\r"},ke="\\t",xe=$e("\\t",!1),Fe=function(){return"\t"},Me="\\u",Ne=$e("\\u",!1),Re=function(e,t,r,n){return String.fromCharCode(parseInt(`0x${e}${t}${r}${n}`))},Ke=/^[0-9a-fA-F]/,Le=et([["0","9"],["a","f"],["A","F"]],!1,!1),Oe=tt("blank space"),Te=/^[ \t]/,Pe=et([" ","\t"],!1,!1),Ue=(tt("white space"),et([" ","\t","\n","\r"],!1,!1),"\r\n"),_e=$e("\r\n",!1),je="\n",Ye=$e("\n",!1),Ge="\r",Je=$e("\r",!1),He=0,ze=0,qe=[{line:1,column:1}],We=0,Ve=[],Xe=0;if("startRule"in t){if(!(t.startRule in o))throw new Error(`Can't start parsing from rule "${t.startRule}".`);s=o[t.startRule]}function Ze(){return e.substring(ze,He)}function $e(e,t){return{type:"literal",text:e,ignoreCase:t}}function et(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function tt(e){return{type:"other",description:e}}function rt(t){var r,n=qe[t];if(n)return n;for(r=t-1;!qe[r];)r--;for(n={line:(n=qe[r]).line,column:n.column};rWe&&(We=He,Ve=[]),Ve.push(e))}function ot(e,t,r){return new n(n.buildMessage(e,t),e,t,r)}function st(){return At()}function at(){var t,r,n;return t=He,lt()!==i?(45===e.charCodeAt(He)?(r=A,He++):(r=i,0===Xe&&it(c)),r!==i&&yt()!==i&&(n=ut())!==i?(ze=t,t=u(n)):(He=t,t=i)):(He=t,t=i),t}function At(){var e,t,r;for(e=He,t=[],r=ct();r!==i;)t.push(r),r=ct();return t!==i&&(ze=e,t=l(t)),e=t}function ct(){var t,r,n,o,s,a,A,c,u;if(t=He,(r=yt())===i&&(r=null),r!==i){if(n=He,35===e.charCodeAt(He)?(o=h,He++):(o=i,0===Xe&&it(g)),o!==i){if(s=[],a=He,A=He,Xe++,c=Bt(),Xe--,c===i?A=void 0:(He=A,A=i),A!==i?(e.length>He?(c=e.charAt(He),He++):(c=i,0===Xe&&it(f)),c!==i?a=A=[A,c]:(He=a,a=i)):(He=a,a=i),a!==i)for(;a!==i;)s.push(a),a=He,A=He,Xe++,c=Bt(),Xe--,c===i?A=void 0:(He=A,A=i),A!==i?(e.length>He?(c=e.charAt(He),He++):(c=i,0===Xe&&it(f)),c!==i?a=A=[A,c]:(He=a,a=i)):(He=a,a=i);else s=i;s!==i?n=o=[o,s]:(He=n,n=i)}else He=n,n=i;if(n===i&&(n=null),n!==i){if(o=[],(s=wt())!==i)for(;s!==i;)o.push(s),s=wt();else o=i;o!==i?(ze=t,t=r=p()):(He=t,t=i)}else He=t,t=i}else He=t,t=i;if(t===i&&(t=He,(r=lt())!==i&&(n=function(){var e;(e=Et())===i&&(e=pt());return e}())!==i?((o=yt())===i&&(o=null),o!==i?(58===e.charCodeAt(He)?(s=d,He++):(s=i,0===Xe&&it(C)),s!==i?((a=yt())===i&&(a=null),a!==i&&(A=ut())!==i?(ze=t,t=r=E(n,A)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i),t===i&&(t=He,(r=lt())!==i&&(n=ft())!==i?((o=yt())===i&&(o=null),o!==i?(58===e.charCodeAt(He)?(s=d,He++):(s=i,0===Xe&&it(C)),s!==i?((a=yt())===i&&(a=null),a!==i&&(A=ut())!==i?(ze=t,t=r=E(n,A)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i),t===i))){if(t=He,(r=lt())!==i)if((n=ft())!==i)if((o=yt())!==i)if((s=function(){var e;(e=Ct())===i&&(e=Et())===i&&(e=dt());return e}())!==i){if(a=[],(A=wt())!==i)for(;A!==i;)a.push(A),A=wt();else a=i;a!==i?(ze=t,t=r=E(n,s)):(He=t,t=i)}else He=t,t=i;else He=t,t=i;else He=t,t=i;else He=t,t=i;if(t===i)if(t=He,(r=lt())!==i)if((n=ft())!==i){if(o=[],s=He,(a=yt())===i&&(a=null),a!==i?(44===e.charCodeAt(He)?(A=I,He++):(A=i,0===Xe&&it(m)),A!==i?((c=yt())===i&&(c=null),c!==i&&(u=ft())!==i?(ze=s,s=a=y(n,u)):(He=s,s=i)):(He=s,s=i)):(He=s,s=i),s!==i)for(;s!==i;)o.push(s),s=He,(a=yt())===i&&(a=null),a!==i?(44===e.charCodeAt(He)?(A=I,He++):(A=i,0===Xe&&it(m)),A!==i?((c=yt())===i&&(c=null),c!==i&&(u=ft())!==i?(ze=s,s=a=y(n,u)):(He=s,s=i)):(He=s,s=i)):(He=s,s=i);else o=i;o!==i?((s=yt())===i&&(s=null),s!==i?(58===e.charCodeAt(He)?(a=d,He++):(a=i,0===Xe&&it(C)),a!==i?((A=yt())===i&&(A=null),A!==i&&(c=ut())!==i?(ze=t,t=r=w(n,o,c)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i)):(He=t,t=i)}else He=t,t=i;else He=t,t=i}return t}function ut(){var t,r,n,o,s,u,l;if(t=He,r=He,Xe++,n=He,(o=Bt())!==i&&(s=function(){var t,r,n;t=He,r=[],32===e.charCodeAt(He)?(n=D,He++):(n=i,0===Xe&&it(v));for(;n!==i;)r.push(n),32===e.charCodeAt(He)?(n=D,He++):(n=i,0===Xe&&it(v));r!==i?(ze=He,(n=(n=k(r))?void 0:i)!==i?t=r=[r,n]:(He=t,t=i)):(He=t,t=i);return t}())!==i?(45===e.charCodeAt(He)?(u=A,He++):(u=i,0===Xe&&it(c)),u!==i&&(l=yt())!==i?n=o=[o,s,u,l]:(He=n,n=i)):(He=n,n=i),Xe--,n!==i?(He=r,r=void 0):r=i,r!==i&&(n=wt())!==i&&(o=ht())!==i&&(s=function(){var e,t,r;for(e=He,t=[],r=at();r!==i;)t.push(r),r=at();return t!==i&&(ze=e,t=a(t)),e=t}())!==i&&(u=gt())!==i?(ze=t,t=r=B(s)):(He=t,t=i),t===i&&(t=He,(r=Bt())!==i&&(n=ht())!==i&&(o=At())!==i&&(s=gt())!==i?(ze=t,t=r=B(o)):(He=t,t=i),t===i))if(t=He,(r=function(){var t;(t=Ct())===i&&(t=function(){var t,r;t=He,e.substr(He,4)===q?(r=q,He+=4):(r=i,0===Xe&&it(W));r!==i&&(ze=t,r=V());(t=r)===i&&(t=He,e.substr(He,5)===X?(r=X,He+=5):(r=i,0===Xe&&it(Z)),r!==i&&(ze=t,r=$()),t=r);return t}())===i&&(t=Et())===i&&(t=pt());return t}())!==i){if(n=[],(o=wt())!==i)for(;o!==i;)n.push(o),o=wt();else n=i;n!==i?(ze=t,t=r=Q(r)):(He=t,t=i)}else He=t,t=i;return t}function lt(){var t,r,n;for(Xe++,t=He,r=[],32===e.charCodeAt(He)?(n=D,He++):(n=i,0===Xe&&it(v));n!==i;)r.push(n),32===e.charCodeAt(He)?(n=D,He++):(n=i,0===Xe&&it(v));return r!==i?(ze=He,(n=(n=S(r))?void 0:i)!==i?t=r=[r,n]:(He=t,t=i)):(He=t,t=i),Xe--,t===i&&(r=i,0===Xe&&it(b)),t}function ht(){return ze=He,x()?void 0:i}function gt(){return ze=He,F()?void 0:i}function ft(){var e,t,r;if((e=Et())===i){if(e=He,t=[],(r=dt())!==i)for(;r!==i;)t.push(r),r=dt();else t=i;t!==i&&(ze=e,t=M()),e=t}return e}function pt(){var t,r,n,o,s,a;if(Xe++,t=He,R.test(e.charAt(He))?(r=e.charAt(He),He++):(r=i,0===Xe&&it(K)),r!==i){for(n=[],o=He,(s=yt())===i&&(s=null),s!==i?(L.test(e.charAt(He))?(a=e.charAt(He),He++):(a=i,0===Xe&&it(O)),a!==i?o=s=[s,a]:(He=o,o=i)):(He=o,o=i);o!==i;)n.push(o),o=He,(s=yt())===i&&(s=null),s!==i?(L.test(e.charAt(He))?(a=e.charAt(He),He++):(a=i,0===Xe&&it(O)),a!==i?o=s=[s,a]:(He=o,o=i)):(He=o,o=i);n!==i?(ze=t,t=r=T()):(He=t,t=i)}else He=t,t=i;return Xe--,t===i&&(r=i,0===Xe&&it(N)),t}function dt(){var t,r,n,o,s;if(t=He,e.substr(He,2)===P?(r=P,He+=2):(r=i,0===Xe&&it(U)),r===i&&(r=null),r!==i)if(_.test(e.charAt(He))?(n=e.charAt(He),He++):(n=i,0===Xe&&it(j)),n!==i){for(o=[],Y.test(e.charAt(He))?(s=e.charAt(He),He++):(s=i,0===Xe&&it(G));s!==i;)o.push(s),Y.test(e.charAt(He))?(s=e.charAt(He),He++):(s=i,0===Xe&&it(G));o!==i?(ze=t,t=r=T()):(He=t,t=i)}else He=t,t=i;else He=t,t=i;return t}function Ct(){var t,r;return t=He,e.substr(He,4)===J?(r=J,He+=4):(r=i,0===Xe&&it(H)),r!==i&&(ze=t,r=z()),t=r}function Et(){var t,r,n,o;return Xe++,t=He,34===e.charCodeAt(He)?(r=te,He++):(r=i,0===Xe&&it(re)),r!==i?(34===e.charCodeAt(He)?(n=te,He++):(n=i,0===Xe&&it(re)),n!==i?(ze=t,t=r=ne()):(He=t,t=i)):(He=t,t=i),t===i&&(t=He,34===e.charCodeAt(He)?(r=te,He++):(r=i,0===Xe&&it(re)),r!==i&&(n=function(){var e,t,r;if(e=He,t=[],(r=It())!==i)for(;r!==i;)t.push(r),r=It();else t=i;t!==i&&(ze=e,t=oe(t));return e=t}())!==i?(34===e.charCodeAt(He)?(o=te,He++):(o=i,0===Xe&&it(re)),o!==i?(ze=t,t=r=ie(n)):(He=t,t=i)):(He=t,t=i)),Xe--,t===i&&(r=i,0===Xe&&it(ee)),t}function It(){var t,r,n,o,s,a;return se.test(e.charAt(He))?(t=e.charAt(He),He++):(t=i,0===Xe&&it(ae)),t===i&&(t=He,e.substr(He,2)===Ae?(r=Ae,He+=2):(r=i,0===Xe&&it(ce)),r!==i&&(ze=t,r=ue()),(t=r)===i&&(t=He,e.substr(He,2)===le?(r=le,He+=2):(r=i,0===Xe&&it(he)),r!==i&&(ze=t,r=ge()),(t=r)===i&&(t=He,e.substr(He,2)===fe?(r=fe,He+=2):(r=i,0===Xe&&it(pe)),r!==i&&(ze=t,r=de()),(t=r)===i&&(t=He,e.substr(He,2)===Ce?(r=Ce,He+=2):(r=i,0===Xe&&it(Ee)),r!==i&&(ze=t,r=Ie()),(t=r)===i&&(t=He,e.substr(He,2)===me?(r=me,He+=2):(r=i,0===Xe&&it(ye)),r!==i&&(ze=t,r=we()),(t=r)===i&&(t=He,e.substr(He,2)===Be?(r=Be,He+=2):(r=i,0===Xe&&it(Qe)),r!==i&&(ze=t,r=be()),(t=r)===i&&(t=He,e.substr(He,2)===De?(r=De,He+=2):(r=i,0===Xe&&it(ve)),r!==i&&(ze=t,r=Se()),(t=r)===i&&(t=He,e.substr(He,2)===ke?(r=ke,He+=2):(r=i,0===Xe&&it(xe)),r!==i&&(ze=t,r=Fe()),(t=r)===i&&(t=He,e.substr(He,2)===Me?(r=Me,He+=2):(r=i,0===Xe&&it(Ne)),r!==i&&(n=mt())!==i&&(o=mt())!==i&&(s=mt())!==i&&(a=mt())!==i?(ze=t,t=r=Re(n,o,s,a)):(He=t,t=i)))))))))),t}function mt(){var t;return Ke.test(e.charAt(He))?(t=e.charAt(He),He++):(t=i,0===Xe&&it(Le)),t}function yt(){var t,r;if(Xe++,t=[],Te.test(e.charAt(He))?(r=e.charAt(He),He++):(r=i,0===Xe&&it(Pe)),r!==i)for(;r!==i;)t.push(r),Te.test(e.charAt(He))?(r=e.charAt(He),He++):(r=i,0===Xe&&it(Pe));else t=i;return Xe--,t===i&&(r=i,0===Xe&&it(Oe)),t}function wt(){var e,t,r,n,o,s;if(e=He,(t=Bt())!==i){for(r=[],n=He,(o=yt())===i&&(o=null),o!==i&&(s=Bt())!==i?n=o=[o,s]:(He=n,n=i);n!==i;)r.push(n),n=He,(o=yt())===i&&(o=null),o!==i&&(s=Bt())!==i?n=o=[o,s]:(He=n,n=i);r!==i?e=t=[t,r]:(He=e,e=i)}else He=e,e=i;return e}function Bt(){var t;return e.substr(He,2)===Ue?(t=Ue,He+=2):(t=i,0===Xe&&it(_e)),t===i&&(10===e.charCodeAt(He)?(t=je,He++):(t=i,0===Xe&&it(Ye)),t===i&&(13===e.charCodeAt(He)?(t=Ge,He++):(t=i,0===Xe&&it(Je)))),t}const Qt=2;let bt=0;if((r=s())!==i&&He===e.length)return r;throw r!==i&&He{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);return 0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length?"":1===e.length?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=(e=>{let t=!1,r=!1,n=!1;for(let i=0;it.pascalCase?e.charAt(0).toUpperCase()+e.slice(1):e)(e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,t)=>t.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase())))};e.exports=n,e.exports.default=n},function(e,t,r){"use strict";const n=r(9),i=r(495),o=r(496),s=r(305),a=r(308),A=r(539),c=r(541),{FilterStream:u,UniqueStream:l}=r(544),h=()=>!1,g=e=>"!"===e[0],f=(e,t)=>{(e=>{if(!e.every(e=>"string"==typeof e))throw new TypeError("Patterns must be a string or an array of strings")})(e=i([].concat(e))),((e={})=>{if(!e.cwd)return;let t;try{t=n.statSync(e.cwd)}catch(e){return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")})(t);const r=[];t={ignore:[],expandDirectories:!0,...t};for(const[n,i]of e.entries()){if(g(i))continue;const o=e.slice(n).filter(g).map(e=>e.slice(1)),s={...t,ignore:t.ignore.concat(o)};r.push({pattern:i,options:s})}return r},p=(e,t)=>e.options.expandDirectories?((e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:"object"==typeof e.options.expandDirectories&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)})(e,t):[e.pattern],d=e=>e&&e.gitignore?c.sync({cwd:e.cwd,ignore:e.ignore}):h,C=e=>t=>{const{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=A.sync(r.ignore)),{pattern:t,options:r}};e.exports=async(e,t)=>{const r=f(e,t),[o,s]=await Promise.all([(async()=>t&&t.gitignore?c({cwd:t.cwd,ignore:t.ignore}):h)(),(async()=>{const e=await Promise.all(r.map(async e=>{const t=await p(e,A);return Promise.all(t.map(C(e)))}));return i(...e)})()]),u=await Promise.all(s.map(e=>a(e.pattern,e.options)));return i(...u).filter(e=>!o((e=>e.stats instanceof n.Stats?e.path:e)(e)))},e.exports.sync=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,A.sync).map(C(t));return e.concat(r)},[]),n=d(t);return r.reduce((e,t)=>i(e,a.sync(t.pattern,t.options)),[]).filter(e=>!n(e))},e.exports.stream=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,A.sync).map(C(t));return e.concat(r)},[]),n=d(t),i=new u(e=>!n(e)),s=new l;return o(r.map(e=>a.stream(e.pattern,e.options))).pipe(i).pipe(s)},e.exports.generateGlobTasks=f,e.exports.hasMagic=(e,t)=>[].concat(e).some(e=>s.hasMagic(e,t)),e.exports.gitignore=c},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(68),o=r(321),s={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,rejectUnauthorized:!0,pagination:{transform:e=>"json"===e.request.options.responseType?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;const t=e.headers.link.split(",");let r;for(const e of t){const t=e.split(";");if(t[1].includes("next")){r=(r=t[0].trimStart().trim()).slice(1,-1);break}}if(r){return{url:new i.URL(r)}}return!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,requestLimit:1e4,stackAllItems:!0}},handlers:[o.defaultHandler],mutableDefaults:!1},a=o.default(s);t.default=a,e.exports=a,e.exports.default=a,n(r(321)),n(r(322))},function(e,t,r){"use strict";t.c=t.create=r(619),t.r=t.replace=r(333),t.t=t.list=r(258),t.u=t.update=r(624),t.x=t.extract=r(625),t.Pack=r(253),t.Unpack=r(334),t.Parse=r(178),t.ReadEntry=r(176),t.WriteEntry=r(331),t.Header=r(145),t.Pax=r(256),t.types=r(177)},function(e,t,r){var n=r(186),i=1,o=4;e.exports=function(e){return n(e,i|o)}},function(e,t){e.exports=require("vm")},function(e,t,r){e.exports=function(){function e(t,r,n,i,o,s,a){var A,c,u="",l=0,h=i.slice(0);if(h.push([r,n])&&i.length>0&&(i.forEach((function(e,t){t>0&&(u+=(e[1]?" ":"│")+" "),c||e[0]!==r||(c=!0)})),u+=function(e,t){var r=t?"└":"├";return r+=e?"─ ":"──┐"}(t,n)+t,o&&("object"!=typeof r||r instanceof Date)&&(u+=": "+r),c&&(u+=" (circular ref.)"),a(u)),!c&&"object"==typeof r){var g=function(e,t){var r=[];for(var n in e)e.hasOwnProperty(n)&&(t&&"function"==typeof e[n]||r.push(n));return r}(r,s);g.forEach((function(t){A=++l===g.length,e(t,r[t],A,h,o,s,a)}))}}var t={asLines:function(t,r,n,i){e(".",t,!1,[],r,"function"!=typeof n&&n,i||n)},asTree:function(t,r,n){var i="";return e(".",t,!1,[],r,n,(function(e){i+=e+"\n"})),i}};return t}()},function(e,t,r){e.exports=r(61).brotliDecompressSync(Buffer.from("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","base64")).toString()},function(e,t,r){"use strict";l.ifExists=function(e,t,r){return l(e,t,r).catch(()=>{})};const n=r(14),i=r(850),o=r(12),s=r(852),a=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,A={createPwshFile:!0,createCmdFile:s(),fs:r(9)},c=new Map([[".js","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function u(e){const t={...A,...e},r=t.fs;return t.fs_={chmod:r.chmod?n.promisify(r.chmod):async()=>{},stat:n.promisify(r.stat),unlink:n.promisify(r.unlink),readFile:n.promisify(r.readFile),writeFile:n.promisify(r.writeFile)},t}async function l(e,t,r){const n=u(r);await n.fs_.stat(e),await async function(e,t,r){const n=await async function(e,t){const r=(await t.fs_.readFile(e,"utf8")).trim().split(/\r*\n/)[0].match(a);if(!r){const t=o.extname(e).toLowerCase();return{program:c.get(t)||null,additionalArgs:""}}return{program:r[1],additionalArgs:r[2]}}(e,r);return await function(e,t){return i(o.dirname(e),{fs:t.fs})}(t,r),function(e,t,r,n){const i=u(n),o=[{generator:g,extension:""}];i.createCmdFile&&o.push({generator:h,extension:".cmd"});i.createPwshFile&&o.push({generator:f,extension:".ps1"});return Promise.all(o.map(n=>(async function(e,t,r,n,i){const o=i.preserveSymlinks?"--preserve-symlinks":"",s=[r.additionalArgs,o].filter(e=>e).join(" ");return i=Object.assign({},i,{prog:r.program,args:s}),await function(e,t){return function(e,t){return t.fs_.unlink(e).catch(()=>{})}(e,t)}(t,i),await i.fs_.writeFile(t,n(e,t,i),"utf8"),function(e,t){return function(e,t){return t.fs_.chmod(e,493)}(e,t)}(t,i)})(e,t+n.extension,r,n.generator,i)))}(e,t,n,r)}(e,t,n)}function h(e,t,r){let n=o.relative(o.dirname(t),e).split("/").join("\\");const i=o.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`;let s,a=r.prog,A=r.args||"";const c=p(r.nodePath).win32;a?(s=`"%~dp0\\${a}.exe"`,n=i):(a=i,A="",n="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",l=c?`@SET NODE_PATH=${c}\r\n`:"";return l+=s?`@IF EXIST ${s} (\r\n`+` ${s} ${A} ${n} ${u}%*\r\n`+") ELSE (\r\n @SETLOCAL\r\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n"+` ${a} ${A} ${n} ${u}%*\r\n`+")":`@${a} ${A} ${n} ${u}%*\r\n`}function g(e,t,r){let n,i=o.relative(o.dirname(t),e),s=r.prog&&r.prog.split("\\").join("/");i=i.split("\\").join("/");const a=o.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`;let A=r.args||"";const c=p(r.nodePath).posix;s?(n=`"$basedir/${r.prog}"`,i=a):(s=a,A="",i="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",l="#!/bin/sh\n";l+='basedir=$(dirname "$(echo "$0" | sed -e \'s,\\\\,/,g\')")\n\ncase `uname` in\n *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\nesac\n\n';const h=r.nodePath?`export NODE_PATH="${c}"\n`:"";return l+=n?h+`if [ -x ${n} ]; then\n`+` exec ${n} ${A} ${i} ${u}"$@"\n`+"else \n"+` exec ${s} ${A} ${i} ${u}"$@"\n`+"fi\n":`${h}${s} ${A} ${i} ${u}"$@"\n`+"exit $?\n"}function f(e,t,r){let n=o.relative(o.dirname(t),e);const i=r.prog&&r.prog.split("\\").join("/");let s,a=i&&`"${i}$exe"`;n=n.split("\\").join("/");const A=o.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`;let c=r.args||"",u=p(r.nodePath);const l=u.win32,h=u.posix;a?(s=`"$basedir/${r.prog}$exe"`,n=A):(a=A,c="",n="");let g=r.progArgs?`${r.progArgs.join(" ")} `:"",f='#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=""\n'+(r.nodePath?"$env_node_path=$env:NODE_PATH\n"+`$env:NODE_PATH="${l}"\n`:"")+'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n # Fix case when both the Windows and Linux builds of Node\n # are installed in the same directory\n $exe=".exe"\n}';return r.nodePath&&(f=f+" else {\n"+` $env:NODE_PATH="${h}"\n`+"}"),f+="\n",f=s?f+"$ret=0\n"+`if (Test-Path ${s}) {\n`+" # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n"+` $input | & ${s} ${c} ${n} ${g}$args\n`+" } else {\n"+` & ${s} ${c} ${n} ${g}$args\n`+" }\n $ret=$LASTEXITCODE\n} else {\n # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n"+` $input | & ${a} ${c} ${n} ${g}$args\n`+" } else {\n"+` & ${a} ${c} ${n} ${g}$args\n`+" }\n $ret=$LASTEXITCODE\n}\n"+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $ret\n":f+"# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n"+` $input | & ${a} ${c} ${n} ${g}$args\n`+"} else {\n"+` & ${a} ${c} ${n} ${g}$args\n`+"}\n"+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $LASTEXITCODE\n"}function p(e){if(!e)return{win32:"",posix:""};let t="string"==typeof e?e.split(o.delimiter):Array.from(e),r={};for(let e=0;e`/mnt/${t.toLowerCase()}`):t[e];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${i}`:i,r[e]={win32:n,posix:i}}return r}e.exports=l},function(e,t,r){t.extract=r(853),t.pack=r(861)},function(e,t,r){"use strict";const n=r(51),i=r(866),o=r(13).Transform,s=["sha256","sha384","sha512"],a=/^[a-z0-9+/]+(?:=?=?)$/i,A=/^([^-]+)-([^?]+)([?\S*]*)$/,c=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,u=/^[\x21-\x7E]+$/,l=i({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>m},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}});class h{get isHash(){return!0}constructor(e,t){const r=!!(t=l(t)).strict;this.source=e.trim();const n=this.source.match(r?c:A);if(!n)return;if(r&&!s.some(e=>e===n[1]))return;this.algorithm=n[1],this.digest=n[2];const i=n[3];this.options=i?i.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if((e=l(e)).strict&&!(s.some(e=>e===this.algorithm)&&this.digest.match(a)&&(this.options||[]).every(e=>e.match(u))))return"";const t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}}class g{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){let t=(e=l(e)).sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(r=>this[r].map(t=>h.prototype.toString.call(t,e)).filter(e=>e.length).join(t)).filter(e=>e.length).join(t)}concat(e,t){t=l(t);const r="string"==typeof e?e:d(e,t);return f(`${this.toString(t)} ${r}`,t)}hexDigest(){return f(this,{single:!0}).hexDigest()}match(e,t){const r=f(e,t=l(t)),n=r.pickAlgorithm(t);return this[n]&&r[n]&&this[n].find(e=>r[n].find(t=>e.digest===t.digest))||!1}pickAlgorithm(e){const t=(e=l(e)).pickAlgorithm,r=Object.keys(this);if(!r.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return r.reduce((e,r)=>t(e,r)||e)}}function f(e,t){if(t=l(t),"string"==typeof e)return p(e,t);if(e.algorithm&&e.digest){const r=new g;return r[e.algorithm]=[e],p(d(r,t),t)}return p(d(e,t),t)}function p(e,t){return t.single?new h(e,t):e.trim().split(/\s+/).reduce((e,r)=>{const n=new h(r,t);if(n.algorithm&&n.digest){const t=n.algorithm;e[t]||(e[t]=[]),e[t].push(n)}return e},new g)}function d(e,t){return t=l(t),e.algorithm&&e.digest?h.prototype.toString.call(e,t):"string"==typeof e?d(f(e,t),t):g.prototype.toString.call(e,t)}function C(e){const t=(e=l(e)).integrity&&f(e.integrity,e),r=t&&Object.keys(t).length,i=r&&t.pickAlgorithm(e),s=r&&t[i],a=Array.from(new Set(e.algorithms.concat(i?[i]:[]))),A=a.map(n.createHash);let c=0;const u=new o({transform(e,t,r){c+=e.length,A.forEach(r=>r.update(e,t)),r(null,e,t)}}).on("end",()=>{const n=e.options&&e.options.length?`?${e.options.join("?")}`:"",o=f(A.map((e,t)=>`${a[t]}-${e.digest("base64")}${n}`).join(" "),e),l=r&&o.match(t,e);if("number"==typeof e.size&&c!==e.size){const r=new Error(`stream size mismatch when checking ${t}.\n Wanted: ${e.size}\n Found: ${c}`);r.code="EBADSIZE",r.found=c,r.expected=e.size,r.sri=t,u.emit("error",r)}else if(e.integrity&&!l){const e=new Error(`${t} integrity checksum failed when using ${i}: wanted ${s} but got ${o}. (${c} bytes)`);e.code="EINTEGRITY",e.found=o,e.expected=s,e.algorithm=i,e.sri=t,u.emit("error",e)}else u.emit("size",c),u.emit("integrity",o),l&&u.emit("verified",l)});return u}e.exports.parse=f,e.exports.stringify=d,e.exports.fromHex=function(e,t,r){const n=(r=l(r)).options&&r.options.length?`?${r.options.join("?")}`:"";return f(`${t}-${Buffer.from(e,"hex").toString("base64")}${n}`,r)},e.exports.fromData=function(e,t){const r=(t=l(t)).algorithms,i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return r.reduce((r,o)=>{const s=n.createHash(o).update(e).digest("base64"),a=new h(`${o}-${s}${i}`,t);if(a.algorithm&&a.digest){const e=a.algorithm;r[e]||(r[e]=[]),r[e].push(a)}return r},new g)},e.exports.fromStream=function(e,t){const r=(t=l(t)).Promise||Promise,n=C(t);return new r((t,r)=>{let i;e.pipe(n),e.on("error",r),n.on("error",r),n.on("integrity",e=>{i=e}),n.on("end",()=>t(i)),n.on("data",()=>{})})},e.exports.checkData=function(e,t,r){if(r=l(r),t=f(t,r),!Object.keys(t).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}const i=t.pickAlgorithm(r),o=n.createHash(i).update(e).digest("base64"),s=f({algorithm:i,digest:o}),a=s.match(t,r);if(a||!r.error)return a;if("number"==typeof r.size&&e.length!==r.size){const n=new Error(`data size mismatch when checking ${t}.\n Wanted: ${r.size}\n Found: ${e.length}`);throw n.code="EBADSIZE",n.found=e.length,n.expected=r.size,n.sri=t,n}{const r=new Error(`Integrity checksum failed when using ${i}: Wanted ${t}, but got ${s}. (${e.length} bytes)`);throw r.code="EINTEGRITY",r.found=s,r.expected=t,r.algorithm=i,r.sri=t,r}},e.exports.checkStream=function(e,t,r){const n=(r=l(r)).Promise||Promise,i=C(r.concat({integrity:t}));return new n((t,r)=>{let n;e.pipe(i),e.on("error",r),i.on("error",r),i.on("verified",e=>{n=e}),i.on("end",()=>t(n)),i.on("data",()=>{})})},e.exports.integrityStream=C,e.exports.create=function(e){const t=(e=l(e)).algorithms,r=e.options.length?`?${e.options.join("?")}`:"",i=t.map(n.createHash);return{update:function(e,t){return i.forEach(r=>r.update(e,t)),this},digest:function(n){return t.reduce((t,n)=>{const o=i.shift().digest("base64"),s=new h(`${n}-${o}${r}`,e);if(s.algorithm&&s.digest){const e=s.algorithm;t[e]||(t[e]=[]),t[e].push(s)}return t},new g)}}};const E=new Set(n.getHashes()),I=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>E.has(e));function m(e,t){return I.indexOf(e.toLowerCase())>=I.indexOf(t.toLowerCase())?e:t}},function(e){e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.0.0-rc.36","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.0.0-rc.30","@yarnpkg/fslib":"workspace:^2.0.0-rc.22","@yarnpkg/libzip":"workspace:^2.0.0-rc.13","@yarnpkg/parsers":"workspace:^2.0.0-rc.13","@yarnpkg/plugin-compat":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-dlx":"workspace:^2.0.0-rc.16","@yarnpkg/plugin-essentials":"workspace:^2.0.0-rc.30","@yarnpkg/plugin-file":"workspace:^2.0.0-rc.16","@yarnpkg/plugin-git":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-github":"workspace:^2.0.0-rc.18","@yarnpkg/plugin-http":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-init":"workspace:^2.0.0-rc.15","@yarnpkg/plugin-link":"workspace:^2.0.0-rc.13","@yarnpkg/plugin-node-modules":"workspace:^2.0.0-rc.12","@yarnpkg/plugin-npm":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-npm-cli":"workspace:^2.0.0-rc.20","@yarnpkg/plugin-pack":"workspace:^2.0.0-rc.21","@yarnpkg/plugin-patch":"workspace:^2.0.0-rc.10","@yarnpkg/plugin-pnp":"workspace:^2.0.0-rc.24","@yarnpkg/shell":"workspace:^2.0.0-rc.13","chalk":"^3.0.0","clipanion":"^2.4.1","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.0.0-rc.23","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.0.0-rc.25","micromatch":"^4.0.2","typescript":"^3.9.5"},"peerDependencies":{"@yarnpkg/core":"^2.0.0-rc.30"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},function(e,t,r){"use strict";var n=r(428),i=r(447);function o(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=r(33),e.exports.Schema=r(109),e.exports.FAILSAFE_SCHEMA=r(228),e.exports.JSON_SCHEMA=r(293),e.exports.CORE_SCHEMA=r(292),e.exports.DEFAULT_SAFE_SCHEMA=r(140),e.exports.DEFAULT_FULL_SCHEMA=r(166),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(139),e.exports.MINIMAL_SCHEMA=r(228),e.exports.SAFE_SCHEMA=r(140),e.exports.DEFAULT_SCHEMA=r(166),e.exports.scan=o("scan"),e.exports.parse=o("parse"),e.exports.compose=o("compose"),e.exports.addConstructor=o("addConstructor")},function(e,t,r){"use strict";var n=r(108),i=r(139),o=r(429),s=r(140),a=r(166),A=Object.prototype.hasOwnProperty,c=1,u=2,l=3,h=4,g=1,f=2,p=3,d=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,C=/[\x85\u2028\u2029]/,E=/[,\[\]\{\}]/,I=/^(?:!|!!|![a-z\-]+!)$/i,m=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function y(e){return 10===e||13===e}function w(e){return 9===e||32===e}function B(e){return 9===e||32===e||10===e||13===e}function Q(e){return 44===e||91===e||93===e||123===e||125===e}function b(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function D(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"
":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function v(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var S=new Array(256),k=new Array(256),x=0;x<256;x++)S[x]=D(x)?1:0,k[x]=D(x);function F(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||a,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function M(e,t){return new i(t,new o(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function N(e,t){throw M(e,t)}function R(e,t){e.onWarning&&e.onWarning.call(null,M(e,t))}var K={YAML:function(e,t,r){var n,i,o;null!==e.version&&N(e,"duplication of %YAML directive"),1!==r.length&&N(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&N(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&N(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&R(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&N(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],I.test(n)||N(e,"ill-formed tag handle (first argument) of the TAG directive"),A.call(e.tagMap,n)&&N(e,'there is a previously declared suffix for "'+n+'" tag handle'),m.test(i)||N(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function L(e,t,r,n){var i,o,s,a;if(t1&&(e.result+=n.repeat("\n",t-1))}function Y(e,t){var r,n,i=e.tag,o=e.anchor,s=[],a=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=s),n=e.input.charCodeAt(e.position);0!==n&&45===n&&B(e.input.charCodeAt(e.position+1));)if(a=!0,e.position++,U(e,!0,-1)&&e.lineIndent<=t)s.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,H(e,t,l,!1,!0),s.push(e.result),U(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)N(e,"bad indentation of a sequence entry");else if(e.lineIndentt?x=1:e.lineIndent===t?x=0:e.lineIndentt?x=1:e.lineIndent===t?x=0:e.lineIndentt)&&(H(e,t,h,!0,i)&&(C?p=e.result:d=e.result),C||(T(e,l,g,f,p,d,o,s),f=p=d=null),U(e,!0,-1),a=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==a)N(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?N(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?N(e,"repeat of an indentation width identifier"):(l=t+o-1,u=!0)}if(w(s)){do{s=e.input.charCodeAt(++e.position)}while(w(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!y(s)&&0!==s)}for(;0!==s;){for(P(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!u||e.lineIndentl&&(l=e.lineIndent),y(s))h++;else{if(e.lineIndent0){for(i=s,o=0;i>0;i--)(s=b(a=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+s:N(e,"expected hexadecimal character");e.result+=v(o),e.position++}else N(e,"unknown escape sequence");r=n=e.position}else y(a)?(L(e,r,n,!0),j(e,U(e,!1,t)),r=n=e.position):e.position===e.lineStart&&_(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}(e,m)?M=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!B(n)&&!Q(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||N(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],U(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,s,a,A,c,u,l=e.kind,h=e.result;if(B(u=e.input.charCodeAt(e.position))||Q(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(B(n=e.input.charCodeAt(e.position+1))||r&&Q(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,s=!1;0!==u;){if(58===u){if(B(n=e.input.charCodeAt(e.position+1))||r&&Q(n))break}else if(35===u){if(B(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&_(e)||r&&Q(u))break;if(y(u)){if(a=e.line,A=e.lineStart,c=e.lineIndent,U(e,!1,-1),e.lineIndent>=t){s=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=a,e.lineStart=A,e.lineIndent=c;break}}s&&(L(e,i,o,!1),j(e,e.line-a),i=o=e.position,s=!1),w(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return L(e,i,o,!1),!!e.result||(e.kind=l,e.result=h,!1)}(e,m,c===r)&&(M=!0,null===e.tag&&(e.tag="?")):(M=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===x&&(M=d&&Y(e,D))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(C=0,E=e.implicitTypes.length;C tag; it should be "'+I.kind+'", not "'+e.kind+'"'),I.resolve(e.result)?(e.result=I.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||M}function z(e){var t,r,n,i,o=e.position,s=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(U(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(s=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!B(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&N(e,"directive name must not be less than one character in length");0!==i;){for(;w(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!y(i));break}if(y(i))break;for(t=e.position;0!==i&&!B(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&P(e),A.call(K,r)?K[r](e,r,n):R(e,'unknown document directive "'+r+'"')}U(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,U(e,!0,-1)):s&&N(e,"directives end mark is expected"),H(e,e.lineIndent-1,h,!1,!0),U(e,!0,-1),e.checkLineBreaks&&C.test(e.input.slice(o,e.position))&&R(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&_(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,U(e,!0,-1)):e.position0&&-1==="\0\r\n
\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(o="",s=this.position;st/2-1){o=" ... ",s-=5;break}return a=this.buffer.slice(i,s),n.repeat(" ",e)+r+a+o+"\n"+n.repeat(" ",e+this.position-i+r.length)+"^"},i.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},e.exports=i},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,r){"use strict";var n=r(108),i=r(33);function o(e){return 48<=e&&e<=55}function s(e){return 48<=e&&e<=57}e.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,a=!1;if(!n)return!1;if("-"!==(t=e[i])&&"+"!==t||(t=e[++i]),"0"===t){if(i+1===n)return!0;if("b"===(t=e[++i])){for(i++;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,r){"use strict";var n=r(108),i=r(33),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var s=/^[-+]?[0-9]+e/;e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),s.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},function(e,t,r){"use strict";var n=r(33),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==o.exec(e))},construct:function(e){var t,r,n,s,a,A,c,u,l=0,h=null;if(null===(t=i.exec(e))&&(t=o.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,s=+t[3],!t[4])return new Date(Date.UTC(r,n,s));if(a=+t[4],A=+t[5],c=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(h=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(h=-h)),u=new Date(Date.UTC(r,n,s,a,A,c,l)),h&&u.setTime(u.getTime()-h),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,r){"use strict";var n=r(33);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},function(e,t,r){"use strict";var n;try{n=r(59).Buffer}catch(e){}var i=r(33),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,s=o;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),s=i.length,a=o,A=0,c=[];for(t=0;t>16&255),c.push(A>>8&255),c.push(255&A)),A=A<<6|a.indexOf(i.charAt(t));return 0===(r=s%4*6)?(c.push(A>>16&255),c.push(A>>8&255),c.push(255&A)):18===r?(c.push(A>>10&255),c.push(A>>2&255)):12===r&&c.push(A>>4&255),n?n.from?n.from(c):new n(c):c},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",i=0,s=e.length,a=o;for(t=0;t>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]),i=(i<<8)+e[t];return 0===(r=s%3)?(n+=a[i>>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]):2===r?(n+=a[i>>10&63],n+=a[i>>4&63],n+=a[i<<2&63],n+=a[64]):1===r&&(n+=a[i>>2&63],n+=a[i<<4&63],n+=a[64],n+=a[64]),n}})},function(e,t,r){"use strict";var n=r(33),i=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,s,a,A=[],c=e;for(t=0,r=c.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},function(e,t,r){"use strict";var n;try{n=r(446)}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var i=r(33);e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",i=n.parse(r,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(e,t,r){var n;n=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1),i=r(3),o=r(8),s=r(15);function a(e,t,r){var s=null,a=function(e,t){r&&r(e,t),s&&s.visit(e,t)},A="function"==typeof r?a:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(c||u)&&((s=new n.CommentHandler).attach=u,t.comment=!0,A=a)}var l,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),l=t&&"boolean"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,A):new o.Parser(e,t,A);var g=h?l.parseModule():l.parseScript();return c&&s&&(g.comments=s.comments),l.config.tokens&&(g.tokens=l.tokens),l.config.tolerant&&(g.errors=l.errorHandler.errors),g}t.parse=a,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType="module",a(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType="script",a(e,n,r)},t.tokenize=function(e,t,r){var n,i=new s.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var A=r(2);t.Syntax=A.Syntax,t.version="4.0.1"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&((o=this.stack[this.stack.length-1])&&o.start>=e.start.offset);)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(5),a=r(6),A=r(7),c=r(8),u=r(13),l=r(14);function h(e){var t;switch(e.type){case a.JSXSyntax.JSXIdentifier:t=e.name;break;case a.JSXSyntax.JSXNamespacedName:var r=e;t=h(r.namespace)+":"+h(r.name);break;case a.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var g=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var a=this.scanner.source[this.scanner.index];if(a===e)break;if(n=";"===a,t+=a,++this.scanner.index,!n)switch(t.length){case 2:i="#"===a;break;case 3:i&&(r=(s="x"===a)||o.Character.isDecimalDigit(a.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(a.charCodeAt(0))))&&!(s&&!o.Character.isHexDigit(a.charCodeAt(0)))}}if(r&&n&&t.length>2){var A=t.substr(1,t.length-2);i&&A.length>1?t=String.fromCharCode(parseInt(A.substr(1),10)):s&&A.length>2?t=String.fromCharCode(parseInt("0"+A.substr(1),16)):i||s||!l.XHTMLEntities[A]||(t=l.XHTMLEntities[A])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:a=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(A=this.scanner.source[this.scanner.index++])!==r;)n+="&"===A?this.scanXHTMLEntity(r):A;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),s=this.scanner.source.charCodeAt(this.scanner.index+2),a=46===i&&46===s?"...":".";return t=this.scanner.index,this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var A=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(A)&&92!==A)++this.scanner.index;else{if(45!==A)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new s.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new s.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new A.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new s.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new s.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new s.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new s.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start0))break;o=this.finalize(e.node,new s.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new s.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(c.Parser);t.JSXParser=g},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var s=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=s;var a=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=a;var A=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=A;var c=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=c;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var l=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=l;var h=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=h;var g=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=g;var f=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var s=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=s;var a=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=a;var A=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=A;var c=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=c;var u=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var l=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=l;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var g=function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=g;var f=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=f;var p=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=p;var d=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=d;var C=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=C;var E=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=E;var I=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=I;var m=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=m;var y=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=y;var w=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=w;var B=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=B;var Q=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=Q;var b=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=b;var D=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=D;var v=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=v;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var k=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=k;var x=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=x;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var M=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=M;var N=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=N;var R=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=R;var K=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=K;var L=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=L;var O=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=O;var T=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=T;var P=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=P;var U=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=U;var _=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=_;var j=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=j;var Y=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=Y;var G=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=G;var J=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=J;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var z=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=z;var q=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=q;var W=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=W;var V=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=V;var X=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=X;var Z=function(e,t,r,i,o,s){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=s};t.Property=Z;var $=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=$;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var se=function(){this.type=n.Syntax.Super};t.Super=se;var ae=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=ae;var Ae=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=Ae;var ce=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=ce;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var le=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=le;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var ge=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=ge;var fe=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=fe;var pe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=pe;var de=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=de;var Ce=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=Ce;var Ee=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=Ee;var Ie=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=Ie;var me=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=me;var ye=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=ye},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(10),o=r(11),s=r(7),a=r(12),A=r(2),c=r(13),u=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new a.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new s.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new s.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new s.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new s.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new s.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new s.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new s.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new s.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===A.Syntax.Identifier&&e.name===t||e.type===A.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,a=null,A=!1,c=!1,u=!1,l=!1;if(3===n.type){var h=n.value;this.nextToken(),A=this.match("["),i=(l=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new s.Identifier(h))}else this.match("*")?this.nextToken():(A=this.match("["),i=this.parseObjectPropertyKey());var g=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&g)t="get",A=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,a=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&g)t="set",A=this.match("["),i=this.parseObjectPropertyKey(),a=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&g)t="init",A=this.match("["),i=this.parseObjectPropertyKey(),a=this.parseGeneratorMethod(),c=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!l)!A&&this.isPropertyKey(i,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),a=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))a=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0;else if(3===n.type)if(h=this.finalize(r,new s.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var f=this.isolateCoverGrammar(this.parseAssignmentExpression);a=this.finalize(r,new s.AssignmentPattern(h,f))}else u=!0,a=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new s.Property(t,i,A,a,c,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new s.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new s.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case A.Syntax.Identifier:case A.Syntax.MemberExpression:case A.Syntax.RestElement:case A.Syntax.AssignmentPattern:break;case A.Syntax.SpreadElement:e.type=A.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case A.Syntax.ArrayExpression:e.type=A.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===A.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:"ArrowParameterPlaceHolder",params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===A.Syntax.SequenceExpression)for(o=0;o")){for(var A=0;A0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,a=this.isolateCoverGrammar(this.parseExponentiationExpression),A=[o,r.value,a],c=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;A.length>2&&n<=c[c.length-1];){a=A.pop();var u=A.pop();c.pop(),o=A.pop(),i.pop();var l=this.startNode(i[i.length-1]);A.push(this.finalize(l,new s.BinaryExpression(u,o,a)))}A.push(this.nextToken().value),c.push(n),i.push(this.lookahead),A.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=A.length-1;t=A[h];for(var g=i.pop();h>1;){var f=i.pop(),p=g&&g.lineStart;l=this.startNode(f,p),u=A[h-1],t=this.finalize(l,new s.BinaryExpression(u,A[h-2],t)),h-=2,g=f}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new s.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case A.Syntax.Identifier:this.validateParam(e,t,t.name);break;case A.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case A.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case A.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,a=this.reinterpretAsCoverFormalsList(e);if(a){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=a.simple;var l=this.context.allowYield,h=this.context.await;this.context.allowYield=!0,this.context.await=i;var g=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var p=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=p}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var d=f.type!==A.Syntax.BlockStatement;this.context.strict&&a.firstRestricted&&this.throwUnexpectedToken(a.firstRestricted,a.message),this.context.strict&&a.stricted&&this.tolerateUnexpectedToken(a.stricted,a.message),e=i?this.finalize(g,new s.AsyncArrowFunctionExpression(a.params,f,d)):this.finalize(g,new s.ArrowFunctionExpression(a.params,f,d)),this.context.strict=c,this.context.allowStrictDirective=u,this.context.allowYield=l,this.context.await=h}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===A.Syntax.Identifier){var C=e;this.scanner.isRestrictedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var E=(r=this.nextToken()).value,I=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new s.AssignmentExpression(E,e,I)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new s.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new s.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===A.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==A.Syntax.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new s.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new s.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new s.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new s.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,a=!1;if(3===this.lookahead.type){var A=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new s.Identifier(A.value));if(this.match("=")){e.push(A),a=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(A),new s.AssignmentPattern(c,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(A),a=!0,n=c)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new s.Property("init",r,o,n,!1,a))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new s.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new s.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new s.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===A.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===A.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new s.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new s.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new s.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new s.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new s.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new s.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,a=null,c=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===h.length&&this.matchKeyword("in")){var g=h[0];g.init&&(g.id.type===A.Syntax.ArrayPattern||g.id.type===A.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var f=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(f,{inFor:!0}),this.context.allowIn=l,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(this.consumeSemicolon(),n=this.finalize(n,new s.VariableDeclaration(h,f)))):(n=this.finalize(n,new s.Identifier(f)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var p=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==A.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==A.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,c=!1;else{if(this.match(",")){for(var d=[n];this.match(",");)this.nextToken(),d.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(p),new s.SequenceExpression(d))}this.expect(";")}}if(void 0===e&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(a=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=C}return void 0===e?this.finalize(u,new s.ForStatement(n,i,a,r)):c?this.finalize(u,new s.ForInStatement(e,t,r)):this.finalize(u,new s.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new s.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new s.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new s.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new s.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect("{");!this.match("}");){var a=this.parseSwitchCase();null===a.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(a)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new s.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===A.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[i]=!0;var a=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),a=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(c,o.Messages.GeneratorInLegacyContext),a=u}else a=this.parseStatement();delete this.context.labelSet[i],e=new s.LabeledStatement(n,a)}else this.consumeSemicolon(),e=new s.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof s.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new s.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n="",i=null,a=null,A=!1,c=!1,u=!1,l=!1;if(this.match("*"))this.nextToken();else if(A=this.match("["),"static"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,A=this.match("["),this.match("*")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(l=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var g=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&g?(n="get",A=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,a=this.parseGetterMethod()):"set"===t.value&&g&&(n="set",A=this.match("["),i=this.parseObjectPropertyKey(),a=this.parseSetterMethod()):7===t.type&&"*"===t.value&&g&&(n="init",A=this.match("["),i=this.parseObjectPropertyKey(),a=this.parseGeneratorMethod(),c=!0),!n&&i&&this.match("(")&&(n="init",a=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),A||(u&&this.isPropertyKey(i,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(i,"constructor")&&(("method"!==n||!c||a&&a.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(r,new s.MethodDefinition(i,A,a,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new s.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new s.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new s.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new s.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new s.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new s.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new s.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new s.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new s.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new s.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new s.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new s.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null));else{var a=[],A=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),a.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),A=this.parseModuleSpecifier(),this.consumeSemicolon()):c?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new s.ExportNamedDeclaration(null,a,A))}return e},e}();t.Parser=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(4),o=r(11);function s(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function a(e){return"01234567".indexOf(e)}var A=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var s={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(s)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},s={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(s)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=a(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+a(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+a(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):""})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,""));try{RegExp(r)}catch(e){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,s=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){s=!0;break}"["===e&&(r=!0)}return s||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;r=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=A},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),i=r(12),o=r(13),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),a=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;tn&&" "!==e[F+1],F=o);else if(!T(s))return J;M=M&&P(s)}c=c||l&&o-F-1>n&&" "!==e[F+1]}return A||c?r>9&&U(e)?J:c?G:Y:M&&!i(e)?_:j}function z(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==M.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),a=n||e.flowLevel>-1&&r>=e.flowLevel;switch(H(t,a,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+q(t,e.indent)+W(K(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(a=e.indexOf("\n"),a=-1!==a?a:e.length,i.lastIndex=a,V(e.slice(0,a),t)),s="\n"===e[0]||" "===e[0];var a;for(;n=i.exec(e);){var A=n[1],c=n[2];r=" "===c[0],o+=A+(s||r||""===c?"":"\n")+V(c,t),s=r}return o}(t,s),o));case J:return'"'+function(e){for(var t,r,n,i="",o=0;o=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=N(1024*(t-55296)+r-56320+65536),o++):(n=F[t],i+=!n&&T(t)?e[o]:n||N(t));return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function q(e,t){var r=U(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function W(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function V(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,s=0,a=0,A="";r=i.exec(e);)(a=r.index)-o>t&&(n=s>o?s:a,A+="\n"+e.slice(o,n),o=n+1),s=a;return A+="\n",e.length-o>t&&s>o?A+=e.slice(o,s)+"\n"+e.slice(s+1):A+=e.slice(o),A.slice(1)}function X(e,t,r){var n,o,s,c,u,l;for(s=0,c=(o=r?e.explicitTypes:e.implicitTypes).length;s tag resolver accepts not "'+l+'" style');n=u.represent[l](t,l)}e.dump=n}return!0}return!1}function Z(e,t,r,n,o,s){e.tag=null,e.dump=r,X(e,r,!1)||X(e,r,!0);var A=a.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var c,l,h="[object Object]"===A||"[object Array]"===A;if(h&&(l=-1!==(c=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||l||2!==e.indent&&t>0)&&(o=!1),l&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(h&&l&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===A)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var o,s,a,A,c,l,h="",g=e.tag,f=Object.keys(r);if(!0===e.sortKeys)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new i("sortKeys must be a boolean or a function");for(o=0,s=f.length;o1024)&&(e.dump&&u===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=L(e,t)),Z(e,t+1,A,!0,c)&&(e.dump&&u===e.dump.charCodeAt(0)?l+=":":l+=": ",h+=l+=e.dump));e.tag=g,e.dump=h||"{}"}(e,t,e.dump,o),l&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o,s,a,A="",c=e.tag,u=Object.keys(r);for(n=0,i=u.length;n1024&&(a+="? "),a+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Z(e,t,s,!1,!1)&&(A+=a+=e.dump));e.tag=c,e.dump="{"+A+"}"}(e,t,e.dump),l&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===A){var g=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,s="",a=e.tag;for(i=0,o=r.length;i "+e.dump)}return!0}function $(e,t){var r,n,i=[],o=[];for(function e(t,r,n){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=r.indexOf(t)))-1===n.indexOf(o)&&n.push(o);else if(r.push(t),Array.isArray(t))for(o=0,s=t.length;o(...r)=>{return`[${e(...r)+t}m`},n=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},o=e=>e,s=(e,t,r)=>[e,t,r],a=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let A;const c=(e,t,n,i)=>{void 0===A&&(A=r(449));const o=i?10:0,s={};for(const[r,i]of Object.entries(A)){const a="ansi16"===r?"ansi":r;r===t?s[a]=e(n,o):"object"==typeof i&&(s[a]=e(i[t],o))}return s};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};r.color.gray=r.color.blackBright,r.bgColor.bgGray=r.bgColor.bgBlackBright,r.color.grey=r.color.blackBright,r.bgColor.bgGrey=r.bgColor.bgBlackBright;for(const[t,n]of Object.entries(r)){for(const[t,i]of Object.entries(n))r[t]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[t]=r[t],e.set(i[0],i[1]);Object.defineProperty(r,t,{value:n,enumerable:!1})}return Object.defineProperty(r,"codes",{value:e,enumerable:!1}),r.color.close="[39m",r.bgColor.close="[49m",a(r.color,"ansi",()=>c(t,"ansi16",o,!1)),a(r.color,"ansi256",()=>c(n,"ansi256",o,!1)),a(r.color,"ansi16m",()=>c(i,"rgb",s,!1)),a(r.bgColor,"ansi",()=>c(t,"ansi16",o,!0)),a(r.bgColor,"ansi256",()=>c(n,"ansi256",o,!0)),a(r.bgColor,"ansi16m",()=>c(i,"rgb",s,!0)),r}})}).call(this,r(141)(e))},function(e,t,r){const n=r(294),i=r(451),o={};Object.keys(n).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:n[e].channels}),Object.defineProperty(o[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];o[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=o},function(e,t,r){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(e,t,r){const n=r(294);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n=2,has16m:e>=3}}function c(e,t){if(0===a)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===a)return 0;const r=a||0;if("dumb"===s.TERM)return r;if("win32"===process.platform){const e=n.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in s)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in s)||"codeship"===s.CI_NAME?1:r;if("TEAMCITY_VERSION"in s)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in s)return 1;if("truecolor"===s.COLORTERM)return 3;if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(s.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)?1:"COLORTERM"in s?1:r}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?a=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(a=1),"FORCE_COLOR"in s&&(a="true"===s.FORCE_COLOR?1:"false"===s.FORCE_COLOR?0:0===s.FORCE_COLOR.length?1:Math.min(parseInt(s.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return A(c(e,e&&e.isTTY))},stdout:A(c(!0,i.isatty(1))),stderr:A(c(!0,i.isatty(2)))}},function(e,t,r){"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let o=0,s="";do{s+=e.substr(o,n-o)+t+r,o=n+i,n=e.indexOf(t,o)}while(-1!==n);return s+=e.substr(o)},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,o="";do{const s="\r"===e[n-1];o+=e.substr(i,(s?n-1:n)-i)+t+(s?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return o+=e.substr(i)}}},function(e,t,r){"use strict";const n=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,i=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,o=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,s=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,a=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function A(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):a.get(e)||e}function c(e,t){const r=[],n=t.trim().split(/\s*,\s*/g);let i;for(const t of n){const n=Number(t);if(Number.isNaN(n)){if(!(i=t.match(o)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(i[2].replace(s,(e,t,r)=>t?A(t):r))}else r.push(n)}return r}function u(e){i.lastIndex=0;const t=[];let r;for(;null!==(r=i.exec(e));){const e=r[1];if(r[2]){const n=c(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function l(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error(`Unknown Chalk style: ${e}`);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,t)=>{const r=[],i=[];let o=[];if(t.replace(n,(t,n,s,a,c,h)=>{if(n)o.push(A(n));else if(a){const t=o.join("");o=[],i.push(0===r.length?t:l(e,r)(t)),r.push({inverse:s,styles:u(a)})}else if(c){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(l(e,r)(o.join(""))),o=[],r.pop()}else o.push(h)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},function(e,t,r){"use strict";var n=r(457),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:n.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,n.forEach((function(e){var r=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=r,r)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},function(e){e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},function(e,t,r){const n=r(111);e.exports=(e,t)=>{const r=n(e,t);return r?r.version:null}},function(e,t,r){const n=r(111);e.exports=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}},function(e,t,r){const n=r(39);e.exports=(e,t,r,i)=>{"string"==typeof r&&(i=r,r=void 0);try{return new n(e,r).inc(t,i).version}catch(e){return null}}},function(e,t,r){const n=r(111),i=r(230);e.exports=(e,t)=>{if(i(e,t))return null;{const i=n(e),o=n(t);let s="";if(i.prerelease.length||o.prerelease.length){s="pre";var r="prerelease"}for(const e in i)if(("major"===e||"minor"===e||"patch"===e)&&i[e]!==o[e])return s+e;return r}}},function(e,t,r){const n=r(39);e.exports=(e,t)=>new n(e,t).major},function(e,t,r){const n=r(39);e.exports=(e,t)=>new n(e,t).minor},function(e,t,r){const n=r(39);e.exports=(e,t)=>new n(e,t).patch},function(e,t,r){const n=r(111);e.exports=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}},function(e,t,r){const n=r(75);e.exports=(e,t,r)=>n(t,e,r)},function(e,t,r){const n=r(75);e.exports=(e,t)=>n(e,t,!0)},function(e,t,r){const n=r(231);e.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))},function(e,t,r){const n=r(231);e.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))},function(e,t,r){const n=r(39),i=r(111),{re:o,t:s}=r(110);e.exports=(e,t)=>{if(e instanceof n)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=o[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),o[s.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[s.COERCERTL].lastIndex=-1}else r=e.match(o[s.COERCE]);return null===r?null:i(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)}},function(e,t,r){const n=r(65);e.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},function(e,t,r){const n=r(39),i=r(65);e.exports=(e,t,r)=>{let o=null,s=null,a=null;try{a=new i(t,r)}catch(e){return null}return e.forEach(e=>{a.test(e)&&(o&&-1!==s.compare(e)||(s=new n(o=e,r)))}),o}},function(e,t,r){const n=r(39),i=r(65);e.exports=(e,t,r)=>{let o=null,s=null,a=null;try{a=new i(t,r)}catch(e){return null}return e.forEach(e=>{a.test(e)&&(o&&1!==s.compare(e)||(s=new n(o=e,r)))}),o}},function(e,t,r){const n=r(39),i=r(65),o=r(169);e.exports=(e,t)=>{e=new i(e,t);let r=new n("0.0.0");if(e.test(r))return r;if(r=new n("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t{const t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!o(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})}return r&&e.test(r)?r:null}},function(e,t,r){const n=r(65);e.exports=(e,t)=>{try{return new n(e,t).range||"*"}catch(e){return null}}},function(e,t,r){const n=r(236);e.exports=(e,t,r)=>n(e,t,">",r)},function(e,t,r){const n=r(236);e.exports=(e,t,r)=>n(e,t,"<",r)},function(e,t,r){const n=r(65);e.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t))},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,r){"use strict";const n=r(237),i=r(481),o=r(484),s=r(485),a=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let e=a.create(n,t);Array.isArray(e)?r.push(...e):r.push(e)}else r=[].concat(a.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(r=[...new Set(r)]),r};a.parse=(e,t={})=>s(e,t),a.stringify=(e,t={})=>n("string"==typeof e?a.parse(e,t):e,t),a.compile=(e,t={})=>("string"==typeof e&&(e=a.parse(e,t)),i(e,t)),a.expand=(e,t={})=>{"string"==typeof e&&(e=a.parse(e,t));let r=o(e,t);return!0===t.noempty&&(r=r.filter(Boolean)),!0===t.nodupes&&(r=[...new Set(r)]),r},a.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?a.compile(e,t):a.expand(e,t),e.exports=a},function(e,t,r){"use strict";const n=r(299),i=r(238);e.exports=(e,t={})=>{let r=(e,o={})=>{let s=i.isInvalidBrace(o),a=!0===e.invalid&&!0===t.escapeInvalid,A=!0===s||!0===a,c=!0===t.escapeInvalid?"\\":"",u="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return c+e.value;if("open"===e.type)return A?c+e.value:"(";if("close"===e.type)return A?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":A?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let r=i.reduce(e.nodes),o=n(...r,{...t,wrap:!1,toRegex:!0});if(0!==o.length)return r.length>1&&o.length>1?`(${o})`:o}if(e.nodes)for(let t of e.nodes)u+=r(t,e);return u};return r(e)}},function(e,t,r){"use strict";
+/*!
+ * to-regex-range
+ *
+ * Copyright (c) 2015-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */const n=r(483),i=(e,t,r)=>{if(!1===n(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===n(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};"boolean"==typeof o.strictZeros&&(o.relaxZeros=!1===o.strictZeros);let A=e+":"+t+"="+String(o.relaxZeros)+String(o.shorthand)+String(o.capture)+String(o.wrap);if(i.cache.hasOwnProperty(A))return i.cache[A].result;let c=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(c-u)){let r=e+"|"+t;return o.capture?`(${r})`:!1===o.wrap?r:`(?:${r})`}let l=f(e)||f(t),h={min:e,max:t,a:c,b:u},g=[],p=[];if(l&&(h.isPadded=l,h.maxLen=String(h.max).length),c<0){p=s(u<0?Math.abs(u):1,Math.abs(c),h,o),c=h.a=0}return u>=0&&(g=s(c,u,h,o)),h.negatives=p,h.positives=g,h.result=function(e,t,r){let n=a(e,t,"-",!1,r)||[],i=a(t,e,"",!1,r)||[],o=a(e,t,"-?",!0,r)||[];return n.concat(o).concat(i).join("|")}(p,g,o),!0===o.capture?h.result=`(${h.result})`:!1!==o.wrap&&g.length+p.length>1&&(h.result=`(?:${h.result})`),i.cache[A]=h,h.result};function o(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=function(e,t){let r=[];for(let n=0;n1&&i.count.pop(),i.count.push(A.count[0]),i.string=i.pattern+h(i.count),c=t+1)}return a}function a(e,t,r,n,i){let o=[];for(let i of e){let{string:e}=i;n||c(t,"string",e)||o.push(r+e),n&&c(t,"string",e)&&o.push(r+e)}return o}function A(e,t){return e>t?1:t>e?-1:0}function c(e,t,r){return e.some(e=>e[t]===r)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function l(e,t){return e-e%Math.pow(10,t)}function h(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function g(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function f(e){return/^-?(0+)\d/.test(e)}function p(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=!1!==r.relaxZeros;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}i.cache={},i.clearCache=()=>i.cache={},e.exports=i},function(e,t,r){"use strict";
+/*!
+ * is-number
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},function(e,t,r){"use strict";const n=r(299),i=r(237),o=r(238),s=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return r?o.flatten(t).map(e=>`{${e}}`):t;for(let i of e)if(Array.isArray(i))for(let e of i)n.push(s(e,t,r));else for(let e of t)!0===r&&"string"==typeof e&&(e=`{${e}}`),n.push(Array.isArray(e)?s(i,e,r):i+e);return o.flatten(n)};e.exports=(e,t={})=>{let r=void 0===t.rangeLimit?1e3:t.rangeLimit,a=(e,A={})=>{e.queue=[];let c=A,u=A.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)u=(c=c.parent).queue;if(e.invalid||e.dollar)return void u.push(s(u.pop(),i(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(s(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){let a=o.reduce(e.nodes);if(o.exceedsLimit(...a,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let A=n(...a,t);return 0===A.length&&(A=i(e,t)),u.push(s(u.pop(),A)),void(e.nodes=[])}let l=o.encloseBrace(e),h=e.queue,g=e;for(;"brace"!==g.type&&"root"!==g.type&&g.parent;)h=(g=g.parent).queue;for(let t=0;t{if("string"!=typeof e)throw new TypeError("Expected a string");let r=t||{},I="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;if(e.length>I)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${I})`);let m,y={type:"root",input:e,nodes:[]},w=[y],B=y,Q=y,b=0,D=e.length,v=0,S=0;const k=()=>e[v++],x=e=>{if("text"===e.type&&"dot"===Q.type&&(Q.type="text"),!Q||"text"!==Q.type||"text"!==e.type)return B.nodes.push(e),e.parent=B,e.prev=Q,Q=e,e;Q.value+=e.value};for(x({type:"bos"});v0){if(B.ranges>0){B.ranges=0;let e=B.nodes.shift();B.nodes=[e,{type:"text",value:n(B)}]}x({type:"comma",value:m}),B.commas++}else if(m===A&&S>0&&0===B.commas){let e=B.nodes;if(0===S||0===e.length){x({type:"text",value:m});continue}if("dot"===Q.type){if(B.range=[],Q.value+=m,Q.type="range",3!==B.nodes.length&&5!==B.nodes.length){B.invalid=!0,B.ranges=0,Q.type="text";continue}B.ranges++,B.args=[];continue}if("range"===Q.type){e.pop();let t=e[e.length-1];t.value+=Q.value+m,Q=t,B.ranges--;continue}x({type:"dot",value:m})}else x({type:"text",value:m});else{if("brace"!==B.type){x({type:"text",value:m});continue}let e="close";(B=w.pop()).close=!0,x({type:e,value:m}),S--,B=w[w.length-1]}else{S++;let e=Q.value&&"$"===Q.value.slice(-1)||!0===B.dollar;B=x({type:"brace",open:!0,close:!1,dollar:e,depth:S,commas:0,ranges:0,nodes:[]}),w.push(B),x({type:"open",value:m})}else{let e,r=m;for(!0!==t.keepQuotes&&(m="");v{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=w[w.length-1],t=e.nodes.indexOf(B);e.nodes.splice(t,1,...B.nodes)}}while(w.length>0);return x({type:"eos"}),y}},function(e,t,r){"use strict";e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},function(e,t,r){"use strict";e.exports=r(488)},function(e,t,r){"use strict";const n=r(12),i=r(489),o=r(490),s=r(239),a=(e,t,r=!1)=>{if(Array.isArray(e)){let n=e.map(e=>a(e,t,r));return e=>{for(let t of n){let r=t(e);if(r)return r}return!1}}if("string"!=typeof e||""===e)throw new TypeError("Expected pattern to be a non-empty string");let n=t||{},i=s.isWindows(t),o=a.makeRe(e,t,!1,!0),A=o.state;delete o.state;let c=()=>!1;if(n.ignore){let e={...t,ignore:null,onMatch:null,onResult:null};c=a(n.ignore,e,r)}const u=(r,s=!1)=>{let{isMatch:u,match:l,output:h}=a.test(r,o,t,{glob:e,posix:i}),g={glob:e,state:A,regex:o,posix:i,input:r,output:h,match:l,isMatch:u};return"function"==typeof n.onResult&&n.onResult(g),!1===u?(g.isMatch=!1,!!s&&g):c(r)?("function"==typeof n.onIgnore&&n.onIgnore(g),g.isMatch=!1,!!s&&g):("function"==typeof n.onMatch&&n.onMatch(g),!s||g)};return r&&(u.state=A),u};a.test=(e,t,r,{glob:n,posix:i}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};let o=r||{},A=o.format||(i?s.toPosixSlashes:null),c=e===n,u=c&&A?A(e):e;return!1===c&&(c=(u=A?A(e):e)===n),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,i):t.exec(u)),{isMatch:!!c,match:c,output:u}},a.matchBase=(e,t,r,i=s.isWindows(r))=>{return(t instanceof RegExp?t:a.makeRe(t,r)).test(n.basename(e))},a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>o(e,t),a.scan=(e,t)=>i(e,t),a.makeRe=(e,t,r=!1,n=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");let i,s=t||{},A=s.contains?"":"^",c=s.contains?"":"$",u={negated:!1,fastpaths:!0},l="";if(e.startsWith("./")&&(e=e.slice(2),l=u.prefix="./"),!1===s.fastpaths||"."!==e[0]&&"*"!==e[0]||(i=o.fastpaths(e,t)),void 0===i&&((u=a.parse(e,t)).prefix=l+(u.prefix||""),i=u.output),!0===r)return i;let h=`${A}(?:${i})${c}`;u&&!0===u.negated&&(h=`^(?!${h}).*$`);let g=a.toRegex(h,t);return!0===n&&(g.state=u),g},a.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=r(170),e.exports=a},function(e,t,r){"use strict";const{CHAR_ASTERISK:n,CHAR_AT:i,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:s,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:A,CHAR_FORWARD_SLASH:c,CHAR_LEFT_CURLY_BRACE:u,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:g,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:p,CHAR_RIGHT_PARENTHESES:d,CHAR_RIGHT_SQUARE_BRACKET:C}=r(170);function E(e){return e.replace(/(?:\[.*?(?"\\"===e?"":e)}e.exports=(e,t)=>{let r,I,m=t||{},y=e.length-1,w=-1,B=0,Q=0,b=!1,D=!1,v=!1,S=0,k=!1,x=()=>w>=y,F=()=>(r=I,e.charCodeAt(++w));for(;w0&&(M=e.slice(0,B),e=e.slice(B),Q-=B),R&&!0===b&&Q>0?(R=e.slice(0,Q),K=e.slice(Q)):!0===b?(R="",K=e):R=e,R&&""!==R&&"/"!==R&&R!==e&&(e=>e===c||e===o)(R.charCodeAt(R.length-1))&&(R=R.slice(0,-1)),!0===m.unescape&&(K&&(K=E(K)),R&&!0===D&&(R=E(R))),{prefix:M,input:N,base:R,glob:K,negated:v,isGlob:b}}},function(e,t,r){"use strict";const n=r(239),i=r(170),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:s,REGEX_NON_SPECIAL_CHAR:a,REGEX_SPECIAL_CHARS_BACKREF:A,REPLACEMENTS:c}=i,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map(e=>n.escapeRegex(e)).join("..")}return r},l=e=>{let t=1;for(;"!"===e.peek()&&("("!==e.peek(2)||"?"===e.peek(3));)e.advance(),e.start++,t++;return t%2!=0&&(e.negated=!0,e.start++,!0)},h=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,g=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;let r={...t},g="number"==typeof r.maxLength?Math.min(o,r.maxLength):o,f=e.length;if(f>g)throw new SyntaxError(`Input length: ${f}, exceeds maximum allowed length: ${g}`);let p={type:"bos",value:"",output:r.prepend||""},d=[p],C=r.capture?"":"?:",E=n.isWindows(t);const I=i.globChars(E),m=i.extglobChars(I),{DOT_LITERAL:y,PLUS_LITERAL:w,SLASH_LITERAL:B,ONE_CHAR:Q,DOTS_SLASH:b,NO_DOT:D,NO_DOT_SLASH:v,NO_DOTS_SLASH:S,QMARK:k,QMARK_NO_DOT:x,STAR:F,START_ANCHOR:M}=I,N=e=>`(${C}(?:(?!${M}${e.dot?b:y}).)*?)`;let R=r.dot?"":D,K=!0===r.bash?N(r):F,L=r.dot?k:x;r.capture&&(K=`(${K})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);let O,T={index:-1,start:0,consumed:"",output:"",backtrack:!1,brackets:0,braces:0,parens:0,quotes:0,tokens:d},P=[],U=[],_=p;const j=()=>T.index===f-1,Y=T.peek=(t=1)=>e[T.index+t],G=T.advance=()=>e[++T.index],J=e=>{T.output+=null!=e.output?e.output:e.value,T.consumed+=e.value||""},H=e=>{T[e]++,U.push(e)},z=e=>{T[e]--,U.pop()},q=e=>{if("globstar"===_.type){let t=T.braces>0&&("comma"===e.type||"brace"===e.type),r=P.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(T.output=T.output.slice(0,-_.output.length),_.type="star",_.value="*",_.output=K,T.output+=_.output)}P.length&&"paren"!==e.type&&!m[e.value]&&(P[P.length-1].inner+=e.value),(e.value||e.output)&&J(e),_&&"text"===_.type&&"text"===e.type?_.value+=e.value:(e.prev=_,d.push(e),_=e)},W=(e,t)=>{let n={...m[t],conditions:1,inner:""};n.prev=_,n.parens=T.parens,n.output=T.output;let i=(r.capture?"(":"")+n.open;q({type:e,value:t,output:T.output?"":Q}),q({type:"paren",extglob:!0,value:G(),output:i}),H("parens"),P.push(n)},V=t=>{let n=t.close+(r.capture?")":"");if("negate"===t.type){let i=K;t.inner&&t.inner.length>1&&t.inner.includes("/")&&(i=N(r)),(i!==K||j()||/^\)+$/.test(e.slice(T.index+1)))&&(n=t.close=")$))"+i),"bos"===t.prev.type&&j()&&(T.negatedExtglob=!0)}q({type:"paren",extglob:!0,value:O,output:n}),z("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/{[()\]}"])/.test(e)){let t=!1,n=e.replace(A,(e,r,n,i,o,s)=>"\\"===i?(t=!0,e):"?"===i?r?r+i+(o?k.repeat(o.length):""):0===s?L+(o?k.repeat(o.length):""):k.repeat(n.length):"."===i?y.repeat(n.length):"*"===i?r?r+i+(o?K:""):K:r?e:"\\"+e);return!0===t&&(n=!0===r.unescape?n.replace(/\\/g,""):n.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),T.output=n,T}for(;!j();){if("\0"===(O=G()))continue;if("\\"===O){let t=Y();if("/"===t&&!0!==r.bash)continue;if("."===t||";"===t)continue;if(!t){q({type:"text",value:O+="\\"});continue}let n=/^\\+/.exec(e.slice(T.index+1)),i=0;if(n&&n[0].length>2&&(i=n[0].length,T.index+=i,i%2!=0&&(O+="\\")),!0===r.unescape?O=G()||"":O+=G()||"",0===T.brackets){q({type:"text",value:O});continue}}if(T.brackets>0&&("]"!==O||"["===_.value||"[^"===_.value)){if(!1!==r.posix&&":"===O){let e=_.value.slice(1);if(e.includes("[")&&(_.posix=!0,e.includes(":"))){let e=_.value.lastIndexOf("["),t=_.value.slice(0,e),r=_.value.slice(e+2),n=s[r];if(n){_.value=t+n,T.backtrack=!0,G(),p.output||1!==d.indexOf(_)||(p.output=Q);continue}}}("["===O&&":"!==Y()||"-"===O&&"]"===Y())&&(O="\\"+O),"]"!==O||"["!==_.value&&"[^"!==_.value||(O="\\"+O),!0===r.posix&&"!"===O&&"["===_.value&&(O="^"),_.value+=O,J({value:O});continue}if(1===T.quotes&&'"'!==O){O=n.escapeRegex(O),_.value+=O,J({value:O});continue}if('"'===O){T.quotes=1===T.quotes?0:1,!0===r.keepQuotes&&q({type:"text",value:O});continue}if("("===O){q({type:"paren",value:O}),H("parens");continue}if(")"===O){if(0===T.parens&&!0===r.strictBrackets)throw new SyntaxError(h("opening","("));let e=P[P.length-1];if(e&&T.parens===e.parens+1){V(P.pop());continue}q({type:"paren",value:O,output:T.parens?")":"\\)"}),z("parens");continue}if("["===O){if(!0!==r.nobracket&&e.slice(T.index+1).includes("]"))H("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));O="\\"+O}q({type:"bracket",value:O});continue}if("]"===O){if(!0===r.nobracket||_&&"bracket"===_.type&&1===_.value.length){q({type:"text",value:O,output:"\\"+O});continue}if(0===T.brackets){if(!0===r.strictBrackets)throw new SyntaxError(h("opening","["));q({type:"text",value:O,output:"\\"+O});continue}z("brackets");let e=_.value.slice(1);if(!0===_.posix||"^"!==e[0]||e.includes("/")||(O="/"+O),_.value+=O,J({value:O}),!1===r.literalBrackets||n.hasRegexChars(e))continue;let t=n.escapeRegex(_.value);if(T.output=T.output.slice(0,-_.value.length),!0===r.literalBrackets){T.output+=t,_.value=t;continue}_.value=`(${C}${t}|${_.value})`,T.output+=_.value;continue}if("{"===O&&!0!==r.nobrace){q({type:"brace",value:O,output:"("}),H("braces");continue}if("}"===O){if(!0===r.nobrace||0===T.braces){q({type:"text",value:O,output:"\\"+O});continue}let e=")";if(!0===T.dots){let t=d.slice(),n=[];for(let e=t.length-1;e>=0&&(d.pop(),"brace"!==t[e].type);e--)"dots"!==t[e].type&&n.unshift(t[e].value);e=u(n,r),T.backtrack=!0}q({type:"brace",value:O,output:e}),z("braces");continue}if("|"===O){P.length>0&&P[P.length-1].conditions++,q({type:"text",value:O});continue}if(","===O){let e=O;T.braces>0&&"braces"===U[U.length-1]&&(e="|"),q({type:"comma",value:O,output:e});continue}if("/"===O){if("dot"===_.type&&1===T.index){T.start=T.index+1,T.consumed="",T.output="",d.pop(),_=p;continue}q({type:"slash",value:O,output:B});continue}if("."===O){if(T.braces>0&&"dot"===_.type){"."===_.value&&(_.output=y),_.type="dots",_.output+=O,_.value+=O,T.dots=!0;continue}q({type:"dot",value:O,output:y});continue}if("?"===O){if(_&&"paren"===_.type){let e=Y(),t=O;if("<"===e&&parseInt(process.version.slice(1),10)<10)throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===_.value&&!/[!=<:]/.test(e)||"<"===e&&!/[!=]/.test(Y(2)))&&(t="\\"+O),q({type:"text",value:O,output:t});continue}if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){W("qmark",O);continue}if(!0!==r.dot&&("slash"===_.type||"bos"===_.type)){q({type:"qmark",value:O,output:x});continue}q({type:"qmark",value:O,output:k});continue}if("!"===O){if(!0!==r.noextglob&&"("===Y()&&("?"!==Y(2)||!/[!=<:]/.test(Y(3)))){W("negate",O);continue}if(!0!==r.nonegate&&0===T.index){l(T);continue}}if("+"===O){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){W("plus",O);continue}if(_&&("bracket"===_.type||"paren"===_.type||"brace"===_.type)){let e=!0===_.extglob?"\\"+O:O;q({type:"plus",value:O,output:e});continue}if(T.parens>0&&!1!==r.regex){q({type:"plus",value:O});continue}q({type:"plus",value:w});continue}if("@"===O){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){q({type:"at",value:O,output:""});continue}q({type:"text",value:O});continue}if("*"!==O){"$"!==O&&"^"!==O||(O="\\"+O);let t=a.exec(e.slice(T.index+1));t&&(O+=t[0],T.index+=t[0].length),q({type:"text",value:O});continue}if(_&&("globstar"===_.type||!0===_.star)){_.type="star",_.star=!0,_.value+=O,_.output=K,T.backtrack=!0,T.consumed+=O;continue}if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){W("star",O);continue}if("star"===_.type){if(!0===r.noglobstar){T.consumed+=O;continue}let t=_.prev,n=t.prev,i="slash"===t.type||"bos"===t.type,o=n&&("star"===n.type||"globstar"===n.type);if(!0===r.bash&&(!i||!j()&&"/"!==Y())){q({type:"star",value:O,output:""});continue}let s=T.braces>0&&("comma"===t.type||"brace"===t.type),a=P.length&&("pipe"===t.type||"paren"===t.type);if(!i&&"paren"!==t.type&&!s&&!a){q({type:"star",value:O,output:""});continue}for(;"/**"===e.slice(T.index+1,T.index+4);){let t=e[T.index+4];if(t&&"/"!==t)break;T.consumed+="/**",T.index+=3}if("bos"===t.type&&j()){_.type="globstar",_.value+=O,_.output=N(r),T.output=_.output,T.consumed+=O;continue}if("slash"===t.type&&"bos"!==t.prev.type&&!o&&j()){T.output=T.output.slice(0,-(t.output+_.output).length),t.output="(?:"+t.output,_.type="globstar",_.output=N(r)+"|$)",_.value+=O,T.output+=t.output+_.output,T.consumed+=O;continue}let A=Y();if("slash"===t.type&&"bos"!==t.prev.type&&"/"===A){let e=void 0!==Y(2)?"|$":"";T.output=T.output.slice(0,-(t.output+_.output).length),t.output="(?:"+t.output,_.type="globstar",_.output=`${N(r)}${B}|${B}${e})`,_.value+=O,T.output+=t.output+_.output,T.consumed+=O+G(),q({type:"slash",value:O,output:""});continue}if("bos"===t.type&&"/"===A){_.type="globstar",_.value+=O,_.output=`(?:^|${B}|${N(r)}${B})`,T.output=_.output,T.consumed+=O+G(),q({type:"slash",value:O,output:""});continue}T.output=T.output.slice(0,-_.output.length),_.type="globstar",_.output=N(r),_.value+=O,T.output+=_.output,T.consumed+=O;continue}let t={type:"star",value:O,output:K};!0!==r.bash?!_||"bracket"!==_.type&&"paren"!==_.type||!0!==r.regex?(T.index!==T.start&&"slash"!==_.type&&"dot"!==_.type||("dot"===_.type?(T.output+=v,_.output+=v):!0===r.dot?(T.output+=S,_.output+=S):(T.output+=R,_.output+=R),"*"!==Y()&&(T.output+=Q,_.output+=Q)),q(t)):(t.output=O,q(t)):(t.output=".*?","bos"!==_.type&&"slash"!==_.type||(t.output=R+t.output),q(t))}for(;T.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","]"));T.output=n.escapeLast(T.output,"["),z("brackets")}for(;T.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing",")"));T.output=n.escapeLast(T.output,"("),z("parens")}for(;T.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(h("closing","}"));T.output=n.escapeLast(T.output,"{"),z("braces")}if(!0===r.strictSlashes||"star"!==_.type&&"bracket"!==_.type||q({type:"maybe_slash",value:"",output:`${B}?`}),!0===T.backtrack){T.output="";for(let e of T.tokens)T.output+=null!=e.output?e.output:e.value,e.suffix&&(T.output+=e.suffix)}return T};g.fastpaths=(e,t)=>{let r={...t},s="number"==typeof r.maxLength?Math.min(o,r.maxLength):o,a=e.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);e=c[e]||e;let A=n.isWindows(t);const{DOT_LITERAL:u,SLASH_LITERAL:l,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:p,NO_DOTS_SLASH:d,STAR:C,START_ANCHOR:E}=i.globChars(A);let I=r.capture?"":"?:",m=!0===r.bash?".*?":C,y=r.dot?p:f,w=r.dot?d:f;r.capture&&(m=`(${m})`);const B=e=>`(${I}(?:(?!${E}${e.dot?g:u}).)*?)`,Q=e=>{switch(e){case"*":return`${y}${h}${m}`;case".*":return`${u}${h}${m}`;case"*.*":return`${y}${m}${u}${h}${m}`;case"*/*":return`${y}${m}${l}${h}${w}${m}`;case"**":return y+B(r);case"**/*":return`(?:${y}${B(r)}${l})?${w}${h}${m}`;case"**/*.*":return`(?:${y}${B(r)}${l})?${w}${m}${u}${h}${m}`;case"**/.*":return`(?:${y}${B(r)}${l})?${u}${h}${m}`;default:{let r=/^(.*?)\.(\w+)$/.exec(e);if(!r)return;let n=Q(r[1],t);if(!n)return;return n+u+r[2]}}};let b=Q(e);return b&&!0!==r.strictSlashes&&(b+=`${l}?`),b},e.exports=g},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=491},function(e,t,r){var n,i=r(493),o=r(304);(n=function(){var e=this._C=i();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(t){e.Runtime.stackRestore(t)},allocateBytes:function(t){return e.allocate(t,"i8",e.ALLOC_STACK)},pushString:function(t){return this.allocateBytes(e.intArrayFromString(t))},savingStack:function(t){var r=this.getStackPointer();try{return t(this,e)}finally{this.setStackPointer(r)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},n.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack((function(t,r){var n=r.allocate(4*(e.length+1),"i32",r.ALLOC_STACK);return o.each(e,(function(e,t){r.setValue(n+4*t,e,"i32")})),r.setValue(n+4*e.length,0,"i32"),!!r._addClause(n)}))},n.prototype.solve=function(){return!!this._C._solve()},n.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},n.prototype.getSolution=function(){for(var e=[null],t=this._C,r=t._getNumVars(),n=t._getSolution(),i=0;i>>1,a=1&o?-1:1;n[i]=s*a}return n},e.exports=n},function(module,exports,__webpack_require__){var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},window=0,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,t){e=nodePath.normalize(e);var r=nodeFS.readFileSync(e);return r||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),r=nodeFS.readFileSync(e)),r&&!t&&(r=r.toString()),r},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e}))}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WEB?window.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,t,r){return r||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,r){return r&&r.length?(r.splice||(r=Array.prototype.slice.call(r)),r.splice(0,0,t),Module["dynCall_"+e].apply(null,r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t0))return"";var n,i=e[0],o=e[1],s=e[2],a=e[3];if(2==e.length)n=String.fromCharCode((31&i)<<6|63&o);else if(3==e.length)n=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s);else{var A=(7&i)<<18|(63&o)<<12|(63&s)<<6|63&a;n=String.fromCharCode(55296+((A-65536)/1024|0),(A-65536)%1024+56320)}return e.length=0,n},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r=TOTAL_MEMORY&&enlargeMemory(),t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,r){return r?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,t){e||abort("Assertion failed: "+t)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}function getValue(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!=e&&0!==e&&writeStringToMemory(e,t=Runtime.stackAlloc(1+(e.length<<2))),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,r,n){var i=getCFunc(e),o=[],s=0;if(n)for(var a=0;a>2]=0;for(A=s+o;n>0]=0;return s}if("i8"===a)return e.subarray||e.slice?HEAPU8.set(e,s):HEAPU8.set(new Uint8Array(e),s),s;for(var c,u,l,h=0;h>0])>=128)n=!0;else if(0==r&&!t)break;if(i++,t&&i==t)break}t||(t=i);var o="";if(!n){for(var s;t>0;)s=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+s:s,e+=1024,t-=1024;return o}var a=new Runtime.UTF8Processor;for(i=0;i>0],o+=a.processCChar(r);return o}function UTF16ToString(e){for(var t=0,r="";;){var n=HEAP16[e+2*t>>1];if(0==n)return r;++t,r+=String.fromCharCode(n)}}function stringToUTF16(e,t){for(var r=0;r>1]=n}HEAP16[t+2*e.length>>1]=0}function UTF32ToString(e){for(var t=0,r="";;){var n=HEAP32[e+4*t>>2];if(0==n)return r;if(++t,n>=65536){var i=n-65536;r+=String.fromCharCode(55296|i>>10,56320|1023&i)}else r+=String.fromCharCode(n)}}function stringToUTF32(e,t){for(var r=0,n=0;n=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n);HEAP32[t+4*r>>2]=i,++r}HEAP32[t+4*r>>2]=0}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var r=_malloc(e.length);writeStringToMemory(e.substr(1),r);var n=_malloc(4),i=Module.___cxa_demangle(r,0,0,n);if(0===getValue(n,"i32")&&i)return Pointer_stringify(i)}catch(e){}finally{r&&_free(r),n&&_free(n),i&&_free(i)}var o=3,s={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},a=[],A=!0;var c=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}c=function t(r,n,i){n=n||1/0;var c,u="",l=[];if("N"===e[o]){if(c=function(){"K"===e[++o]&&o++;for(var t=[];"E"!==e[o];)if("S"!==e[o])if("C"!==e[o]){var r=parseInt(e.substr(o)),n=r.toString().length;if(!r||!n){o--;break}var i=e.substr(o+n,r);t.push(i),a.push(i),o+=n+r}else t.push(t[t.length-1]),o+=2;else{o++;var s=e.indexOf("_",o),A=e.substring(o,s)||0;t.push(a[A]||"?"),o=s+1}return o++,t}().join("::"),0===--n)return r?[c]:c}else if(("K"===e[o]||A&&"L"===e[o])&&o++,p=parseInt(e.substr(o))){var h=p.toString().length;c=e.substr(o+h,p),o+=h+p}if(A=!1,"I"===e[o]){o++;var g=t(!0);u+=t(!0,1,!0)[0]+" "+c+"<"+g.join(", ")+">"}else u=c;e:for(;o